* config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
[official-gcc.git] / libgomp / ChangeLog
blobe04c56a45a2c06861e9f2e9df6bca8c2c2510d5c
1 2013-10-16  Tobias Burnus  <burnus@net-b.de>
3         * libgomp.texi: (Runtime Library Routines): Update references for
4         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
5         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
6         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
7         (Environment Variables): Update references for OpenMP 4.0. Add
8         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
9         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
10         order.
12 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
14         * env.c (parse_bind_var): Initialize value to avoid
15         (false positive) warning.
17 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
19         PR libgomp/58691
20         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
21         to check variable.
22         (gomp_init_num_threads): Move i variable declaration into
23         #ifdef CPU_ALLOC_SIZE block.
24         * config/linux/affinity.c (gomp_affinity_init_level): Test
25         gomp_places_list_len == 0 rather than gomp_places_list == 0
26         when checking for topology reading error.
27         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
28         * env.c (parse_affinity): Add ignore argument, if true, don't populate
29         gomp_places_list, only parse env var and always return false.
30         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
31         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
32         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
33         and either of these variables were parsed correctly into a places
34         list.
36 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
37             Jakub Jelinek  <jakub@redhat.com>
39         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
40         of 5 loopfn matches.
41         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
42         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
43         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
44         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
45         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
46         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
47         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
48         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
50 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
52         * Makefile.am (omp_lib.mod): Streamline rule.
53         * Makefile.in: Regenerate.
55         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
56         exceptions.
58         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
59         * testsuite/libgomp.fortran/lib1.f90: Likewise.
60         * testsuite/libgomp.fortran/lib2.f: Likewise.
61         * testsuite/libgomp.fortran/lib3.f: Likewise.
63         * configure.ac: Typo fix.
64         * configure: Regenerate.
66         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
67         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
69         * omp.h.in: Don't touch the user's namespace.
71 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
72             Tobias Burnus  <burnus@net-b.de>
73             Richard Henderson  <rth@redhat.com>
75         * target.c: New file.
76         * Makefile.am (libgomp_la_SOURCES): Add target.c.
77         * Makefile.in: Regenerated.
78         * libgomp_g.h (GOMP_task): Add depend argument.
79         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
80         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
81         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
82         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
83         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
84         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
85         GOMP_taskgroup_start, GOMP_taskgroup_end,
86         GOMP_parallel_sections): New prototypes.
87         * fortran.c (omp_is_initial_device): Add ialias_redirect.
88         (omp_is_initial_device_): New function.
89         (ULP, STR1, STR2, ialias_redirect): Removed.
90         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
91         omp_set_default_device_8_, omp_get_default_device_,
92         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
93         functions.
94         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
95         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
96         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
97         @@GOMP_4.0.
98         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
99         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
100         omp_set_default_device, omp_set_default_device_,
101         omp_set_default_device_8_, omp_get_default_device,
102         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
103         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
104         omp_get_team_num_): Export @@OMP_4.0.
105         * team.c (struct gomp_thread_start_data): Add place field.
106         (gomp_thread_start): Clear thr->thread_pool and
107         thr->task before returning.  Use gomp_team_barrier_wait_final
108         instead of gomp_team_barrier_wait.  Initialize thr->place.
109         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
110         team_cancelled and task_queued_count fields.
111         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
112         before calling pthread_exit.
113         (gomp_free_thread): No longer static.  Use
114         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
115         (gomp_team_start): Add flags argument.  Set
116         thr->thread_pool->threads_busy to nthreads immediately after creating
117         new pool.  Use gomp_managed_threads_lock instead of
118         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
119         (gomp_team_end): Use gomp_managed_threads_lock instead of
120         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
121         of gomp_team_barrier_wait.  If team->team_cancelled, call
122         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
123         rather than thr->ts.work_share.
124         (initialize_team): Don't call gomp_sem_init here.
125         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
126         caller.
127         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
128         * env.c (gomp_global_icv): Add default_device_var, target_data and
129         bind_var initializers.
130         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
131         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
132         gomp_places_list_len): New variables.
133         (parse_bind_var, parse_one_place, parse_places_var): New functions.
134         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
135         sized places.
136         (gomp_cancel_var): New global variable.
137         (parse_int): New function.
138         (handle_omp_display_env): New function.
139         (initialize_env): Use it.  Initialize default_device_var.
140         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
141         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
142         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
143         been successfully parsed (and call gomp_init_affinity in that case).
144         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
145         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
146         omp_get_team_num, omp_is_initial_device): New functions.
147         * libgomp.h: Include stdlib.h.
148         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
149         Define.
150         (struct target_mem_desc): Forward declare.
151         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
152         and thread_limit_var fields.
153         (gomp_get_num_devices): New prototype.
154         (gomp_cancel_var): New extern decl.
155         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
156         team_cancelled and task_queued_count fields.  Add comments about
157         task_{,queued_,running_}count.
158         (gomp_cancel_kind): New enum.
159         (gomp_work_share_end_cancel): New prototype.
160         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
161         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
162         and depend fields.
163         (struct gomp_taskgroup): New type.
164         (struct gomp_task_depend_entry,
165         struct gomp_dependers_vec): New types.
166         (gomp_finish_task): Free depend_hash if non-NULL.
167         (struct gomp_team_state): Add place_partition_off
168         and place_partition_len fields.
169         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
170         gomp_places_list_len): New extern decls.
171         (struct gomp_thread): Add place field.
172         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
173         (gomp_init_thread_affinity): Add place argument.
174         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
175         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
176         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
177         gomp_affinity_init_level, gomp_affinity_print_place): New
178         prototypes.
179         (gomp_team_start): Add flags argument.
180         (gomp_thread_limit_var, gomp_remaining_threads_count,
181         gomp_remaining_threads_lock): Remove.
182         (gomp_managed_threads_lock): New variable.
183         (struct gomp_thread_pool): Add threads_busy field.
184         (gomp_free_thread): New prototype.
185         * task.c: Include hashtab.h.
186         (hash_entry_type): New typedef.
187         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
188         (gomp_init_task): Clear dependers, depend_hash, depend_count,
189         copy_ctors_done and taskgroup fields.
190         (GOMP_task): Add depend argument, handle depend clauses.  If
191         gomp_team_barrier_cancelled or if it's taskgroup has been
192         cancelled, don't queue or start new tasks.  Set copy_ctors_done
193         field if needed.  Initialize taskgroup field.  If copy_ctors_done
194         and already cancelled, don't discard the task.  If taskgroup is
195         non-NULL, enqueue the task into taskgroup queue.  Increment
196         num_children field in taskgroup.  Increment task_queued_count.
197         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
198         gomp_task_run_post_remove_taskgroup): New inline functions.
199         (gomp_task_run_post_handle_depend_hash,
200         gomp_task_run_post_handle_dependers,
201         gomp_task_run_post_handle_depend): New functions.
202         (GOMP_taskwait): Use them.  If more than one new tasks
203         have been queued, wake other threads if needed.
204         (gomp_barrier_handle_tasks): Likewise.  If
205         gomp_team_barrier_cancelled, don't start any new tasks, just free
206         all tasks.
207         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
208         * omp_lib.f90.in
209         (omp_proc_bind_kind, omp_proc_bind_false,
210         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
211         omp_proc_bind_spread): New params.
212         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
213         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
214         omp_get_team_num, omp_is_initial_device): New interfaces.
215         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
216         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
217         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
218         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
219         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
220         useless use omp_lib_kinds.
221         * omp.h.in (omp_proc_bind_t): New typedef.
222         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
223         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
224         omp_get_team_num, omp_is_initial_device): New prototypes.
225         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
226         through to gomp_team_start.
227         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
228         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
229         Adjust gomp_parallel_loop_start callers.
230         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
231         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
232         GOMP_loop_end_cancel): New functions.
233         (GOMP_parallel_end): Add ialias_redirect.
234         * hashtab.h: New file.
235         * libgomp.texi (Environment Variables): Minor cleanup,
236         update section refs to OpenMP 4.0rc2.
237         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
238         environment variables.
239         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
240         team->work_shares_to_free to thr->ts.work_share before calling
241         free_work_share.
242         (gomp_work_share_end_cancel): New function.
243         * config/linux/proc.c: Include errno.h.
244         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
245         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
246         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
247         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
248         gomp_cpuset_size is sizeof (cpu_set_t).
249         (gomp_init_num_threads): Initialize gomp_cpuset_size,
250         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
251         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
252         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
253         contain any logical CPUs.
254         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
255         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
256         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
257         pthread_getaffinity_np.  Check gomp_places_list instead of
258         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
259         * config/linux/bar.c (gomp_barrier_wait_end,
260         gomp_barrier_wait_last): Use BAR_* defines.
261         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
262         from state where needed.  Set work_share_cancelled to 0 on last
263         thread.
264         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
265         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
266         functions.
267         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
268         Add cpusetsize argument.
269         (gomp_cpuset_size, gomp_cpusetp): Declare.
270         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
271         (affinity_counter): Remove.
272         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
273         if CPU_ALLOC_SIZE isn't defined.
274         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
275         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
276         bind current thread to the first place.
277         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
278         pthread_setaffinity_np to gomp_places_list[place].
279         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
280         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
281         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
282         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
283         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
284         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
285         (gomp_barrier_t): Add awaited_final field.
286         (gomp_barrier_init): Initialize awaited_final field.
287         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
288         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
289         prototypes.
290         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
291         defines.
292         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
293         gomp_team_barrier_cancelled): New inline functions.
294         (gomp_barrier_last_thread,
295         gomp_team_barrier_set_task_pending,
296         gomp_team_barrier_clear_task_pending,
297         gomp_team_barrier_set_waiting_for_tasks,
298         gomp_team_barrier_waiting_for_tasks,
299         gomp_team_barrier_done): Use BAR_* defines.
300         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
301         (gomp_barrier_wait_end): Use BAR_* defines.
302         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
303         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
304         Use BAR_* defines.
305         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
306         gomp_team_barrier_cancel): New functions.
307         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
308         argument.
309         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
310         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
311         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
312         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
313         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
314         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
315         (gomp_barrier_t): Add cancellable field.
316         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
317         gomp_team_barrier_cancel): New prototypes.
318         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
319         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
320         gomp_team_barrier_cancelled): New inline functions.
321         (gomp_barrier_wait_start, gomp_barrier_last_thread,
322         gomp_team_barrier_set_task_pending,
323         gomp_team_barrier_clear_task_pending,
324         gomp_team_barrier_set_waiting_for_tasks,
325         gomp_team_barrier_waiting_for_tasks,
326         gomp_team_barrier_done): Use BAR_* defines.
327         * barrier.c (GOMP_barrier_cancel): New function.
328         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
329         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
330         omp_proc_bind_spread): New params.
331         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
332         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
333         omp_get_team_num, omp_is_initial_device): New externals.
334         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
335         New functions.
336         (gomp_resolve_num_threads): Adjust for thread_limit now being in
337         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
338         infinity.  If not nested, just return minimum of max_num_threads
339         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
340         to the returned value.  Otherwise, don't update atomically
341         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
342         (GOMP_parallel_end): Adjust for thread_limit now being in
343         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
344         infinity.  Adjust threads_busy in the pool rather than
345         gomp_remaining_threads_count.  Remember team->nthreads and call
346         gomp_team_end before adjusting threads_busy, if not nested
347         afterwards, just set it to 1 non-atomically.  Add ialias.
348         (GOMP_parallel_start): Adjust gomp_team_start caller.
349         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
350         * testsuite/libgomp.c/affinity-1.c: New test.
351         * testsuite/libgomp.c/atomic-15.c: New test.
352         * testsuite/libgomp.c/atomic-16.c: New test.
353         * testsuite/libgomp.c/atomic-17.c: New test.
354         * testsuite/libgomp.c/cancel-for-1.c: New test.
355         * testsuite/libgomp.c/cancel-for-2.c: New test.
356         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
357         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
358         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
359         * testsuite/libgomp.c/cancel-sections-1.c: New test.
360         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
361         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
362         * testsuite/libgomp.c/depend-1.c: New test.
363         * testsuite/libgomp.c/depend-2.c: New test.
364         * testsuite/libgomp.c/depend-3.c: New test.
365         * testsuite/libgomp.c/depend-4.c: New test.
366         * testsuite/libgomp.c/for-1.c: New test.
367         * testsuite/libgomp.c/for-1.h: New file.
368         * testsuite/libgomp.c/for-2.c: New test.
369         * testsuite/libgomp.c/for-2.h: New file.
370         * testsuite/libgomp.c/for-3.c: New test.
371         * testsuite/libgomp.c/pr58392.c: New test.
372         * testsuite/libgomp.c/simd-1.c: New test.
373         * testsuite/libgomp.c/simd-2.c: New test.
374         * testsuite/libgomp.c/simd-3.c: New test.
375         * testsuite/libgomp.c/simd-4.c: New test.
376         * testsuite/libgomp.c/simd-5.c: New test.
377         * testsuite/libgomp.c/simd-6.c: New test.
378         * testsuite/libgomp.c/target-1.c: New test.
379         * testsuite/libgomp.c/target-2.c: New test.
380         * testsuite/libgomp.c/target-3.c: New test.
381         * testsuite/libgomp.c/target-4.c: New test.
382         * testsuite/libgomp.c/target-5.c: New test.
383         * testsuite/libgomp.c/target-6.c: New test.
384         * testsuite/libgomp.c/target-7.c: New test.
385         * testsuite/libgomp.c/taskgroup-1.c: New test.
386         * testsuite/libgomp.c/thread-limit-1.c: New test.
387         * testsuite/libgomp.c/thread-limit-2.c: New test.
388         * testsuite/libgomp.c/thread-limit-3.c: New test.
389         * testsuite/libgomp.c/udr-1.c: New test.
390         * testsuite/libgomp.c/udr-2.c: New test.
391         * testsuite/libgomp.c/udr-3.c: New test.
392         * testsuite/libgomp.c++/affinity-1.C: New test.
393         * testsuite/libgomp.c++/atomic-10.C: New test.
394         * testsuite/libgomp.c++/atomic-11.C: New test.
395         * testsuite/libgomp.c++/atomic-12.C: New test.
396         * testsuite/libgomp.c++/atomic-13.C: New test.
397         * testsuite/libgomp.c++/atomic-14.C: New test.
398         * testsuite/libgomp.c++/atomic-15.C: New test.
399         * testsuite/libgomp.c++/cancel-for-1.C: New test.
400         * testsuite/libgomp.c++/cancel-for-2.C: New test.
401         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
402         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
403         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
404         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
405         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
406         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
407         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
408         * testsuite/libgomp.c++/cancel-test.h: New file.
409         * testsuite/libgomp.c++/for-9.C: New test.
410         * testsuite/libgomp.c++/for-10.C: New test.
411         * testsuite/libgomp.c++/for-11.C: New test.
412         * testsuite/libgomp.c++/simd-1.C: New test.
413         * testsuite/libgomp.c++/simd-2.C: New test.
414         * testsuite/libgomp.c++/simd-3.C: New test.
415         * testsuite/libgomp.c++/simd-4.C: New test.
416         * testsuite/libgomp.c++/simd-5.C: New test.
417         * testsuite/libgomp.c++/simd-6.C: New test.
418         * testsuite/libgomp.c++/simd-7.C: New test.
419         * testsuite/libgomp.c++/simd-8.C: New test.
420         * testsuite/libgomp.c++/target-1.C: New test.
421         * testsuite/libgomp.c++/target-2.C: New test.
422         * testsuite/libgomp.c++/target-2-aux.cc: New file.
423         * testsuite/libgomp.c++/target-3.C: New test.
424         * testsuite/libgomp.c++/taskgroup-1.C: New test.
425         * testsuite/libgomp.c++/udr-1.C: New test.
426         * testsuite/libgomp.c++/udr-2.C: New test.
427         * testsuite/libgomp.c++/udr-3.C: New test.
428         * testsuite/libgomp.c++/udr-4.C: New test.
429         * testsuite/libgomp.c++/udr-5.C: New test.
430         * testsuite/libgomp.c++/udr-6.C: New test.
431         * testsuite/libgomp.c++/udr-7.C: New test.
432         * testsuite/libgomp.c++/udr-8.C: New test.
433         * testsuite/libgomp.c++/udr-9.C: New test.
435 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
437         PR testsuite/57605
438         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
439         ALWAYS_CFLAGS.
441 2013-09-20  Alan Modra  <amodra@gmail.com>
443         * configure: Regenerate.
445 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
447         * testsuite/libgomp.c/sections-2.c: New test.
449 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
451         * testsuite/libgomp.fortran/strassen.f90:
452         Add dg-skip-if aarch64_tiny.
454 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
455             Cesar Philippidis  <cesar@codesourcery.com>
457         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
458         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
459         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
460         * testsuite/libgomp.fortran/fortran.exp: Likewise.
461         * testsuite/libgomp.graphite/graphite.exp: Likewise.
462         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
463         Use dg-runtest rather than gfortran-dg-runtest.
465 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
467         * testsuite/libgomp.c/icv-2.c: Extend current handling of
468         Linux-based x86 systems to cover all GNU systems.
469         * testsuite/libgomp.c/lock-3.c: Likewise.
470         * testsuite/libgomp.c/pr48591.c: Likewise.
472 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
474         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
475         GNU/Hurd, as done for Linux-based systems.
477         * config/posix/ptrlock.h: Fix comment.
479 2013-05-27  Tobias Burnus  <burnus@net-b.de>
481         PR fortran/57423
482         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
483         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
484         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
485         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
486         omp_destroy_nest_lock): Correct arguments to match the one in
487         the OpenMP spec.
488         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
489         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
490         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
491         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
493 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
495         * testsuite/libgomp.c/loop-13.c: New test.
496         * testsuite/libgomp.c/loop-14.c: New test.
497         * testsuite/libgomp.c/loop-15.c: New test.
498         * testsuite/libgomp.c++/loop-13.C: New test.
499         * testsuite/libgomp.c++/loop-14.C: New test.
500         * testsuite/libgomp.c++/loop-15.C: New test.
502 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
504         PR middle-end/56217
505         * testsuite/libgomp.c++/pr56217.C: New test.
507 2013-02-01  Alan Modra  <amodra@gmail.com>
509         * task.c (GOMP_task, GOMP_taskwait): Comment.
511 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
512             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
514         PR libgomp/55561
515         * config/linux/wait.h (do_spin): Use atomic load for addr.
516         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
517         for intptr and ptrlock.
518         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
519         for ptrlock.
521 2013-01-22  Alan Modra  <amodra@gmail.com>
523         PR libgomp/51376
524         PR libgomp/56073
525         * task.c (GOMP_task): Revert 2011-12-09 change.
526         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
527         barrier to read task->children..
528         (gomp_barrier_handle_tasks): ..and matching atomic store with
529         release barrier here when setting parent->children to NULL.
531 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
532             Tobias Burnus  <burnus@net-b.de>
534         PR driver/55884
535         * testsuite/libgomp.fortran/fortran.exp: Use
536         -fintrinsic-modules-path= instead of
537         -fintrinsic-modules-path.
539 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
541         Update copyright years.
543 2012-12-19  Tobias Burnus  <burnus@net-b.de>
545         * testsuite/libgomp.fortran/fortran.exp: Set
546         -fintrinsic-modules-path.
548 2012-12-19  Tobias Burnus  <burnus@net-b.de>
550         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
551         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
553 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
555         PR libgomp/55411
556         * team.c (gomp_free_thread): Decrease gomp_managed_threads
557         if pool had any threads_used.
559 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
561         * testsuite/libgomp.c++/pr24455.C: Use
562         -Wl,-undefined,dynamic_lookup on darwin.
564 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
566         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
568 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
570         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
572 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
573             Jim MacArthur  <jim.macarthur@arm.com>
574             Marcus Shawcroft  <marcus.shawcroft@arm.com>
575             Nigel Stephens  <nigel.stephens@arm.com>
576             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
577             Richard Earnshaw  <rearnsha@arm.com>
578             Sofiane Naci  <sofiane.naci@arm.com>
579             Stephen Thomas  <stephen.thomas@arm.com>
580             Tejas Belagod  <tejas.belagod@arm.com>
581             Yufeng Zhang  <yufeng.zhang@arm.com>
583         * configure.tgt: Add AArch64.
585 2012-10-04  Jason Merrill  <jason@redhat.com>
587         * testsuite/libgomp.c++/tls-init1.C: New.
589 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
591         * configure: Regenerated.
593 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
595         * config/linux/mips/futex.h (sys_futex0): Change to static
596         function with noinline, nomips16 attributes under MIPS16. Adjust
597         asm statement to place 'li v0,SYS_futex' immediately before
598         syscall insn.
600 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
602         * libgomp.texi (Library Index): Renamed from "Index" to prevent
603         conflict with index.html on case-insensitive file systems.
605 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
607         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
608         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
610 2012-07-02  Richard Guenther  <rguenther@suse.de>
611             Michael Matz  <matz@suse.de>
612             Tobias Grosser <tobias@grosser.es>
613             Sebastian Pop <sebpop@gmail.com>
615         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
616         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
617         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
618         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
620 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
622         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
624 2012-06-22  Richard Guenther  <rguenther@suse.de>
626         Merge from graphite branch
627         2012-01-13  Tobias Grosser  <tobias@grosser.es>
629         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
630         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
632 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
634         PR middle-end/53580
635         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
636         use GOMP_barrier () call instead.
637         * testsuite/libgomp.c/pr26943-3.c: Likewise.
638         * testsuite/libgomp.c/pr26943-4.c: Likewise.
639         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
640         call GOMP_barrier instead.
641         * testsuite/libgomp.fortran/vla5.f90: Likewise.
643 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
645         PR libgomp/52993
646         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
647         argument to memset call.
649 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
651         * configure: Regenerated.
653 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
655         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
657 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
659         PR bootstrap/52812
660         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
662 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
664         PR middle-end/52547
665         * testsuite/libgomp.c/pr52547.c: New test.
667 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
669         * testsuite/lib/libgomp.exp: load fortran-modules.exp
671 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
673         * configure.tgt (mips-sgi-irix6*): Remove.
675 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
677         * configure.tgt (alpha*-dec-osf*): Remove.
679         * config/osf/sem.h: Remove.
680         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
682 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
684         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
686 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
688         PR libstdc++/52188
689         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
690         Remove ENABLE_SYMVERS_SOL2.
691         * configure: Regenerate.
692         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
693         (PREPROCESS): New variable.
694         (libgomp.ver): New target.
695         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
696         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
697         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
698         Use libgomp.ver.
699         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
700         * Makefile.in: Regenerate.
702 2012-02-14  Walter Lee  <walt@tilera.com>
704         * configure.tgt: Handle tilegx and tilepro.
705         * config/linux/tile/futex.h: New file.
707 2012-02-08  Richard Guenther  <rguenther@suse.de>
709         PR tree-optimization/46886
710         * testsuite/libgomp.c/pr46886.c: New testcase.
712 2012-01-25  Matthias Klose  <doko@ubuntu.com>
714         * config/linux/arm: Remove empty directory.
715         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
717 2011-12-09  Alan Modra  <amodra@gmail.com>
719         PR libgomp/51376
720         * task.c (GOMP_taskwait): Don't access task->children outside of
721         task_lock mutex region.
722         (GOMP_task): Likewise.
724 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
726         PR libgomp/51132
727         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
728         to file scope.
729         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
730         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
731         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
732         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
733         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
735 2011-12-02  Alan Modra  <amodra@gmail.com>
737         * config/linux/affinity.c: Use atomic rather than sync builtin.
738         * config/linux/lock.c: Likewise.
739         * config/linux/ptrlock.h: Likewise.
740         * config/linux/ptrlock.c: Likewise.
741         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
742         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
743         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
744         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
745         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
746         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
747         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
748         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
749         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
750         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
752 2011-11-30  Alan Modra  <amodra@gmail.com>
754         PR libgomp/51298
755         * config/linux/bar.h: Use atomic rather than sync builtins.
756         * config/linux/bar.c: Likewise.  Add missing acquire
757         synchronisation on generation field.
758         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
759         double unlock.
761 2011-11-30  Alan Modra  <amodra@gmail.com>
763         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
764         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
765         * config/linux/mutex.h: Use atomic rather than sync builtins.
766         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
767         * config/linux/omp-lock.h: Comment fix.
768         * config/linux/arm/mutex.h: Delete.
769         * config/linux/powerpc/mutex.h: Delete.
770         * config/linux/ia64/mutex.h: Delete.
771         * config/linux/mips/mutex.h: Delete.
773 2011-11-30  Alan Modra  <amodra@gmail.com>
775         PR libgomp/51249
776         * config/linux/sem.h: Rewrite.
777         * config/linux/sem.c: Rewrite.
779 2011-11-28  Richard Henderson  <rth@redhat.com>
781         * libgomp.h (enum memmodel): New.
783 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
785         * configure: Regenerate.
787 2011-10-10  Matthias Klose  <doko@ubuntu.com>
789         * config/posix95: Remove empty directory.
791 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
793         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
795 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
797         PR fortran/49792
798         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
799         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
801 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
803         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
805 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
807         PR libgomp/49965
808         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
810 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
812         * config/linux/proc.h: New.
813         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
814         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
815         (gomp_init_num_threads): Update call to cpuset_popcount.
816         (get_num_procs): Ditto.
817         * config/linux/affinity.c (gomp_init_affinity): Call
818         gomp_cpuset_popcount.
820 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
822         PR fortran/42041
823         PR fortran/46752
824         * omp.h.in (omp_in_final): New prototype.
825         * omp_lib.f90.in (omp_in_final): New interface.
826         (omp_integer_kind, omp_logical_kind): Remove
827         and replace all its uses in the module with 4.
828         (openmp_version): Change to 201107.
829         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
830         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
831         kind for the parameters.
832         (omp_in_final): New external.
833         (openmp_version): Change to 201107.
834         * task.c (omp_in_final): New function.
835         (gomp_init_task): Initialize final_task.
836         (GOMP_task): Remove unused attribute from flags.  Handle final
837         tasks.
838         (GOMP_taskyield): New function.
839         (omp_in_final): Return true if if (false) or final (true) task
840         or descendant of final (true).
841         * fortran.c (omp_in_final_): New function.
842         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
843         (GOMP_3.0): Export GOMP_taskyield.
844         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
845         variables.
846         (parse_unsigned_long_list): New function.
847         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
848         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
849         even if parse_affinity returned false.
850         * config/linux/affinity.c (gomp_init_affinity): Handle
851         gomp_cpu_affinity_len == 0.
852         * libgomp_g.h (GOMP_taskyield): New prototype.
853         * libgomp.h (struct gomp_task): Add final_task field.
854         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
855         * team.c (gomp_team_start): Override new task's nthreads_var icv
856         if list form OMP_NUM_THREADS has been used and it has value for
857         the new nesting level.
859         * testsuite/libgomp.c/atomic-11.c: New test.
860         * testsuite/libgomp.c/atomic-12.c: New test.
861         * testsuite/libgomp.c/atomic-13.c: New test.
862         * testsuite/libgomp.c/atomic-14.c: New test.
863         * testsuite/libgomp.c/reduction-6.c: New test.
864         * testsuite/libgomp.c/task-5.c: New test.
865         * testsuite/libgomp.c++/atomic-2.C: New test.
866         * testsuite/libgomp.c++/atomic-3.C: New test.
867         * testsuite/libgomp.c++/atomic-4.C: New test.
868         * testsuite/libgomp.c++/atomic-5.C: New test.
869         * testsuite/libgomp.c++/atomic-6.C: New test.
870         * testsuite/libgomp.c++/atomic-7.C: New test.
871         * testsuite/libgomp.c++/atomic-8.C: New test.
872         * testsuite/libgomp.c++/atomic-9.C: New test.
873         * testsuite/libgomp.c++/task-8.C: New test.
874         * testsuite/libgomp.c++/reduction-4.C: New test.
875         * testsuite/libgomp.fortran/allocatable7.f90: New test.
876         * testsuite/libgomp.fortran/allocatable8.f90: New test.
877         * testsuite/libgomp.fortran/crayptr3.f90: New test.
878         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
879         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
880         * testsuite/libgomp.fortran/pointer1.f90: New test.
881         * testsuite/libgomp.fortran/pointer2.f90: New test.
882         * testsuite/libgomp.fortran/task4.f90: New test.
884 2011-08-02  Tobias Burnus  <burnus@net-b.de>
886         * libgomp.texi: Update OpenMP spec references to 3.1.
887         (omp_in_final,OMP_PROC_BIND): New sections.
888         (OMP_NUM_THREADS): Document that the value can be now a list.
889         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
891 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
893         * config/linux/x86/futex.h: Check __x86_64__ instead of
894         __LP64__.
896 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
898         PR middle-end/49897
899         PR middle-end/49898
900         * testsuite/libgomp.c/pr49897-1.c: New test.
901         * testsuite/libgomp.c/pr49897-2.c: New test.
902         * testsuite/libgomp.c/pr49898-1.c: New test.
903         * testsuite/libgomp.c/pr49898-2.c: New test.
905 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
907         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
908         for ia32 instead of ilp32.
910         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
911         * testsuite/libgomp.c/atomic-6.c: Likewise.
913 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
915         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
916         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
918 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
920         PR libgomp/45351
921         * config/osf/sem.h: New file.
922         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
924 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
926         PR target/49541
927         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
928         ldflags.
930 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
932         * config/linux/wait.h (do_spin): New inline, largely copied
933         from do_wait, just don't do futex_wait here, instead return true if
934         it should be done.
935         (do_wait): Implement using do_spin.
936         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
937         to prototype.
938         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
939         __sync_bool_compare_and_swap, pass the oldval to
940         gomp_mutex_lock_slow.
941         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
942         If all mutex contenders are just spinning and not sleeping, don't
943         change state to 2 unnecessarily.  Optimize the loop when state has
944         already become 2 to use just one atomic operation per loop instead
945         of two.
946         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
947         to prototype.
948         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
949         __sync_bool_compare_and_swap, pass the oldval to
950         gomp_mutex_lock_slow.
952 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
954         PR libgomp/49490
955         * iter.c (gomp_iter_static_next): For chunk size 0
956         only use n ceil/ nthreads size for the first
957         n % nthreads threads in the team instead of
958         all threads except for the last few ones which
959         get less work or none at all.
960         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
961         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
962         chunk argument, set run_sched_modifier to 0 for static
963         resp. 1 for other kinds.  If chunk argument is 0
964         and not static, set value to 1.
966 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
968         PR c++/49043
969         * testsuite/libgomp.c++/pr49043.C: New test.
971         PR c++/48869
972         * testsuite/libgomp.c++/pr48869.C: New test.
974 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
976         PR fortran/48894
977         * fortran.c: Include limits.h.
978         (TO_INT): Define.
979         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
980         *set.
981         (omp_set_num_threads_8_, omp_set_schedule_8_,
982         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
983         omp_get_team_size_8_): Use TO_INT macro.
984         * testsuite/libgomp.fortran/pr48894.f90: New test.
986 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
988         PR middle-end/48591
989         * testsuite/libgomp.c/pr48591.c: New test.
991 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
993         PR bootstrap/48135
994         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
995         * configure: Regenerate.
997 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
999         PR fortran/47886
1000         * testsuite/libgomp.fortran/task3.f90: New test.
1002 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1004         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1006 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1008         PR libgomp/47854
1009         * libgomp.texi (omp_get_wtime): Don't say time in the past
1010         must be Unix Epoch.
1012 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1014         PR libgomp/47804
1015         * testsuite/libgomp.fortran/fortran.exp: Check for both
1016         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1017         but $blddir != "", still append ${blddir}/${lang_library_path}
1018         to ld_library_path.
1020 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1022         PR libgomp/47758
1023         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1024         of libquadmath.a before adding its libpath to ldflags.
1026 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1028         PR libgomp/47731
1029         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1030         to FUTEX_WAIT futex syscall.
1031         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1033 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1035         * configure: Regenerate.
1037 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1039         PR libstdc++/36104
1040         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1042 2011-01-16  Gerald Pfeifer
1044         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1046 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1048         PR fortran/46874
1049         * libgomp.fortran/allocatable6.f90: New test.
1051 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1053         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1054         * configure: Regenerate.
1056 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1058         PR target/40125
1059         PR lto/46695
1060         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1061         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1062         * aclocal.m4: Regenerate.
1063         * configure: Regenerate.
1064         * Makefile.in: Regenerate.
1065         * testsuite/Makefile.in: Regenerate.
1067 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
1069         PR fortran/46753
1070         * libgomp.fortran/pr46753.f90: New test.
1072         PR libgomp/43706
1073         * env.c (initialize_env): Default to spin count 300000
1074         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1075         is specified.
1077         PR libgomp/45240
1078         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1079         at the end if sync builtins aren't supported.
1081 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1083         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1085 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1087         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1089 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
1091         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1093 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1094             Tobias Burnus  <burnus@net-b.de>
1096         PR fortran/32049
1097         * configure.ac:
1098         * configure: Regenerate.
1100 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1102         * config/linux/futex.h: New.
1103         * config/linux/arm/mutex.h: New.
1104         * configure.tgt (arm*-*-linux*): Add config path.
1106 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1108         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1110 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1112         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1113         Change Fortran datatype to LOGICAL.
1114         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1115         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1117 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1119         * configure: Regenerate.
1121 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
1123         * libgomp.texi: Add function keyword to a couple of Fortran
1124         interfaces, use integer instead of int for Fortran.
1126 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
1128         * libgomp.texi: Fix spelling and pasto problems throughout.
1129         Adjust prototypes to match code.
1131 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1133         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1134         silence -fwhole-file warning.
1136 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1138         * configure.tgt (*-*-solaris2.[56]*): Removed.
1140 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1142         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1143         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1144         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1145         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1146         targetting solaris2*.
1147         * configure: Regenerate.
1148         * config.h.in: Regenerate.
1150         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1151         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1152         Add libgomp_version_dep.
1153         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1154         versioning.
1155         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1156         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1157         * Makefile.in: Regenerate.
1159         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1160         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1161         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1162         to common block, protected by
1163         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1165 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1167         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
1169 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
1171         PR bootstrap/43170
1172         * configure: Regenerate.
1174 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1176         PR other/43620
1177         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1178         * configure: Regenerate.
1179         * Makefile.in: Regenerate.
1180         * testsuite/Makefile.in: Regenerate.
1182 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1184         PR c/43893
1185         * testsuite/libgomp.c/pr43893.c: New test.
1186         * testsuite/libgomp.c++/pr43893.C: New test.
1188 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1190         PR middle-end/43570
1191         * testsuite/libgomp.fortran/vla8.f90: New test.
1193 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1195         PR libgomp/43706
1196         * config/linux/affinity.c (gomp_init_affinity): Decrease
1197         gomp_available_cpus if affinity mask confines the process to fewer
1198         CPUs.
1199         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1200         non-NULL, just return gomp_available_cpus.
1202         PR libgomp/43569
1203         * sections.c (gomp_sections_init): Initialize ws->mode.
1205 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1207         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1208         not unused bar variable.
1209         * configure: Regenerate.
1211 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1213         * Makefile.in: Regenerate.
1214         * aclocal.m4: Regenerate.
1215         * testsuite/Makefile.in: Regenerate.
1217 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
1219         PR libgomp/42942
1220         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1221         (initialize_env): Adjust callers.
1222         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1223         when the argument is 0.
1225         * testsuite/libgomp.c/pr42942.c: New test.
1227 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
1229         PR middle-end/42644
1230         PR middle-end/42130
1231         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1232         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1234 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1236         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1237         * testsuite/libgomp.c++/task-6.C: Likewise.
1239 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
1241         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1243 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
1245         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1246         * configure: Regenerate.
1248 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
1250         PR fortran/42866
1251         * testsuite/libgomp.fortran/allocatable5.f90: New test.
1253 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
1255         * configure.ac: Test for executability of GFORTRAN.
1256         * configure: Regenerate.
1258 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1260         * configure: Regenerate.
1262 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
1264         PR libgomp/42602
1265         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1267 2010-01-03  Richard Guenther  <rguenther@suse.de>
1269         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1271 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
1273         * testsuite/libgomp.graphite/pr4118.c: New.
1275 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1277         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1278         for darwin, protect the test with require-effective-target tls_runtime.
1279         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1281 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1283         PR target/41605
1284         * testsuite/lib/libgomp.exp: Provide -B options to allow for
1285         link spec %s substitutions for static libraries.
1287 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
1289         PR testsuite/42135
1290         * libgomp.graphite/force-parallel-2.c: Reduce array size.
1292 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1294         * Makefile.in: Regenerate.
1295         * configure: Regenerate.
1296         * testsuite/Makefile.in: Regenerate.
1298 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1300         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1301         settings for LC_ALL and LANG.
1303 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1305         PR fortran/42162
1306         * testsuite/libgomp.fortran/pr42162.f90: New test.
1308 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1310         PR middle-end/42029
1311         * testsuite/libgomp.c/pr42029.c: New test.
1313 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1315         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1316         *s.  Accept ld version without text in ()s.
1317         * configure: Regenerated.
1319 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1321         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1323 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1325         PR libgomp/41418
1326         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1327         or a hyphen (happens with fortran language disabled).
1328         * configure: Regenerate.
1330 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1332         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1333         use sed script portable to Solaris /bin/sed for extracting ld
1334         version.
1335         * configure: Regenerate.
1337 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
1339         * testsuite/libgomp.graphite/bounds.c: New test.
1341 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1343         * Makefile.am (libgomp_la_LINK): New.
1344         * Makefile.in: Regenerate.
1346 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1348         * configure.ac (AC_PREREQ): Bump to 2.64.
1350 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1352         * Makefile.am (install-html, install-pdf): Remove.
1353         * Makefile.in: Regenerate.
1355         * Makefile.in: Regenerate.
1356         * aclocal.m4: Regenerate.
1357         * config.h.in: Regenerate.
1358         * configure: Regenerate.
1359         * testsuite/Makefile.in: Regenerate.
1361 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1363         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1364         * Makefile.in: Regenerate.
1366 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
1368         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1369         * Makefile.in: Regenerate.
1371 2009-08-19  Tobias Burnus  <burnus@net-b.de>
1373         PR fortran/41102
1374         omp_lib.h.in: Fix -std=f95 errors.
1377 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
1379         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1380         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1381         * testsuite/libgomp.graphite/graphite.exp: New.
1383 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
1385         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1386         only build.
1388 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1390         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1391         needed memory barrier semantics.
1392         * config/linux/mips/mutex.h: New file.
1394 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1396         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1398 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
1400         * configure: Regenerate.
1402 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1404         PR testsuite/40699
1405         PR testsuite/40707
1406         PR testsuite/40709
1407         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1408         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1409         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1411 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1413         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1414         options when choosing a multilib.
1416 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1418         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1419         ld_library_path.  Use add_path.  Add just find_libgcc_s to
1420         ld_library_path, not every libgcc multilib directory.
1421         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1422         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1423         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1424         Use add_path.
1425         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1427 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
1429         * Makefile.am (LTLDFLAGS): Define.
1430         (LINK): Define.
1431         * Makefile.in: Regenerate.
1433 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1435         PR fortran/39718
1436         * testsuite/libgomp.fortran/fortran.exp: Don't link with
1437         libgfortranbegin, check existence of libgfortran.a instead of
1438         libgfortranbegin.a.
1440 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1442         PR libgomp/40174
1443         * team.c (gomp_thread_start): Destroy thr->release semaphore.
1444         (gomp_free_pool_helper): Likewise.
1446 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
1447             Jakub Jelinek  <jakub@redhat.com>
1449         PR fortran/35423
1450         * testsuite/libgomp.fortran/workshare2.f90: New test.
1452 2009-04-09  Nick Clifton  <nickc@redhat.com>
1454         * iter.c: Change copyright header to refer to version 3 of the
1455         GNU General Public License with version 3.1 of the GCC Runtime
1456         Library Exception and to point readers at the COPYING3 and
1457         COPYING3.RUNTIME files and the FSF's license web page.
1458         * alloc.c: Likewise.
1459         * barrier.c: Likewise.
1460         * config/bsd/proc.c: Likewise.
1461         * config/linux/affinity.c: Likewise.
1462         * config/linux/alpha/futex.h: Likewise.
1463         * config/linux/bar.c: Likewise.
1464         * config/linux/bar.h: Likewise.
1465         * config/linux/ia64/futex.h: Likewise.
1466         * config/linux/ia64/mutex.h: Likewise.
1467         * config/linux/lock.c: Likewise.
1468         * config/linux/mips/futex.h: Likewise.
1469         * config/linux/mutex.c: Likewise.
1470         * config/linux/mutex.h: Likewise.
1471         * config/linux/powerpc/futex.h: Likewise.
1472         * config/linux/proc.c: Likewise.
1473         * config/linux/ptrlock.c: Likewise.
1474         * config/linux/ptrlock.h: Likewise.
1475         * config/linux/s390/futex.h: Likewise.
1476         * config/linux/sem.c: Likewise.
1477         * config/linux/sem.h: Likewise.
1478         * config/linux/sparc/futex.h: Likewise.
1479         * config/linux/wait.h: Likewise.
1480         * config/linux/x86/futex.h: Likewise.
1481         * config/mingw32/proc.c: Likewise.
1482         * config/mingw32/time.c: Likewise.
1483         * config/posix/affinity.c: Likewise.
1484         * config/posix/bar.c: Likewise.
1485         * config/posix/bar.h: Likewise.
1486         * config/posix/lock.c: Likewise.
1487         * config/posix/mutex.h: Likewise.
1488         * config/posix/proc.c: Likewise.
1489         * config/posix/ptrlock.h: Likewise.
1490         * config/posix/sem.c: Likewise.
1491         * config/posix/sem.h: Likewise.
1492         * config/posix/time.c: Likewise.
1493         * config/posix95/lock.c: Likewise.
1494         * critical.c: Likewise.
1495         * env.c: Likewise.
1496         * error.c: Likewise.
1497         * fortran.c: Likewise.
1498         * iter_ull.c: Likewise.
1499         * libgomp.h: Likewise.
1500         * libgomp_f.h.in: Likewise.
1501         * libgomp_g.h: Likewise.
1502         * loop.c: Likewise.
1503         * loop_ull.c: Likewise.
1504         * omp.h.in: Likewise.
1505         * omp_lib.f90.in: Likewise.
1506         * omp_lib.h.in: Likewise.
1507         * ordered.c: Likewise.
1508         * parallel.c: Likewise.
1509         * sections.c: Likewise.
1510         * single.c: Likewise.
1511         * task.c: Likewise.
1512         * team.c: Likewise.
1513         * work.c: Likewise.
1515 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1517         * testsuite/config/default.exp: Change copyright header to refer to
1518         version 3 of the GNU General Public License and to point readers
1519         at the COPYING3 file and the FSF's license web page.
1521 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1523         PR middle-end/39573
1524         * libgomp.c++/pr39573.C: New test.
1526 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1528         PR other/39591
1529         * testsuite/libgomp.c/pr39591-1.c: New test.
1530         * testsuite/libgomp.c/pr39591-2.c: New test.
1531         * testsuite/libgomp.c/pr39591-3.c: New test.
1533 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
1535         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
1536         * testsuite/libgomp.c/atomic-6.c: Ditto.
1538 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1540         PR c/39495
1541         * testsuite/libgomp.c/loop-12.c: New test.
1542         * testsuite/libgomp.c/loop-11.c: New test.
1543         * testsuite/libgomp.c++/loop-11.C: New test.
1544         * testsuite/libgomp.c++/loop-12.C: New test.
1545         * testsuite/libgomp.c++/for-8.C: New test.
1547 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1549         * configure: Regenerate.
1551 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
1553         PR middle-end/39154
1554         * testsuite/libgomp.c/pr39154.c: New test.
1556 2009-01-30  Ian Lance Taylor  <iant@google.com>
1558         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
1559         libgomp_ld_is_gold.  Get gold version number.
1560         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
1561         * configure: Rebuild.
1563 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1565         * testsuite/lib/libgomp.exp: Add -B option for targets that
1566         use libgfortran.a%s in their specs.
1568 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
1570         PR libgomp/38086
1571         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
1572         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
1573         HAVE_AS_SYMVER_DIRECTIVE is not defined.
1574         * configure: Regenerated.
1575         * config.h.in: Likewise.
1577 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
1579         PR c++/38650
1580         * testsuite/libgomp.c/pr38650.c: New test.
1581         * testsuite/libgomp.c++/pr38650.C: New test.
1583 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
1585         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
1587 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
1589         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
1591 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1593         * configure: Regenerate.
1595 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1597         PR middle-end/36802
1598         * testsuite/libgomp.c/pr36802-1.c: New test.
1599         * testsuite/libgomp.c/pr36802-2.c: New test.
1600         * testsuite/libgomp.c/pr36802-3.c: New test.
1602 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
1604         PR libgomp/38270
1605         * config/linux/powerpc/mutex.h: New.
1607 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1609         PR c++/38257
1610         * testsuite/libgomp.c++/for-7.C: New test.
1612         PR c++/38348
1613         * testsuite/libgomp.c++/for-6.C: New test.
1615 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1617         PR testsuite/28870
1618         * testsuite/lib/libgomp.exp: Include new timeout library files.
1619         (libgomp_target_compile): Set timeout value from new proc.
1621 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
1623         PR libgomp/37938
1624         * config/linux/ia64/mutex.h: New.
1626 2008-11-04  Tobias Burnus  <burnus@net-b.de>
1628         PR libgomp/37935
1629         * libgomp.texi (Runtime library routines, environment variables):
1630         Update for OpenMP version 3.0.
1632 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1633             Steve Ellcey  <sje@cup.hp.com>
1635         * configure: Regenerate for new libtool.
1636         * Makefile.in: Ditto.
1637         * testsuite/Makefile.in: Ditto.
1639 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
1640             Andreas Tobler  <a.tobler@schweiz.org>
1642         * config/bsd/proc.c: New file.
1643         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
1644         * configure.ac: Check for header <sys/sysctl.h>
1645         * configure: Regenerate.
1646         * config.h.in: Likewise.
1648 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
1650         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
1652 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1654         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
1655         * Makefile.in: Regenerated.
1656         * testsuite/Makefile.in: Regenerated.
1658 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
1660         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
1661         depend on blddir if blddir exists.
1662         (libgomp_target_compile): Likewise.
1663         * testsuite/libgomp.c++/c++.exp: Likewise.
1664         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1666 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1668         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
1669         Do not list GPL as Invariant Section.
1671 2008-07-28  Ilie Garbacea  <ilie@mips.com>
1672             Chao-ying Fu  <fu@mips.com>
1674         * configure.tgt: Enable futex for MIPS.
1675         * config/linux/mips/futex.h: New file.
1677 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
1679         * team.c (gomp_team_end): Free team immediately if it has
1680         just one thread.
1682 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
1684         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
1685         * testsuite/libgomp.fortran/fortran.exp: Same.
1686         * testsuite/libgomp.c/c.exp: Same.
1687         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
1688         directory to library path first.
1690 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
1692         * env.c (parse_stacksize): Add cast to avoid warning.
1693         (parse_spincount): Likewise.
1695 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1697         * testsuite/libgomp.c/loop-10.c: New test.
1698         * libgomp.c/loop-3.c (main): Add lastprivate clause.
1699         * libgomp.c++/loop-6.C (main): Likewise.
1701         PR debug/36617
1702         * testsuite/libgomp.c/debug-1.c: New test.
1704 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1706         * testsuite/libgomp.c/nqueens-1.c: New test.
1708         PR c++/36523
1709         * testsuite/libgomp.c++/task-7.C: New function.
1711 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1713         * configure: Regenerate.
1715 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1717         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
1718         mutex when HAVE_SYNC_BUILTINS isn't defined.
1720 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1722         * libgomp.texi (omp_test_lock): Fix typo.
1724 2008-06-12  Tobias Burnus  <burnus@net-b.de>
1726         * omp_lib.f90.in: Add "implicit none".
1728 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1730         PR middle-end/36506
1731         * testsuite/libgomp.c/reduction-5.c: New test.
1733 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
1735         * libgomp.h (struct gomp_task): Add in_tied_task field.
1736         * task.c (gomp_init_task): Initialize it.
1737         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
1738         unconditionally.  Don't call gomp_team_barrier_wake if
1739         current task is implicit or if(0) from implicit and number of
1740         running tasks is equal to nthreads - 1.
1742         PR libgomp/36471
1743         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
1744         omp_get_team_size_8): Fix pastos.
1746         PR libgomp/36469
1747         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
1748         * configure: Regenerated.
1749         * config.h.in: Regenerated.
1750         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
1751         defined.
1753 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
1755         PR bootstrap/36452
1756         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
1757         (GOMP_loop_ull_dynamic_start): Likewise.
1758         (GOMP_loop_ull_guided_start): Likewise.
1759         (GOMP_loop_ull_ordered_static_start): Likewise.
1760         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
1761         (GOMP_loop_ull_ordered_guided_start): Likewise.
1763 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1764             Richard Henderson  <rth@redhat.com>
1765             Ulrich Drepper  <drepper@redhat.com>
1766             Jakob Blomer  <jakob.blomer@ira.uka.de>
1768         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
1769         Substitute also OMP_*LOCK_25*.
1770         * configure: Regenerated.
1771         * config.h.in: Regenerated.
1772         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
1773         ptrlock.c and task.c.
1774         * Makefile.in: Regenerated.
1775         * testsuite/Makefile.in: Regenerated.
1776         * task.c: New file.
1777         * loop_ull.c: New file.
1778         * iter_ull.c: New file.
1779         * libgomp.h: Include ptrlock.h.
1780         (enum gomp_task_kind): New type.
1781         (struct gomp_team): Add task_lock, task_queue, task_count,
1782         task_running_count, single_count fields.  Add
1783         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
1784         Remove work_share_lock, generation_mask,
1785         oldest_live_gen, num_live_gen and init_work_shares fields, add
1786         work work_share_list_alloc, work_share_list_free and work_share_chunk
1787         fields.  Change work_shares from pointer to pointers into an array.
1788         Change ordered_release field into gomp_sem_t ** from flexible array
1789         member.  Add implicit_task and initial_work_shares fields.
1790         Move close to the end of the struct.
1791         (struct gomp_team_state): Add single_count, last_work_share,
1792         active_level and level fields, remove work_share_generation.
1793         (gomp_barrier_handle_tasks): New prototype.
1794         (gomp_finish_task): New inline function.
1795         (struct gomp_work_share): Move chunk_size, end, incr into
1796         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
1797         next_ll fields.  Reshuffle fields.  Add next_alloc,
1798         next_ws, next_free and inline_ordered_team_ids fields, change
1799         ordered_team_ids into pointer from flexible array member.
1800         Add mode field.  Put lock and next into a different cache line
1801         from most of the write-once fields.
1802         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
1803         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
1804         gomp_iter_ull_guided_next): New prototypes.
1805         (gomp_new_icv): New prototype.
1806         (struct gomp_thread): Add thread_pool and task fields.
1807         (struct gomp_thread_pool): New type.
1808         (gomp_new_team): New prototype.
1809         (gomp_team_start): Change type of last argument.
1810         (gomp_new_work_share): Removed.
1811         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
1812         (gomp_work_share_init_done): New static inline.
1813         (gomp_throttled_spin_count_var, gomp_available_cpus,
1814         gomp_managed_threads): New extern decls.
1815         (gomp_init_task): New prototype.
1816         (gomp_spin_count_var): New extern var decl.
1817         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
1818         or no alias support, or if not PIC.
1819         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
1820         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
1821         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
1822         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
1823         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
1824         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
1825         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
1826         gomp_test_nest_lock_25): New prototypes.
1827         (omp_lock_symver, strong_alias): Define.
1828         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
1829         decls.
1830         (gomp_end_task): New.
1831         (struct gomp_task_icv, gomp_global_icv): New.
1832         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
1833         (struct gomp_task): New.
1834         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
1835         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
1836         (gomp_icv): New.
1837         (gomp_schedule_type): Reorder enum to match
1838         omp_sched_t.
1839         * team.c (struct gomp_thread_start_data): Add thread_pool and task
1840         fields.
1841         (gomp_thread_start): Add gomp_team_barrier_wait call.
1842         For non-nested case remove clearing of docked thread thr fields.
1843         Use pool fields instead of global gomp_* variables.  Use
1844         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
1845         Create tasks for each member thread.
1846         (free_team): Only destroy team barrier, task_lock here and free it.
1847         (gomp_free_thread): Free last_team if non-NULL.
1848         (gomp_team_end): Call gomp_team_barrier_wait instead of
1849         gomp_barrier_wait.  For nested case call one extra
1850         gomp_barrier_wait.  Move here some destruction from free_team.
1851         Call free_team on pool->last_team if any, rather than freeing
1852         current team.  Destroy work_share_list_free_lock ifndef
1853         HAVE_SYNC_BUILTINS.
1854         (gomp_new_icv): New function.
1855         (gomp_threads, gomp_threads_size, gomp_threads_used,
1856         gomp_threads_dock): Removed.
1857         (gomp_thread_destructor): New variable.
1858         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
1859         functions.
1860         (gomp_team_start): Create new pool if current thread doesn't have
1861         one.  Use pool fields instead of global gomp_* variables.
1862         Initialize thread_pool field for new threads.  Clear single_count.
1863         Change last argument from ws to team, don't create
1864         new team, set ts.work_share to &team->work_shares[0] and clear
1865         ts.last_work_share.  Don't clear ts.work_share_generation.
1866         If number of threads changed, adjust atomically gomp_managed_threads.
1867         Use gomp_init_task instead of gomp_new_task,
1868         set thr->task to the corresponding implicit_task array entry.
1869         Create tasks for each member thread.  Initialize ts.level.
1870         (initialize_team): Call pthread_key_create on
1871         gomp_thread_destructor.
1872         (team_destructor): New function.
1873         (new_team): Removed.
1874         (gomp_new_team): New function.
1875         (free_team): Free gomp_work_share blocks chained through next_alloc,
1876         instead of freeing work_shares and destroying work_share_lock.
1877         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
1878         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
1879         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
1880         of gomp_barrier_wait.
1881         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
1882         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
1883         if gomp_work_share_start returned true.  Don't unlock ws->lock.
1884         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
1885         of gomp_barrier_wait.
1886         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
1887         gomp_work_share_init_done if gomp_work_share_start returned true.
1888         Don't unlock ws->lock.
1889         * work.c: Include stddef.h.
1890         (free_work_share): Use work_share_list_free_lock instead
1891         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
1892         Call gomp_fini_work_share and then either free ws if orphaned, or
1893         put it into work_share_list_free list of the current team.
1894         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
1895         functions.
1896         (gomp_work_share_start, gomp_work_share_end,
1897         gomp_work_share_end_nowait): Rewritten.
1898         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
1899         (openmp_version): Set to 200805.
1900         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
1901         omp_sched_guided, omp_sched_auto): New parameters.
1902         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
1903         omp_set_max_active_levels, omp_get_max_active_levels,
1904         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
1905         omp_get_active_level): New interfaces.
1906         * omp_lib.h.in (openmp_version): Set to 200805.
1907         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
1908         omp_sched_guided, omp_sched_auto): New parameters.
1909         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
1910         omp_set_max_active_levels, omp_get_max_active_levels,
1911         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
1912         omp_get_active_level): New externals.
1913         * loop.c: Include limits.h.
1914         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
1915         GFS_AUTO.
1916         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
1917         Likewise.  Use gomp_icv.
1918         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
1919         ts.static_trip here.
1920         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
1921         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
1922         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
1923         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
1924         don't unlock ws->lock, otherwise lock it.
1925         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
1926         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
1927         (gomp_parallel_loop_start): Call gomp_new_team instead of
1928         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
1929         Adjust gomp_team_start caller.  Pass 0 as second argument to
1930         gomp_resolve_num_threads.
1931         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
1932         If adding ws->chunk_size nthreads + 1 times after end won't
1933         overflow, set ws->mode to 1.
1934         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
1935         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
1936         GOMP_loop_ull_ordered_static_start,
1937         GOMP_loop_ull_ordered_dynamic_start,
1938         GOMP_loop_ull_ordered_guided_start,
1939         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
1940         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
1941         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
1942         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
1943         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
1944         prototypes.
1945         * libgomp.map: Export lock routines also @@OMP_2.0.
1946         (GOMP_loop_ordered_dynamic_first,
1947         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
1948         GOMP_loop_ordered_static_first): Remove.
1949         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
1950         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
1951         GOMP_loop_ull_ordered_dynamic_next,
1952         GOMP_loop_ull_ordered_dynamic_start,
1953         GOMP_loop_ull_ordered_guided_next,
1954         GOMP_loop_ull_ordered_guided_start,
1955         GOMP_loop_ull_ordered_runtime_next,
1956         GOMP_loop_ull_ordered_runtime_start,
1957         GOMP_loop_ull_ordered_static_next,
1958         GOMP_loop_ull_ordered_static_start,
1959         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
1960         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
1961         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
1962         (omp_set_schedule, omp_get_schedule,
1963         omp_get_thread_limit, omp_set_max_active_levels,
1964         omp_get_max_active_levels, omp_get_level,
1965         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
1966         omp_set_schedule_, omp_set_schedule_8_,
1967         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
1968         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
1969         omp_get_max_active_levels_, omp_get_level_,
1970         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
1971         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
1972         New exports @@OMP_3.0.
1973         * omp.h.in (omp_sched_t): New type.
1974         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
1975         omp_set_max_active_levels, omp_get_max_active_levels,
1976         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
1977         omp_get_active_level): New prototypes.
1978         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
1979         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
1980         gomp_thread_limit_var, gomp_remaining_threads_count,
1981         gomp_remaining_threads_lock): New variables.
1982         (parse_spincount): New function.
1983         (initialize_env): Call gomp_init_num_threads unconditionally.
1984         Initialize gomp_available_cpus.  Call parse_spincount,
1985         initialize gomp_{,throttled_}spin_count_var
1986         depending on presence and value of OMP_WAIT_POLICY and
1987         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
1988         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
1989         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
1990         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
1991         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
1992         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
1993         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
1994         (gomp_global_icv): New.
1995         (parse_schedule): Use it.  Parse "auto".
1996         (omp_set_num_threads): Use gomp_icv.
1997         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
1998         Likewise.
1999         (omp_get_max_threads): Move from parallel.c.
2000         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2001         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2002         add ialias.
2003         (parse_stacksize, parse_wait_policy): New functions.
2004         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2005         both wrappers for compatibility and new locks.
2006         (omp_set_schedule, omp_get_schedule,
2007         omp_get_thread_limit, omp_set_max_active_levels,
2008         omp_get_max_active_levels, omp_get_level,
2009         omp_get_ancestor_thread_num, omp_get_team_size,
2010         omp_get_active_level): New ialias_redirect.
2011         (omp_set_schedule_, omp_set_schedule_8_,
2012         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2013         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2014         omp_get_max_active_levels_, omp_get_level_,
2015         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2016         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2017         New functions.
2018         * parallel.c: Include limits.h.
2019         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2020         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2021         argument to gomp_team_start.  Pass 0 as second argument to
2022         gomp_resolve_num_threads.
2023         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2024         if gomp_thread_limit_var != ULONG_MAX.
2025         (omp_in_parallel): Implement using ts.active_level.
2026         (omp_get_max_threads): Move to env.c.
2027         (omp_get_level, omp_get_ancestor_thread_num,
2028         omp_get_team_size, omp_get_active_level): New functions,
2029         add ialias.
2030         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2031         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2032         gomp_iter_dynamic_next instead of the _locked variant and don't take
2033         lock around it, otherwise acquire it before calling
2034         gomp_iter_dynamic_next_locked.
2035         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2036         gomp_iter_dynamic_next instead of the _locked variant and don't take
2037         lock around it.
2038         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2039         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2040         Adjust gomp_team_start caller.  Pass count as second argument to
2041         gomp_resolve_num_threads, don't adjust num_threads after the call.
2042         Use gomp_icv.
2043         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2044         ws->chunk_size by incr.
2045         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2046         code.
2047         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2048         types.
2049         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2050         (omp_check_defines): Check even the compat defines.
2051         * config/linux/ptrlock.c: New file.
2052         * config/linux/ptrlock.h: New file.
2053         * config/linux/wait.h: New file.
2054         * config/posix/ptrlock.c: New file.
2055         * config/posix/ptrlock.h: New file.
2056         * config/linux/bar.h (gomp_team_barrier_wait,
2057         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2058         (gomp_team_barrier_set_task_pending,
2059         gomp_team_barrier_clear_task_pending,
2060         gomp_team_barrier_set_waiting_for_tasks,
2061         gomp_team_barrier_waiting_for_tasks,
2062         gomp_team_barrier_done): New inlines.
2063         (gomp_barrier_t): Rewritten.
2064         (gomp_barrier_state_t): New typedef.
2065         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2066         gomp_barrier_wait_start): Rewritten.
2067         (gomp_barrier_wait_end): Change second argument to
2068         gomp_barrier_state_t.
2069         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2070         inlines.
2071         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2072         futex.h.
2073         (gomp_barrier_wait_end): Rewritten.
2074         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2075         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2076         * config/posix/bar.h (gomp_barrier_t): Add generation field.
2077         (gomp_barrier_state_t): New typedef.
2078         (gomp_team_barrier_wait,
2079         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2080         (gomp_barrier_wait_start): Or all but low 2 bits from generation
2081         into the return value.  Return gomp_barrier_state_t.
2082         (gomp_team_barrier_set_task_pending,
2083         gomp_team_barrier_clear_task_pending,
2084         gomp_team_barrier_set_waiting_for_tasks,
2085         gomp_team_barrier_waiting_for_tasks,
2086         gomp_team_barrier_done): New inlines.
2087         (gomp_barrier_wait_end): Change second argument to
2088         gomp_barrier_state_t.
2089         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2090         inlines.
2091         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2092         (gomp_barrier_wait_end): Change second argument to
2093         gomp_barrier_state_t.
2094         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2095         gomp_team_barrier_wake): New functions.
2096         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2097         futex.h.
2098         (gomp_futex_wake, gomp_futex_wait): New variables.
2099         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2100         * config/linux/lock.c: Rewrite to make locks task owned,
2101         for backwards compatibility provide the old entrypoints
2102         if symbol versioning.  Include wait.h instead of libgomp.h and
2103         futex.h.
2104         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2105         * config/posix95/lock.c: Rewrite to make locks task owned,
2106         for backwards compatibility provide the old entrypoints
2107         if symbol versioning.
2108         * config/posix/lock.c: Rewrite to make locks task owned,
2109         for backwards compatibility provide the old entrypoints
2110         if symbol versioning.
2111         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2112         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2113         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2114         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2115         (sys_futex0): Return error code.
2116         (futex_wake, futex_wait): If ENOSYS was returned, clear
2117         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2118         (cpu_relax, atomic_write_barrier): New static inlines.
2119         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2120         (futex_wake, futex_wait): If ENOSYS was returned, clear
2121         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2122         (cpu_relax, atomic_write_barrier): New static inlines.
2123         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2124         (sys_futex0): Return error code.
2125         (futex_wake, futex_wait): If ENOSYS was returned, clear
2126         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2127         (cpu_relax, atomic_write_barrier): New static inlines.
2128         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2129         (sys_futex0): Return error code.
2130         (futex_wake, futex_wait): If ENOSYS was returned, clear
2131         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2132         (cpu_relax, atomic_write_barrier): New static inlines.
2133         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2134         (sys_futex0): Return error code.
2135         (futex_wake, futex_wait): If ENOSYS was returned, clear
2136         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2137         (cpu_relax, atomic_write_barrier): New static inlines.
2138         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2139         (sys_futex0): Return error code.
2140         (futex_wake, futex_wait): If ENOSYS was returned, clear
2141         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2142         (cpu_relax, atomic_write_barrier): New static inlines.
2143         * config/linux/sem.c: Include wait.h instead of libgomp.h and
2144         futex.h.
2145         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2146         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2147         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2148         types.
2149         (omp_nest_lock_t): Change owner into void *, add lock field.
2150         * config/posix95/omp-lock.h: Include semaphore.h.
2151         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2152         (omp_lock_t): Use sem_t instead of mutex if semaphores
2153         aren't broken.
2154         (omp_nest_lock_t): Likewise.  Change owner to void *.
2155         * config/posix/omp-lock.h: Include semaphore.h.
2156         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2157         (omp_lock_t): Use sem_t instead of mutex if semaphores
2158         aren't broken.
2159         (omp_nest_lock_t): Likewise.  Add owner field.
2161 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2163         * testsuite/libgomp.c/collapse-1.c: New test.
2164         * testsuite/libgomp.c/collapse-2.c: New test.
2165         * testsuite/libgomp.c/collapse-3.c: New test.
2166         * testsuite/libgomp.c/icv-1.c: New test.
2167         * testsuite/libgomp.c/icv-2.c: New test.
2168         * testsuite/libgomp.c/lib-2.c: New test.
2169         * testsuite/libgomp.c/lock-1.c: New test.
2170         * testsuite/libgomp.c/lock-2.c: New test.
2171         * testsuite/libgomp.c/lock-3.c: New test.
2172         * testsuite/libgomp.c/loop-4.c: New test.
2173         * testsuite/libgomp.c/loop-5.c: New test.
2174         * testsuite/libgomp.c/loop-6.c: New test.
2175         * testsuite/libgomp.c/loop-7.c: New test.
2176         * testsuite/libgomp.c/loop-8.c: New test.
2177         * testsuite/libgomp.c/loop-9.c: New test.
2178         * testsuite/libgomp.c/nested-3.c: New test.
2179         * testsuite/libgomp.c/nestedfn-6.c: New test.
2180         * testsuite/libgomp.c/sort-1.c: New test.
2181         * testsuite/libgomp.c/task-1.c: New test.
2182         * testsuite/libgomp.c/task-2.c: New test.
2183         * testsuite/libgomp.c/task-3.c: New test.
2184         * testsuite/libgomp.c/task-4.c: New test.
2185         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2186         to C++ testsuite default compiler options.
2187         * testsuite/libgomp.c++/collapse-1.C: New test.
2188         * testsuite/libgomp.c++/collapse-2.C: New test.
2189         * testsuite/libgomp.c++/ctor-10.C: New test.
2190         * testsuite/libgomp.c++/for-1.C: New test.
2191         * testsuite/libgomp.c++/for-2.C: New test.
2192         * testsuite/libgomp.c++/for-3.C: New test.
2193         * testsuite/libgomp.c++/for-4.C: New test.
2194         * testsuite/libgomp.c++/for-5.C: New test.
2195         * testsuite/libgomp.c++/loop-8.C: New test.
2196         * testsuite/libgomp.c++/loop-9.C: New test.
2197         * testsuite/libgomp.c++/loop-10.C: New test.
2198         * testsuite/libgomp.c++/task-1.C: New test.
2199         * testsuite/libgomp.c++/task-2.C: New test.
2200         * testsuite/libgomp.c++/task-3.C: New test.
2201         * testsuite/libgomp.c++/task-4.C: New test.
2202         * testsuite/libgomp.c++/task-5.C: New test.
2203         * testsuite/libgomp.c++/task-6.C: New test.
2204         * testsuite/libgomp.fortran/allocatable1.f90: New test.
2205         * testsuite/libgomp.fortran/allocatable2.f90: New test.
2206         * testsuite/libgomp.fortran/allocatable3.f90: New test.
2207         * testsuite/libgomp.fortran/allocatable4.f90: New test.
2208         * testsuite/libgomp.fortran/collapse1.f90: New test.
2209         * testsuite/libgomp.fortran/collapse2.f90: New test.
2210         * testsuite/libgomp.fortran/collapse3.f90: New test.
2211         * testsuite/libgomp.fortran/collapse4.f90: New test.
2212         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2213         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2214         * testsuite/libgomp.fortran/lib4.f90: New test.
2215         * testsuite/libgomp.fortran/lock-1.f90: New test.
2216         * testsuite/libgomp.fortran/lock-2.f90: New test.
2217         * testsuite/libgomp.fortran/nested1.f90: New test.
2218         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2219         * testsuite/libgomp.fortran/strassen.f90: New test.
2220         * testsuite/libgomp.fortran/tabs1.f90: New test.
2221         * testsuite/libgomp.fortran/tabs2.f: New test.
2222         * testsuite/libgomp.fortran/task1.f90: New test.
2223         * testsuite/libgomp.fortran/task2.f90: New test.
2224         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2225         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2226         * testsuite/libgomp.c/pr26943-2.c: Likewise.
2227         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2228         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2230 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
2232         PR c++/36308
2233         * testsuite/libgomp.c++/ctor-11.C: New test.
2234         * testsuite/libgomp.c++/ctor-12.C: New test.
2236 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2238         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2240 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2242         PR middle-end/36106
2243         * testsuite/libgomp.c/atomic-5.c: New test.
2244         * testsuite/libgomp.c/atomic-6.c: New test.
2245         * testsuite/libgomp.c/autopar-1.c: New test.
2247 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2249         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2250         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2251         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2252         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2253         * configure: Regenerate.
2254         * Makefile.in, testsuite/Makefile.in: Likewise.
2256 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2258         PR bootstrap/35457
2259         * aclocal.m4: Regenerate.
2260         * configure: Regenerate.
2262 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2264         PR middle-end/35611
2265         * testsuite/libgomp.c/atomic-4.c: New test.
2267         PR libgomp/35625
2268         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2269         (gomp_iter_guided_next): Likewise.
2270         * testsuite/libgomp.c/pr35625.c: New test.
2272 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2274         * aclocal.m4: Regenerate.
2275         * configure: Likewise.
2276         * Makefile.in: Likewise.
2277         * testsuite/Makefile.in: Likewise.
2279 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
2281         PR middle-end/35185
2282         * testsuite/libgomp.c++/pr35185.C: New test.
2284 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2286         PR middle-end/35549
2287         * testsuite/libgomp.c/pr35549.c: New test.
2289 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2291         * testsuite/libgomp.c/atomic-3.c: New test.
2293 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2295         PR fortran/33197
2296         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2297         .F08 file suffixes.
2299 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
2301         PR libgomp/33131
2302         * configure.ac: Add ACX_HEADER_STRING.
2303         * env.c: Include strings.h.
2304         * aclocal.m4: Regenerate.
2305         * config.h.in: Regenerate.
2306         * configure: Regenerate.
2307         * Makefile.in: Regenerate.
2308         * testsuite/Makefile.in: Regenerate.
2310 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2312         PR middle-end/35196
2313         * testsuite/libgomp.c/pr35196.c: New test.
2315         PR middle-end/35130
2316         * testsuite/libgomp.fortran/pr35130.f90: New test.
2317         * testsuite/libgomp.c/pr35130.c: New test.
2319 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
2321         PR middle-end/33880
2322         * testsuite/libgomp.c/pr33880.c: New test.
2323         * testsuite/libgomp.fortran/pr33880.f90: New test.
2325 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2327         * configure: Regenerate.
2329 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
2331         * configure.ac: Move futex checking into ../config/futex.m4.
2332         * configure: Rebuilt.
2333         * aclocal.m4: Rebuilt.
2334         * Makefile.in: Rebuilt.
2336         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2337         2007-10-15 ../config/tls.m4 change.
2339 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
2341         PR c++/34513
2342         * testsuite/libgomp.c/pr34513.c: New test.
2343         * testsuite/libgomp.c++/pr34513.C: New test.
2345 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
2347         PR target/32765
2348         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2350 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
2352         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
2354 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
2356         * testsuite/libgomp.c/private-1.c: New test.
2358 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
2359             Paolo Bonzini  <bonzini@gnu.org>
2361         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
2362         instead of 'VPATH ='.
2363         * Makefile.in: Regenerate.
2365 2007-11-23  Matthias Klose  <doko@ubuntu.com>
2367         * configure.ac: Adjust makeinfo version check.
2368         * configure: Regenerate.
2370 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2372         PR fortran/34020
2373         * testsuite/libgomp.fortran/pr34020.f90: New test.
2375 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2377         PR c++/33894
2378         * testsuite/libgomp.c++/atomic-1.C: New test.
2380 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
2382         PR libgomp/33275
2383         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2384         Make x and y integers rather than (implicit) reals.  Add private (j)
2385         clause to the last omp parallel.
2387 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
2389         * configure: Regenerate following changes to ../config/tls.m4.
2391 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
2393         * testsuite/libgomp.fortran/stack.f90: New test.
2395 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
2397         * config/mingw32/proc.c: New file.
2399 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2401         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2402         (main): Use __get_cpuid to get i386 target fetaures.
2403         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2404         (main): Use __get_cpuid to get x86_64 target fetaures.
2406 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
2408         PR target/32765
2409         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2410         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2412 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2414         PR fortran/32550
2415         * testsuite/libgomp.fortran/pr32550.f90: New test.
2416         * testsuite/libgomp.fortran/crayptr2.f90: New test.
2418 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2420         * aclocal.m4: Regenerated.
2422 2007-07-05  Tobias Burnus  <burnus@net-b.de>
2424         PR fortran/32359
2425         * testsuite/libgomp.fortran/pr32359.f90: New.
2427 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2429         PR libgomp/32468
2430         * sections.c (GOMP_parallel_sections_start): Only decrease
2431         number of threads to COUNT if dyn_var is true.
2432         * testsuite/libgomp.c/pr32468.c: New test.
2434 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2436         PR libgomp/26308
2437         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2439 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2441         PR middle-end/32362
2442         * testsuite/libgomp.c/pr32362-1.c: New test.
2443         * testsuite/libgomp.c/pr32362-2.c: New test.
2444         * testsuite/libgomp.c/pr32362-3.c: New test.
2446 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
2448         * team.c (gomp_team_start): Fix setting up thread_attr
2449         stack size.
2451 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2453         * configure: Regenerate.
2455 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2457         * Makefile.in: Regenerate.
2458         * configure: Regenerate.
2459         * aclocal.m4: Regenerate.
2460         * testsuite/Makefile.in: Regenerate.
2462 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
2464         * config/linux/proc.c: New file.
2466         PR libgomp/28482
2467         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2469 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
2471         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2473 2007-04-16  Matthias Klose  <doko@debian.org>
2475         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
2476         flags if not building with -m64.
2477         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
2478         flag for i?86-*-* targets, if current target matches -m64.
2480 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
2482         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
2483         * Makefile.in: Regenerate.
2485 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2487         PR testsuite/31369
2488         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
2489         ld_library_path.
2490         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2492 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
2494         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
2495         decls.
2496         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
2497         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
2498         (parse_affinity): New function.
2499         (initialize_env): Call it and gomp_init_affinity.
2500         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
2501         create new pthread_attr_t and call gomp_init_thread_affinity
2502         on it for each thread before passing the attribute to pthread_create.
2503         * config/linux/affinity.c: New file.
2504         * config/posix/affinity.c: New file.
2505         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
2506         * configure: Rebuilt.
2507         * config.h.in: Rebuilt.
2508         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
2509         * Makefile.in: Rebuilt.
2511 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
2513         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
2514         *-*-darwin*.
2515         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
2516         and use it if found.
2518 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
2520         * testsuite/config/default.exp: New file.
2521         * testsuite/lib/libgomp.exp: New file.
2522         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
2523         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
2524         load_lib *, load_gcc_lib *): Move to libgomp.exp.
2525         (libgomp_load): Remove.
2526         * testsuite/lib/libgomp.exp (libgomp_init): Compute
2527         always_ld_library_path, not ld_library_path.  Set additional_flags
2528         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
2529         (target_compile): Do not call libgomp_init.  Append lang_library_path
2530         and lang_link_flags to options.
2531         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
2532         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
2533         here.
2534         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
2535         always_ld_library_path.  Set LD_LIBRARY_PATH here.
2536         * testsuite/libgomp.fortran/fortran.exp: Ditto.
2537         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
2538         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
2539         CX8 flag.
2540         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
2541         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
2542         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
2543         * testsuite/libgomp.c/pr29947-1.c: Ditto.
2544         * testsuite/libgomp.c/atomic-10.c: Ditto.
2546 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
2548         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
2549         dg-final cleanup-modules line.
2550         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
2551         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
2552         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
2553         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2554         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2555         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2556         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2558 2007-03-18  Andreas Schwab  <schwab@suse.de>
2560         * acinclude.m4: Adjust regular expression for ld version
2561         extraction.
2562         * configure: Regenerate.
2564 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2566         * Makefile.am: Add install-pdf target as copied from
2567         automake v1.10 rules.
2568         * Makefile.in: Regenerate
2570 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
2572         PR libgomp/28486
2573         * configure: Regenerate.
2575         PR c++/30703
2576         * testsuite/libgomp.c++/pr30703.C: New test.
2578 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
2580         Revert:
2581         2006-07-05  Eric Christopher  <echristo@apple.com>
2582         * configure.ac: Depend addition of -pthread on host OS.
2583         * configure: Regenerate.
2585 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2587         * libgomp.texi: Fix spacing after abbreviations.
2589 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
2591         PR libgomp/30546
2592         * configure.ac: Add check for makeinfo
2593         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
2594         if an appropiate version of makeinfo is found.
2595         * aclocal.m4: Regenerated.
2596         * configure: Regenerated.
2597         * Makefile.in: Regenerated.
2598         * testsuite/Makefile.in: Regenerated.
2600 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
2602         PR libgomp/30540
2603         * libgomp.texi: More about implementation-dependent settings.
2605 2007-01-26  Tobias Burnus  <burnus@net-b.de>
2607         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
2609 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
2611         PR middle-end/30494
2612         * testsuite/libgomp.c/pr30494.c: New test.
2614 2007-01-15  Tom Tromey  <tromey@redhat.com>
2616         * configure: Rebuilt.
2617         * configure.ac: Fixed comment.
2619 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
2621         * libgomp.texi: Document implementation specific default values of
2622         environment variables.
2624 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
2626         PR libgomp/28209
2627         * libgomp.texi: New file.
2628         * configure.ac: Add --enable-generated-files-in-srcdir option.
2629         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
2630         files to srcdir.
2631         * Makefile.in: Regenerated.
2632         * config.h.in: Regenerated.
2633         * testsuite/Makefile.in: Regenerated.
2634         * NOTES: Removed.
2636 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
2638         PR libgomp/29949
2639         * env.c (omp_set_num_threads): Set illegal thread count to 1.
2641 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2643         * configure: Regenerate.
2645 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
2647         PR libgomp/29947
2648         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
2649         start if there shouldn't be any loop iterations.
2650         (gomp_loop_ordered_static_start): Remove start == end test.
2651         * testsuite/libgomp.c/pr29947-1.c: New test.
2652         * testsuite/libgomp.c/pr29947-2.c: New test.
2654 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
2656         * configure.tgt: Force initial-exec TLS model on Linux only.
2658 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
2660         * configure: Regenerated.
2662 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
2664         * env.c (parse_schedule): Reject out of range values.
2665         (parse_unsigned_long): Reject out of range, negative or zero values.
2667 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
2669         PR fortran/29629
2670         * testsuite/libgomp.fortran/pr29629.f90: New test.
2672 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2674         PR libgomp/29494
2675         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
2676         * config/posix95: New directory.
2677         * config/posix95/omp-lock.h: New file.
2678         * config/posix95/lock.c: Likewise.
2680 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
2682         * aclocal.m4: Regenerate.
2683         * configure: Regenerate.
2685 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2687         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
2688         '<' to '<='.
2690 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2692         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
2693         test.
2694         * configure: Regenerate.
2695         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
2697 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2699         PR middle-end/25261
2700         PR middle-end/28790
2701         * testsuite/libgomp.c/nestedfn-4.c: New test.
2702         * testsuite/libgomp.c/nestedfn-5.c: New test.
2703         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
2705         PR fortran/29097
2706         * testsuite/libgomp.fortran/condinc1.f: New test.
2707         * testsuite/libgomp.fortran/condinc2.f: New test.
2708         * testsuite/libgomp.fortran/condinc3.f90: New test.
2709         * testsuite/libgomp.fortran/condinc4.f90: New test.
2710         * testsuite/libgomp.fortran/condinc1.inc: New file.
2712 2006-09-18  Tom Tromey  <tromey@redhat.com>
2714         * configure: Rebuilt.
2716 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
2718         PR c/28768
2719         PR preprocessor/14634
2720         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
2721         to AC_DEFINE.
2722         * configure: Regenerate.
2724 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2726         * testsuite/libgomp.fortran/reduction3.f90: Change
2727         -2147483648 to -huge(i)-1 to avoid overflow.
2728         * testsuite/libgomp.fortran/reduction4.f90: Change
2729         Z'ffffffff' to not(0) to avoid overflow.
2731 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
2733         PR libgomp/25938
2734         * Makefile.am (libsubincludedir): New.
2735         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
2736         * Makefile.in: Regenerate.
2738 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
2740         PR libgomp/28725
2741         * env.c: Include ctype.h.
2742         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
2743         leading and/or trailing whitespace and compare strings case
2744         insensitively.
2746 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
2748         PR fortran/28390
2749         * testsuite/libgomp.fortran/pr28390.f: New test.
2751 2006-07-05  Eric Christopher  <echristo@apple.com>
2753         * configure.ac: Depend addition of -pthread on host OS.
2754         * configure: Regenerate.
2756 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
2758         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
2759         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
2760         defined.
2762 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
2764         PR libgomp/26175
2765         PR libgomp/26477
2766         * configure.ac: If neither --enable-linux-futex nor
2767         --disable-linux-futex is passed, determine the default by checking
2768         for compiling and/or running against NPTL.  With --enable-linux-futex,
2769         check if SYS_gettid and SYS_futex are defined.
2770         * configure: Rebuilt.
2772 2006-06-14  Richard Henderson  <rth@redhat.com>
2774         PR libgomp/28008
2775         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
2776         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
2778 2006-06-09  Richard Henderson  <rth@redhat.com>
2780         * env.c (gomp_nthreads_var): Change to unsigned long.
2781         (gomp_run_sched_chunk): Likewise.
2782         (parse_unsigned_long): Rename from parse_num_threads and generalize.
2783         (initialize_env): Initialize gomp_thread_attr.
2784         * libgomp.h (gomp_nthreads_var): Update decl.
2785         (gomp_run_sched_chunk): Likewise.
2786         (gomp_thread_attr): Declare.
2787         * team.c (gomp_thread_attr): Export.
2788         (initialize_team): Don't initialize it.
2790 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
2792         PR fortran/27916
2793         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
2794         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
2796 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2798         * config/mingw32/time.c: New file.
2799         * configure.tgt: Use it.
2801 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
2803         * Makefile.am: Add install-html target. Add install-html to .PHONY
2804         * Makefile.in: Regenerate.
2806 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2808         PR libgomp/27612
2809         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
2810         * testsuite/libgomp.c/critical-1.c: Likewise.
2811         * testsuite/libgomp.c/loop-1.c: Likewise.
2812         * testsuite/libgomp.c/loop-2.c: Likewise.
2813         * testsuite/libgomp.c/single-1.c: Likewise.
2814         * testsuite/libgomp.c/ordered-1.c: Likewise.
2815         * testsuite/libgomp.c/ordered-2.c: Likewise.
2817 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
2819         PR middle-end/27416
2820         * libgomp.fortran/pr27416-1.f90: New test.
2822 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
2824         PR fortran/27395
2825         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
2826         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
2828 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2830         PR c++/26943
2831         * testsuite/libgomp.c/pr26943-1.c: New test.
2832         * testsuite/libgomp.c/pr26943-2.c: New test.
2833         * testsuite/libgomp.c/pr26943-3.c: New test.
2834         * testsuite/libgomp.c/pr26943-4.c: New test.
2835         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
2836         * testsuite/libgomp.c++/pr26943.C: New test.
2838 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2840         PR middle-end/27337
2841         * testsuite/libgomp.c++/pr27337.C: New test.
2843 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
2845         PR c/26171
2846         * testsuite/libgomp.c/pr26171.c: New test.
2848 2006-04-25  Richard Henderson  <rth@redhat.com>
2850         PR libgomp/25865
2851         * configure.ac: Use GCC_CHECK_TLS.
2852         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
2853         * Makefile.in, aclocal.m4, configure: Regenerate.
2855 2006-04-10  Matthias Klose  <doko@debian.org>
2857         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
2858         directory names containing underscores.
2860 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2862         PR c++/26691
2863         * testsuite/libgomp.c++/pr26691.C: New test.
2865 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
2867         * testsuite/libgomp.fortran/retval2.f90: New test.
2869 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
2871         * testsuite/libgomp.c++: New directory.
2873 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
2875         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
2876         * config/posix/sem.c: Implement the above.
2878 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
2880         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
2881         define HAVE_BROKEN_POSIX_SEMAPHORES.
2882         * configure: Rebuilt.
2883         * config.h.in: Rebuilt.
2885 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2887         PR bootstrap/26161
2888         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
2889         for the other pthread check.
2890         * configure: Regenerate.
2891         * config.h.in: Regenerate.
2893 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
2895         PR libgomp/25938
2896         PR libgomp/25984
2897         * Makefile.am (fincludedir): New variable.
2898         (nodist_include_HEADERS): Remove Fortran files.
2899         (nodist_finclude_HEADERS): New variable.
2900         * Makefile.in: Regenerated.
2902 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
2904         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
2905         Remove tests for returning assumed character length arrays.
2907 2006-02-12  Roger Sayle  <roger@eyesopen.com>
2908             John David Anglin  <dave@hiauly1.hia.nrc.ca>
2910         PR libgomp/25936
2911         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
2913 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
2915         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
2917 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2919         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
2920         part of LD_LIBRARY_PATH manually.
2922 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
2924         PR libgomp/25852
2925         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
2926         libgomp_init.
2928 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
2930         PR libgomp/25884
2931         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
2932         * configure.ac (PERL): Don't set.
2933         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
2934         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
2935         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
2936         * omp.h.in: Wrap the new configure substitutions with @ characters.
2937         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
2938         * aclocal.m4, configure, Makefile.in: Regenerate.
2939         * mkomp_h.pl: Delete.
2941 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
2943         PR libgomp/25259
2944         * configure.ac: Use GCC_HEADER_STDINT.
2945         * libgomp.h: Include gstdint.h.
2946         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
2947         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
2949 2006-01-24  Richard Henderson  <rth@redhat.com>
2951         PR libgomp/25942
2952         * configure.ac: Add AM_MAINTAINER_MODE.
2953         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
2955 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
2957         * Makefile.in: Regenerate.
2958         * testsuite/Makefile.in: Regenerate.
2959         * aclocal.m4: Regenerate.
2961 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
2963         * config/posix/proc.c: Conditional include of sys/loadavg.h for
2964         Solaris.
2965         * configure.ac: Add check for loadavg.h.
2966         (link_gomp): Adjust comment.
2967         * configure: Regenerate.
2968         * config.h.in: Regenerate.
2970 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
2972         PR libgomp/25877
2973         * configure.ac: Remove check for alloca.h.
2974         * configure: Regenerate.
2975         * config.h.in: Regenerate.
2976         * libgomp.h: define gomp_alloca to be __builtin_alloca.
2977         * team.c: Remove use of alloca.h.
2978         Call gomp_alloca instead of alloca.
2980 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
2982         PR libgomp/25877
2983         * team.c: Add include of alloca.h.
2984         * configure.ac: Add check for alloca.h.
2985         * configure: Regenerate.
2986         * config.h.in: Regenerate.
2988 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
2990         PR fortran/25219
2991         * testsuite/libgomp.fortran/pr25219.f90: New test.
2993 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
2995         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
2996         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
2997         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
2998         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
2999         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3000         testsuite/libgomp.fortran/threadprivate1.f90,
3001         testsuite/libgomp.fortran/threadprivate2.f90,
3002         testsuite/libgomp.fortran/threadprivate3.f90,
3003         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3004         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3005         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3006         effective-target to TLS runtime.
3008         * testsuite/libgomp.fortran/pr25162.f: Require
3009         effective-target TLS runtime.
3011 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3013         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3014         * testsuite/libgomp.c/nestedfn-3.c: New test.
3016 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3018         PR fortran/25162
3019         * testsuite/libgomp.fortran/pr25162.f: New test.
3021 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3023         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3024         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3026 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3028         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3029         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3030         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3031         single.c, team.c, work.c, config/linux/alpha/futex.h,
3032         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3033         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3034         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3035         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3036         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3037         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3038         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3039         FSF address.
3041 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3043         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3044         to nodist_noinst_HEADERS.
3045         * Makefile.in: Rebuilt.
3047         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3048         add integer count field.
3049         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3050         omp_nest_lock_t type change.
3051         (omp_init_nest_lock): Likewise.  Initialize count to 0.
3052         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3053         Increment count.
3054         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3055         Decrement count.
3056         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3057         Increment count if successful and return the new nesting level.
3058         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3059         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3060         * testsuite/libgomp.c/lib-1.c: New test.
3061         * testsuite/libgomp.fortran/lib1.f90: New test.
3062         * testsuite/libgomp.fortran/lib2.f: New test.
3063         * testsuite/libgomp.fortran/lib3.f: New test.
3065 2005-11-17  Richard Henderson  <rth@redhat.com>
3067         PR 24845
3068         * Makefile.am (nodist_toolexeclib_HEADERS): New.
3069         * configure.ac (link_gomp): New.  Substitute it.
3070         (AC_CONFIG_FILES): Add libgomp.spec.
3071         * libgomp.spec.in: New file.
3072         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3073         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3075 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3077         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3078         reduction(-:var) behaving the same as reduction(+:var).
3079         * testsuite/libgomp.c/reduction-4.c: New test.
3081 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
3083         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3084         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3085         testsuite/libgomp.c/copyin-3.c,
3086         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3087         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3088         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3089         testsuite/libgomp.c++/pr24455.C,
3090         testsuite/libgomp.fortran/threadprivate1.f90,
3091         testsuite/libgomp.fortran/threadprivate2.f90,
3092         testsuite/libgomp.fortran/threadprivate3.f90,
3093         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3094         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3095         testsuite/libgomp.fortran/omp_parse3.f90: Require
3096         effective-target TLS.
3098 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3100         * HEADER: Remove.
3102 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
3104         PR libgomp/24797
3105         * team.c (initialize_team): Pass NULL rather than free as
3106         pthread_key_create destructor.  Initialize thread specific data
3107         pointer in initial thread to a static local variable rather than
3108         malloced memory.
3110 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
3112         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3113         its location to ld_library_path.
3115 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3117         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3119 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3121         * testsuite/libgomp.c: Rename from libgomp.dg.
3123 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
3125         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3126         threadprivate variable 'i'.
3128 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3130         * config/linux/s390/futex.h: New file.
3131         * configure.tgt: Use it.
3133         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3134         before the parallel.
3136 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3138         PR c++/24734
3139         * testsuite/libgomp.c++/master-1.C: New test.
3141 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3143         * testsuite/libgomp.dg/copyin-3.c: New test.
3145 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3147         * testsuite/libgomp.fortran/retval1.f90: New test.
3148         * testsuite/libgomp.fortran/vla7.f90: New test.
3150 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
3152         * testsuite/libgomp.fortran/vla2.f90: New test.
3153         * testsuite/libgomp.fortran/vla3.f90: New test.
3154         * testsuite/libgomp.fortran/vla4.f90: New test.
3155         * testsuite/libgomp.fortran/vla5.f90: New test.
3156         * testsuite/libgomp.fortran/vla6.f90: New test.
3158 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
3160         * config/linux/sparc/futex.h: New file.
3161         * configure.tgt: Use it.
3162         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3164         * critical.c: Include stdlib.h.
3165         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3166         ignoring return value.
3167         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3168         LIBGOMP_CHECK_SYNC_BUILTINS check.
3169         * configure: Rebuilt.
3171 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3173         * testsuite/libgomp.fortran/vla1.f90: New test.
3175 2005-10-31  Richard Henderson  <rth@redhat.com>
3177         * testsuite/libgomp.fortran/character2.f90: Fix race condition
3178         setting 's' in different threads.
3180 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3182         * libgomp.h (attribute_hidden, ialias): Define.
3183         * config/posix/proc.c (omp_get_num_procs): Add ialias.
3184         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3185         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3186         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3187         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3188         omp_test_lock, omp_test_nest_lock): Likewise.
3189         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3190         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3191         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3192         omp_test_lock, omp_test_nest_lock): Likewise.
3193         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3194         omp_get_dynamic, omp_get_nested): Likewise.
3195         * parallel.c (omp_get_num_threads, omp_get_max_threads,
3196         omp_get_thread_num, omp_in_parallel): Likewise.
3197         * fortran.c (ialias_redirect): Define.
3198         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3199         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3200         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3201         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3202         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3203         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3204         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3205         omp_get_wtime): Add ialias_redirect.
3207 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
3209         * fortran.c: Include stdlib.h.
3211 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
3213         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3214         * Makefile.in: Regenerated.
3216 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
3218         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3219         * libgomp_f.h.in (omp_check_defines): New function.
3220         * env.c: Include libgomp_f.h.
3221         (initialize_env): Call omp_check_defines.
3223         * testsuite/libgomp.dg/copyin-2.c: New test.
3224         * testsuite/libgomp.c++/copyin-2.C: New test.
3225         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3227         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3228         * testsuite/libgomp.fortran/sharing2.f90: New test.
3230         * testsuite/libgomp.dg/copyin-1.c: New test.
3231         * testsuite/libgomp.c++/copyin-1.C: New test.
3233 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
3235         * testsuite/libgomp.fortran/crayptr1.f90: New test.
3237         * testsuite/libgomp.fortran/workshare1.f90: New test.
3239         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3240         only test.
3241         * libgomp.fortran/sharing1.f90: New test.
3243 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
3245         PR c++/24502
3246         * testsuite/libgomp.c++/loop-7.C: New test.
3248         * testsuite/libgomp.dg/nestedfn-2.c: New test.
3250         * testsuite/libgomp.dg/nestedfn-1.c: New test.
3251         * testsuite/libgomp.fortran/reduction6.f90: New test.
3252         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3254 2005-10-23  Richard Henderson  <rth@redhat.com>
3256         * testsuite/libgomp.c++/ctor-1.C: New.
3257         * testsuite/libgomp.c++/ctor-2.C: New.
3258         * testsuite/libgomp.c++/ctor-3.C: New.
3259         * testsuite/libgomp.c++/ctor-4.C: New.
3260         * testsuite/libgomp.c++/ctor-5.C: New.
3261         * testsuite/libgomp.c++/ctor-6.C: New.
3262         * testsuite/libgomp.c++/ctor-7.C: New.
3263         * testsuite/libgomp.c++/ctor-8.C: New.
3264         * testsuite/libgomp.c++/ctor-9.C: New.
3266 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
3268         PR 24455
3269         * testsuite/libgomp.c++/pr24455-1.C: New test.
3270         * testsuite/libgomp.c++/pr24455.C: New test.
3271         * testsuite/libgomp.dg/pr24455-1.c: New test.
3272         * testsuite/libgomp.dg/pr24455.c: New test.
3274 2005-10-20  Richard Henderson  <rth@redhat.com>
3276         * testsuite/libgomp.c++/loop-6.C: New.
3277         * testsuite/libgomp.dg/loop-3.c: New.
3279 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
3281         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3282         explicitly private.
3283         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3284         explicitly shared.
3286 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
3288         * testsuite/libgomp.fortran/jacobi.f: New test.
3290 2005-10-19  Richard Henderson  <rth@redhat.com>
3292         * configure.tgt (i?86-linux): Default to with_arch instead of
3293         CFLAGS.  Add -mtune to match target_cpu.
3294         (x86_64-linux): Tune to i686.
3296         * fortran.c (omp_test_nest_lock_): Fix typo.
3298 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
3300         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3301         gomp_ordered_sync): Do nothing if team->nthreads == 1.
3302         * testsuite/libgomp.dg/ordered-3.c: New test.
3304         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3305         Remove volatile keyword.
3307         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3308         in COMMON block to avoid warnings on 64-bit targets.
3310 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
3312         * testsuite/libgomp.dg/shared-3.c: New test.
3314 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3316         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3317         * testsuite/libgomp.fortran/reduction5.f90: New test.
3319 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3321         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3322         dg-options.
3323         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
3324         flush loop now that __sync_synchronize has proper memory barrier.
3325         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3326         Add -ffixed-form to dg-options.
3328 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3330         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3331         from subdirectories.
3332         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3333         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3334         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3335         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3336         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3337         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3338         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3339         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3340         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3341         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3342         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3343         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3344         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3345         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3346         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3347         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3348         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3349         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3350         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3351         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3352         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3353         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3354         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3355         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3356         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3358 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
3360         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3361         lang_library_path exists.  Use find instead of glob to gather tests.
3362         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3364 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3366         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3367         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3368         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3369         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3370         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3371         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3372         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3373         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3374         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3375         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3376         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3377         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3378         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3380 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
3382         * testsuite/libgomp.dg/vla-1.c: New test.
3384         * testsuite/libgomp.fortran/reference2.f90: New test.
3386         * testsuite/libgomp.fortran/character2.f90: Remove explicit
3387         declaration of omp_get_thread_num.
3388         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
3389         use omp_lib.
3391         * testsuite/libgomp.fortran/reduction1.f90: New test.
3392         * testsuite/libgomp.fortran/reduction2.f90: New test.
3393         * testsuite/libgomp.fortran/reduction3.f90: New test.
3394         * testsuite/libgomp.fortran/reduction4.f90: New test.
3396 2005-10-13  Richard Henderson  <rth@redhat.com>
3398         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3399         * Makefile.in: Regenerate.
3400         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3401         * libgomp.h: Include bar.h.
3402         (struct gomp_barrier): Remove.
3403         (struct gomp_team): Add barrier.  Replace master_barrier with
3404         master_release.  Replace threads with ordered_release.
3405         (struct gomp_thread): Replace barrier with release.
3406         * ordered.c (gomp_ordered_first): Update for ordered_release change.
3407         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3408         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3409         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3410         (GOMP_single_copy_end): Likewise.
3411         * team.c (gomp_threads_dock): New.
3412         (gomp_barrier_init, gomp_barrier_destroy): Remove.
3413         (gomp_thread_start): Use gomp_barrier_wait.
3414         (new_team, free_team): Update for gomp_team changes.
3415         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3416         (gomp_team_end): Use gomp_barrier_wait.
3417         (initialize_team): Update for gomp_thread changes.
3418         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3419         (gomp_work_share_end_nowait): Use atomic ops when available.
3420         * config/linux/bar.c, config/linux/bar.h: New files.
3421         * config/posix/bar.c, config/posix/bar.h: New files.
3423 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
3425         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3426         * testsuite/libgomp.dg/single-2.c: New test.
3428         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3429         lang_link_flags): Unset, so that they aren't inherited from previously
3430         sourced *.exp.
3432         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3434 2005-10-12  Richard Henderson  <rth@redhat.com>
3436         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3437         (libgomp_init): Use lang_test_file, lang_library_path, and
3438         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
3440         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3441         (lang_test_file, lang_link_flags): New.
3442         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3444         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3445         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3446         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3447         testsuite/libgomp.c++/parallel-1.C,
3448         testsuite/libgomp.c++/reduction-1.C,
3449         testsuite/libgomp.c++/reduction-2.C,
3450         testsuite/libgomp.c++/reduction-3.C,
3451         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3452         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3453         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3454         New files, largely cribbed from the C testsuite.
3456 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
3458         * testsuite/libgomp.fortran/character1.f90: New test.
3459         * testsuite/libgomp.fortran/character2.f90: New test.
3461         * testsuite/libgomp.dg/nested-1.c: New test.
3462         * testsuite/libgomp.dg/nested-2.c: New test.
3463         * testsuite/libgomp.fortran/do1.f90: New test.
3464         * testsuite/libgomp.fortran/do2.f90: New test.
3466         * testsuite/libgomp.fortran/reference1.f90: New test.
3468 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3470         * testsuite/libgomp.dg/reduction-1.c: New test.
3471         * testsuite/libgomp.dg/reduction-2.c: New test.
3472         * testsuite/libgomp.dg/reduction-3.c: New test.
3474 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
3476         * testsuite/libgomp.dg/atomic-1.c: New test.
3477         * testsuite/libgomp.dg/atomic-2.c: New test.
3479 2005-10-09  Richard Henderson  <rth@redhat.com>
3481         * critical.c (atomic_lock): New.
3482         (initialize_critical): Initialize it.
3483         (GOMP_atomic_start, GOMP_atomic_end): New.
3484         * libgomp.map: Export them.
3485         * libgomp_g.h: Declare them.
3487         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
3489 2005-10-02  Richard Henderson  <rth@redhat.com>
3491         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
3492         to XCFLAGS instead of CFLAGS.
3494 2005-09-30  Richard Henderson  <rth@redhat.com>
3496         * configure.ac: Determine whether -pthread or -lpthread is needed.
3497         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
3498         * Makefine.in, configure: Rebuild.
3500 2005-09-28  Richard Henderson  <rth@redhat.com>
3502         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
3503         * testsuite/libgomp.dg/omp-single-3.c: New test.
3505 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
3507         * testsuite/libgomp.dg/omp-single-2.c: New test.
3508         * testsuite/libgomp.dg/shared-2.c: Fix return code.
3510 2005-09-27  Richard Henderson  <rth@redhat.com>
3512         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
3513         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
3515 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
3517         * testsuite/libgomp.dg/omp-loop03.c: New test.
3519 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3521         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
3523 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3525         * testsuite/libgomp.dg/omp-single-1.c: New test.
3526         * testsuite/libgomp.dg/shared-1.c: Return 0.
3527         Add prototype for abort.
3528         * testsuite/libgomp.dg/shared-2.c: Likewise.
3530 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
3532         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
3533         constructs.
3535 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
3537         * testsuite/libgomp.dg/shared-1.c: New test.
3538         * testsuite/libgomp.dg/shared-2.c: New test.
3540 2005-09-24  Richard Henderson  <rth@redhat.com>
3542         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
3544 2005-09-24  Richard Henderson  <rth@redhat.com>
3546         * iter.c (gomp_iter_static_next): Round up when computing number
3547         of iterations.  Don't bother distributing a remainder equally.
3549         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
3550         Don't call srand.  Zero b before testing.
3551         (main): New.
3553 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
3555         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
3556         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
3558 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
3560         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
3561         without !$omp end do, followed immediately by subroutine end.
3563 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
3565         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
3567 2005-09-22  Richard Henderson  <rth@redhat.com>
3569         * critical.c (GOMP_critical_name_start): Change argument to void**.
3570         Reuse the pointer space if the mutex fits.
3571         (GOMP_critical_name_end): Likewise.
3572         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
3573         * libgomp_g.h (GOMP_critical_name_start): Update decl.
3574         (GOMP_critical_name_end): Likewise.
3575         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
3576         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
3578 2005-09-20  Richard Henderson  <rth@redhat.com>
3580         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
3581         (create_lock_lock): New.
3582         (initialize_critical): Initialize it.
3583         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
3584         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
3586 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3588         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
3590 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3592         * testsuite/libgomp.dg/omp-loop01.c: New test.
3593         * testsuite/libgomp.dg/omp-loop02.c: New test.
3595 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
3597         * configure.ac (AC_PROG_FC): Add.
3598         (USE_FORTRAN): New automake conditional.
3599         * configure: Rebuilt.
3600         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
3601         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
3602         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
3603         Add rules to build them.
3604         * Makefile.in: Rebuilt.
3605         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
3606         OMP_NEST_LOCK_KIND.
3607         * libgomp.map: Add Fortran wrappers.
3608         * libgomp_f.h.in: New file.
3609         * omp_lib.h.in: New file.
3610         * omp_lib.f90.in: New file.
3611         * fortran.c: New file.
3612         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
3613         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
3614         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
3615         libgfortran has been built.
3616         * testsuite/libgomp.fortran/fortran.exp: New file.
3617         * testsuite/libgomp.fortran/omp_cond1.f: New test.
3618         * testsuite/libgomp.fortran/omp_cond2.f: New test.
3619         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
3620         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
3621         * testsuite/libgomp.fortran/omp_hello.f: New test.
3622         * testsuite/libgomp.fortran/omp_orphan.f: New test.
3623         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
3624         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
3625         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
3626         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
3627         * testsuite/libgomp.fortran/omp_reduction.f: New test.
3628         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
3629         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
3631 2005-08-30  Richard Henderson  <rth@redhat.com>
3633         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
3634         function for when aliases are not usable.
3635         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
3636         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3637         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
3638         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
3639         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
3640         GOMP_loop_ordered_guided_next): Likewise.
3641         * ordered.c (GOMP_ordered_start): Likewise.
3643 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
3645         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
3646         * testsuite/libgomp.dg/omp_hello.c: Fix return code
3647         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
3648         * testsuite/libgomp.dg/omp_orphan.c: Likewise
3649         * testsuite/libgomp.dg/omp_reduction.c: Likewise
3650         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
3651         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
3652         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
3653         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
3655 2005-07-07  Eric Christopher  <echristo@redhat.com>
3656             Diego Novillo  <dnovillo@redhat.com>
3658         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
3659         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
3660         up code.
3661         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
3662         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
3663         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
3664         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
3665         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
3666         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
3667         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
3669 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
3671         * TOPLEVEL.patch: Remove.
3673 2005-05-16  Richard Henderson  <rth@redhat.com>
3675         * configure.ac: Test for clock_gettime.
3676         * config.h.in, configure: Rebuild.
3677         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
3678         (omp_get_wtime): Use clock_gettime if available.
3679         (omp_get_wtick): Use clock_getres if available.
3681 2005-05-11  Richard Henderson  <rth@redhat.com>
3683         * config/linux/ia64/futex.h: New file.
3684         * configure.tgt: Use it.
3686         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
3688 2005-05-07  Richard Henderson  <rth@redhat.com>
3690         * config/linux/powerpc/futex.h: New file.
3691         * configure.tgt: Use it.
3693         * config/linux/i486/futex.h: Merge ...
3694         * config/linux/x86_64/futex.h: ... into ...
3695         * config/linux/x86/futex.h: ... here.
3696         * configure.tgt: Update to match.
3698 2005-05-06  Richard Henderson  <rth@redhat.com>
3700         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
3701         * config/linux/i486/futex.h: Likewise.
3702         * config/linux/x86_64/futex.h: Likewise.
3704         * config/linux/lock.c: New file.
3705         * config/linux/omp-lock.h: New file.
3707         * critical.c, env.h: Don't include omp.h
3708         * config/posix/lock.c: Include libgomp.h instead of omp.h.
3709         * config/posix/time.c: Likewise.
3710         * config/posix/omp-lock.h: New file.
3711         * libgomp.h: Include omp-lock.h and omp.h.
3712         * Makefile.am (nodist_include_HEADERS): New.
3713         (omp.h): New rule.
3714         * configure.ac (PERL): New.
3715         * mkomp_h.pl: New file.
3716         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
3717         with templates.
3718         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
3720         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
3721         build directory.  Re-add -march=i486 hack.
3723         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
3724         (libgomp_link_flags): Remove.
3725         (libgomp_initialized): Remove.
3726         (libgomp_init): Don't protect from reinitialization.  Copy code
3727         from libstdc++ for getting the multilib set correctly.
3729 2005-05-05  Richard Henderson  <rth@redhat.com>
3731         * config/linux/alpha/futex.h: New file.
3732         * configure.tgt (alpha*-*-linux*): Use it.
3734         * config/posix/mutex.c: New file.
3735         * config/posix/sem.c: Use libgomp.h.
3737         * configure.tgt (x86_64-linux): Also test CC for -m32.
3738         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
3740         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
3741         after $gccpath.
3743         * Makefile.am (SUBDIRS): New.
3744         (libgomp_la_LDFLAGS): Add -lpthread.
3745         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
3746         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
3748         * libgomp_g.h: New file.
3749         * libgomp.h: Split out all public declarations to libgomp_g.h.
3750         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
3751         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
3752         * config/linux/sem.h: Likewise.
3753         * config/posix/sem.h: Likewise.
3755         * Makefile.am (AM_LDFLAGS): New.
3756         (libgomp_version_script): Split out from ...
3757         (libgomp_la_LDFLAGS): ... here.
3758         (libgomp_version_info): New.
3759         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
3760         (LIBGOMP_ENABLE): New.
3761         (LIBGOMP_CHECK_LINKER_FEATURES): New.
3762         (LIBGOMP_ENABLE_SYMVERS): New.
3763         * configure.ac (AC_INIT): Version 1.0.
3764         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
3765         (enable-linux-futex): Likewise.  Rename from enable-futex.
3766         (libtool_VERSION): New.
3767         (LIBGOMP_ENABLE_SYMVERS): Use it.
3768         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
3769         * Makefile.in, aclocal.m4, configure: Rebuild.
3771         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
3772         (gomp_mutex_unlock_slow): Fix typo.
3773         * config/linux/sem.c: Similarly.
3774         (gomp_sem_post_slow): Fix typo.
3775         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
3776         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
3777         [__PIC__] (sys_futex0): Don't use tmp output in asm.
3779         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
3780         (libgomp_la_LDFLAGS): Add top_srcdir to path.
3781         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
3782         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
3783         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
3784         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
3785         LDFLAGS.  Pull enable_futex check to top-level.
3786         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
3787         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
3789         First attempt at real configury.
3790         * Makefile, config.h: Remove file.
3791         * Makefile.am, Makefile.in: New file.
3792         * acinclude.m4 aclocal.m4: New file.
3793         * configure.ac, configure.tgt, configure: New file.
3795         * config/posix/lock.c: Rename from sys-lock.c.
3796         * config/posix/mutex.h: Rename from sys-mutex.h.
3797         * config/posix/sem.c: Rename from sys-sem.c.
3798         * config/posix/sem.h: Rename from sys-sem.h.
3799         * config/posix/proc.c: Rename from sys-proc.c.
3800         * config/posix/time.c: Rename from sys-proc.c.
3802         * config/linux/mutex.c: New file.
3803         * config/linux/mutex.h: New file.
3804         * config/linux/sem.c: New file.
3805         * config/linux/sem.h: New file.
3806         * config/linux/i486/futex.h: New file.
3807         * config/linux/x86_64/futex.h: New file.
3809 2005-05-04  Richard Henderson  <rth@redhat.com>
3811         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
3812         * libgomp.h: Declare them.
3813         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
3814         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
3816 2005-05-04  Richard Henderson  <rth@redhat.com>
3818         * libgomp-1 code drop
3820 2005-05-04  Richard Henderson  <rth@redhat.com>
3822         * iter.c (gomp_iter_static_next): Return tri-state on 0.
3823         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
3824         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
3825         (gomp_iter_static_next): Update.
3826         (gomp_ordered_static_next): Update.
3827         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
3828         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
3829         totally empty range.
3830         (gomp_loop_ordered_static_next): Refine test for calling
3831         gomp_ordered_static_next.
3832         * testsuite/ordered-1.c: Add case for more threads than iterations.
3834         * iter.c (gomp_iter_runtime_next_locked): Remove.
3835         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
3836         gomp_loop_guided_start, gomp_loop_ordered_static_start,
3837         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
3838         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
3839         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
3840         gomp_loop_ordered_guided_next): Downcase name, make static, add
3841         an external alias with the old name.
3842         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
3843         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
3844         switch and call one of the above static functions.
3845         * libgomp.h: Update.
3847         * work.c (gomp_work_share_start): Lock the mutex for !first too.
3848         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
3849         GOMP_loop_guided_start, GOMP_loop_runtime_start,
3850         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3851         GOMP_loop_ordered_guided_start): Update to match.
3852         * sections.c (GOMP_sections_start): Likewise.
3853         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
3855         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3856         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
3857         Use bounds check instead of modulus.
3858         (gomp_ordered_sync): Split out of GOMP_ordered_start.
3859         (gomp_ordered_last): Don't sync with ordered_owner here.
3860         (gomp_ordered_next): Likewise.
3861         (gomp_ordered_static_loop_next): Likewise.
3862         * loop.c, libgomp.h: Update to match.
3864         * libgomp.h (GOMP_barrier): Declare.
3866         * testsuite/barrier-1.c: New file.
3867         * testsuite/critical-1.c: New file.
3868         * testsuite/ordered-2.c: New file.
3869         * testsuite/ordered-1.c: New file.
3870         * testsuite/sections-1.c: New file.
3871         * testsuite/single-1.c: New file.
3872         * testsuite/Makefile (TESTS): Add them.
3874 2005-05-04  Richard Henderson  <rth@redhat.com>
3876         * libgomp.h (struct gomp_work_share): Add ordered_owner.
3877         * loop.c (GOMP_loop_static_start): If not the startup thread,
3878         acquire the mutex to wait for initialization complete.
3879         (GOMP_loop_ordered_static_start): Likewise.
3880         (GOMP_loop_ordered_runtime_start): Likewise.
3881         (GOMP_loop_ordered_static_first): Remove.
3882         (GOMP_loop_ordered_dynamic_first): Remove.
3883         (GOMP_loop_ordered_guided_first): Remove.
3884         (GOMP_loop_ordered_runtime_first): Remove.
3885         * ordered.c (gomp_ordered_loop_first): Post to own release when
3886         we're the first thread.
3887         (gomp_ordered_loop_last): Wait on release if not owner.
3888         (gomp_ordered_loop_next): Likewise.
3889         (gomp_ordered_static_loop_init): New.
3890         (gomp_ordered_static_loop_next): Use ordered_owner.
3891         (GOMP_ordered_start): Likewise.
3892         * work.c (gomp_new_work_share): Initialize ordered_owner.
3894 2005-05-03  Richard Henderson  <rth@redhat.com>
3896         * Makefile (OPT): New.
3897         (CFLAGS): Use it.
3899         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
3900         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
3901         * libgomp.h, libgomp.map, NOTES: Update to match.
3903         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
3904         Add initialized and thr members.
3905         (gomp_thread_start): Pause when initially spawned to wait for
3906         the whole team to be created.
3907         (gomp_team_start): Release team members at the end.
3909         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
3910         (f_foo_1): Use GOMP_loop_end.
3911         (f_foo_2): Use GOMP_loop_end_nowait.
3913         * testsuite/loop-2.c: New file.
3914         * testsuite/Makefile (TESTS): Add it.
3916 2005-05-03  Richard Henderson  <rth@redhat.com>
3918         * iter.c (gomp_iter_static_next): Fix overflow check typo.
3919         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
3920         * team.c (new_team): Initialize oldest_live_gen to 1 if no
3921         initial work_share.
3923         * testsuite/Makefile: New file.
3924         * testsuite/loop-1.c: New file.
3926 2005-05-03  Richard Henderson  <rth@redhat.com>
3928         Initial implementation and checkin.