Merge branches/gcc-4_9-branch rev 225109.
[official-gcc.git] / gcc-4_9-branch / libgomp / ChangeLog
blob924feddfec0211f4bf82c195fc74ec8c5eff9404
1 2015-06-26  Release Manager
3         * GCC 4.9.3 released.
5 2015-06-03  Jakub Jelinek  <jakub@redhat.com>
7         Backported from mainline
8         2015-05-13  Jakub Jelinek  <jakub@redhat.com>
10         PR middle-end/66133
11         * testsuite/libgomp.c/pr66133.c: New test.
13         2015-03-30  Jakub Jelinek  <jakub@redhat.com>
15         PR fortran/65597
16         * testsuite/libgomp.fortran/pr65597.f90: New test.
18         2015-03-19  Jakub Jelinek  <jakub@redhat.com>
20         * testsuite/libgomp.c/target-10.c: New test.
21         * testsuite/libgomp.c++/target-4.C: New test.
23 2015-04-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
25         Backported from mainline
26         2015-03-13  Sebastian Huber  <sebastian.huber@embedded-brains.de>
28         * configure.tgt (*-*-rtems*): Use local-exec TLS model.
29         * configure.ac (*-*-rtems*): Assume Pthread is supported.
30         (pthread.h): Check for this header file.
31         * configure: Regenerate.
33 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
35         PR c/64824
36         * testsuite/libgomp.c/atomic-18.c: New test.
37         * testsuite/libgomp.c++/atomic-16.C: New test.
39         Backported from mainline
40         2015-02-04  Jakub Jelinek  <jakub@redhat.com>
42         PR c/64824
43         PR c/64868
44         * testsuite/libgomp.c/pr64824.c: New test.
45         * testsuite/libgomp.c/pr64868.c: New test.
46         * testsuite/libgomp.c++/pr64824.C: New test.
47         * testsuite/libgomp.c++/pr64868.C: New test.
49 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
51         PR middle-end/64734
52         * libgomp.c/pr64734.c: New test.
54 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
56         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
58 2014-11-28  Jakub Jelinek  <jakub@redhat.com>
60         Backported from mainline
61         2014-11-24  Jakub Jelinek  <jakub@redhat.com>
63         PR fortran/63938
64         * libgomp.fortran/pr63938-1.f90: New test.
65         * libgomp.fortran/pr63938-2.f90: New test.
67 2014-10-30  Release Manager
69         * GCC 4.9.2 released.
71 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
73         PR libgomp/61200
74         * testsuite/libgomp.c/pr61200.c: New test.
76 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
78         PR c++/63248
79         * testsuite/libgomp.c++/pr63248.C: New test.
81 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
83         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
84         is not zero, but taskgroup->children is NULL and there are
85         any task->children, schedule those instead of waiting.
86         * testsuite/libgomp.c/depend-6.c: New test.
87         * testsuite/libgomp.c/depend-7.c: New test.
88         * testsuite/libgomp.c/depend-8.c: New test.
89         * testsuite/libgomp.c/depend-9.c: New test.
90         * testsuite/libgomp.c/depend-10.c: New test.
92 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
94         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
95         (struct gomp_taskwait): New type.
96         (struct gomp_task): Add taskwait and parent_depends_on, remove
97         in_taskwait and taskwait_sem fields.
98         (gomp_finish_task): Don't destroy taskwait_sem.
99         * task.c (gomp_init_task): Don't init in_taskwait, instead init
100         taskwait and parent_depends_on.
101         (GOMP_task): For if (0) tasks with depend clause that depend on
102         earlier tasks don't defer them, instead call
103         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
104         Initialize redundant_out field, for redundant out entries just
105         move them at the end of linked list instead of removing them
106         completely, and set redundant_out flag instead of redundant.
107         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
108         that task.
109         (gomp_task_run_post_handle_dependers): If parent is in
110         gomp_task_maybe_wait_for_dependencies and newly runnable task
111         is not parent_depends_on, queue it in parent->children linked
112         list after all runnable tasks with parent_depends_on set.
113         Adjust for addition of taskwait indirection.
114         (gomp_task_run_post_remove_parent): If parent is in
115         gomp_task_maybe_wait_for_dependencies and task to be removed
116         is parent_depends_on, decrement n_depend and if needed awake
117         parent.  Adjust for addition of taskwait indirection.
118         (GOMP_taskwait): Adjust for addition of taskwait indirection.
119         (gomp_task_maybe_wait_for_dependencies): New function.
120         * testsuite/libgomp.c/depend-5.c: New test.
122 2014-07-16  Release Manager
124         * GCC 4.9.1 released.
126 2014-06-30  Jakub Jelinek  <jakub@redhat.com>
128         Backported from mainline
129         2014-06-25  Jakub Jelinek  <jakub@redhat.com>
131         * testsuite/libgomp.fortran/simd5.f90: New test.
132         * testsuite/libgomp.fortran/simd6.f90: New test.
133         * testsuite/libgomp.fortran/simd7.f90: New test.
135         2014-06-24  Jakub Jelinek  <jakub@redhat.com>
137         * testsuite/libgomp.fortran/aligned1.f03: New test.
138         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
139         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
140         tasks with !$omp parallel !$omp single.
141         * testsuite/libgomp.fortran/target8.f90: New test.
142         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
143         not to use trim in the combiner, instead call elemental function.
144         (fn): New elemental function.
145         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
146         Make elemental.
147         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
148         omp_in): Likewise.
149         * testsuite/libgomp.fortran/udr12.f90: New test.
150         * testsuite/libgomp.fortran/udr13.f90: New test.
151         * testsuite/libgomp.fortran/udr14.f90: New test.
152         * testsuite/libgomp.fortran/udr15.f90: New test.
154         2014-06-18  Jakub Jelinek  <jakub@redhat.com>
156         * omp_lib.f90.in (openmp_version): Set to 201307.
157         * omp_lib.h.in (openmp_version): Likewise.
158         * testsuite/libgomp.c/target-8.c: New test.
159         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
160         and inbranch clauses.
161         * testsuite/libgomp.fortran/depend-3.f90: New test.
162         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
163         openmp_version.
164         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
165         * testsuite/libgomp.fortran/target1.f90: New test.
166         * testsuite/libgomp.fortran/target2.f90: New test.
167         * testsuite/libgomp.fortran/target3.f90: New test.
168         * testsuite/libgomp.fortran/target4.f90: New test.
169         * testsuite/libgomp.fortran/target5.f90: New test.
170         * testsuite/libgomp.fortran/target6.f90: New test.
171         * testsuite/libgomp.fortran/target7.f90: New test.
173         2014-06-10  Jakub Jelinek  <jakub@redhat.com>
175         PR fortran/60928
176         * testsuite/libgomp.fortran/allocatable9.f90: New test.
177         * testsuite/libgomp.fortran/allocatable10.f90: New test.
178         * testsuite/libgomp.fortran/allocatable11.f90: New test.
179         * testsuite/libgomp.fortran/allocatable12.f90: New test.
180         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
181         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
182         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
183         * testsuite/libgomp.fortran/associate1.f90: New test.
184         * testsuite/libgomp.fortran/associate2.f90: New test.
185         * testsuite/libgomp.fortran/procptr1.f90: New test.
187         2014-06-06  Jakub Jelinek  <jakub@redhat.com>
189         * testsuite/libgomp.fortran/simd1.f90: New test.
190         * testsuite/libgomp.fortran/udr1.f90: New test.
191         * testsuite/libgomp.fortran/udr2.f90: New test.
192         * testsuite/libgomp.fortran/udr3.f90: New test.
193         * testsuite/libgomp.fortran/udr4.f90: New test.
194         * testsuite/libgomp.fortran/udr5.f90: New test.
195         * testsuite/libgomp.fortran/udr6.f90: New test.
196         * testsuite/libgomp.fortran/udr7.f90: New test.
197         * testsuite/libgomp.fortran/udr8.f90: New test.
198         * testsuite/libgomp.fortran/udr9.f90: New test.
199         * testsuite/libgomp.fortran/udr10.f90: New test.
200         * testsuite/libgomp.fortran/udr11.f90: New test.
202         2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
204         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
205         vect_simd_clones effective target.
206         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
208         2014-05-11  Jakub Jelinek  <jakub@redhat.com>
210         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
211         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
212         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
213         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
214         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
215         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
216         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
217         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
218         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
219         * testsuite/libgomp.fortran/depend-1.f90: New test.
220         * testsuite/libgomp.fortran/depend-2.f90: New test.
221         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
222         * testsuite/libgomp.fortran/simd1.f90: New test.
223         * testsuite/libgomp.fortran/simd2.f90: New test.
224         * testsuite/libgomp.fortran/simd3.f90: New test.
225         * testsuite/libgomp.fortran/simd4.f90: New test.
226         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
228 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
230         * testsuite/libgomp.c/for-2.c: Define SC to static for
231         #pragma omp for simd testing.
232         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
233         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
234         SC macro.
235         * testsuite/libgomp.c/simd-14.c: New test.
236         * testsuite/libgomp.c/simd-15.c: New test.
237         * testsuite/libgomp.c/simd-16.c: New test.
238         * testsuite/libgomp.c/simd-17.c: New test.
239         * testsuite/libgomp.c++/for-10.C: Define SC to static for
240         #pragma omp for simd testing.
241         * testsuite/libgomp.c++/simd10.C: New test.
242         * testsuite/libgomp.c++/simd11.C: New test.
243         * testsuite/libgomp.c++/simd12.C: New test.
244         * testsuite/libgomp.c++/simd13.C: New test.
246 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
248         PR middle-end/61252
249         * testsuite/libgomp.c++/simd-9.C: New test.
251 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
253         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
254         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
255         texts according to their @menu entry positions.
257 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
259         * testsuite/libgomp.c/simd-10.c: New test.
260         * testsuite/libgomp.c/simd-11.c: New test.
261         * testsuite/libgomp.c/simd-12.c: New test.
262         * testsuite/libgomp.c/simd-13.c: New test.
264 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
266         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
267         atomic type clauses in any order and optional comma in between.
268         * testsuite/libgomp.c++/atomic-15.C: Likewise.
269         * testsuite/libgomp.c/atomic-17.c: Likewise.
271         * testsuite/libgomp.c/simd-7.c: New test.
272         * testsuite/libgomp.c/simd-8.c: New test.
273         * testsuite/libgomp.c/simd-9.c: New test.
274         * testsuite/libgomp.c/loop-16.c: New test.
276 2014-04-22  Release Manager
278         * GCC 4.9.0 released.
280 2014-04-02  Richard Henderson  <rth@redhat.com>
282         * config/linux/futex.h (futex_wait): Get error value from errno.
283         (futex_wake): Likewise.
285 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
287         PR c++/60331
288         * testsuite/libgomp.c++/udr-11.C: New test.
289         * testsuite/libgomp.c++/udr-12.C: New test.
290         * testsuite/libgomp.c++/udr-13.C: New test.
291         * testsuite/libgomp.c++/udr-14.C: New test.
292         * testsuite/libgomp.c++/udr-15.C: New test.
293         * testsuite/libgomp.c++/udr-16.C: New test.
294         * testsuite/libgomp.c++/udr-17.C: New test.
295         * testsuite/libgomp.c++/udr-18.C: New test.
296         * testsuite/libgomp.c++/udr-19.C: New test.
298 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
300         Update copyright years
302 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
304         * hashtab.h: Use the standard form for the copyright notice.
306 2014-01-02  Tobias Burnus  <burnus@net-b.de>
308         * libgomp.texi: Bump @copying's copyright year.
310 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
312         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
313         alloca () with __builtin_alloca ().
314         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
315         * testsuite/libgomp.c/lock-3.c: Likewise.
316         * testsuite/libgomp.c/pr48591.c: Likewise.
318 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
320         PR testsuite/59534
321         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
322         comparisons.
324 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
326         PR libgomp/58756
327         * testsuite/libgomp.c/pr58756.c: New test.
329 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
331         PR libgomp/59467
332         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
333         !$omp parallel.
335 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
337         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
338         ALWAYS_CFLAGS.
339         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
340         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
341         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
342         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
343         Likewise.
345         * libgomp_g.h: Include <stddef.h> for size_t.
347         * libgomp.spec.in: Update comment about libgomp's dependencies.
348         * configure.ac: Likewise.
349         * configure: Regenerate.
351 2013-10-16  Tobias Burnus  <burnus@net-b.de>
353         * libgomp.texi: (Runtime Library Routines): Update references for
354         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
355         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
356         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
357         (Environment Variables): Update references for OpenMP 4.0. Add
358         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
359         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
360         order.
362 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
364         * env.c (parse_bind_var): Initialize value to avoid
365         (false positive) warning.
367 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
369         PR libgomp/58691
370         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
371         to check variable.
372         (gomp_init_num_threads): Move i variable declaration into
373         #ifdef CPU_ALLOC_SIZE block.
374         * config/linux/affinity.c (gomp_affinity_init_level): Test
375         gomp_places_list_len == 0 rather than gomp_places_list == 0
376         when checking for topology reading error.
377         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
378         * env.c (parse_affinity): Add ignore argument, if true, don't populate
379         gomp_places_list, only parse env var and always return false.
380         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
381         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
382         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
383         and either of these variables were parsed correctly into a places
384         list.
386 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
387             Jakub Jelinek  <jakub@redhat.com>
389         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
390         of 5 loopfn matches.
391         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
392         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
393         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
394         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
395         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
396         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
397         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
398         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
400 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
402         * Makefile.am (omp_lib.mod): Streamline rule.
403         * Makefile.in: Regenerate.
405         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
406         exceptions.
408         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
409         * testsuite/libgomp.fortran/lib1.f90: Likewise.
410         * testsuite/libgomp.fortran/lib2.f: Likewise.
411         * testsuite/libgomp.fortran/lib3.f: Likewise.
413         * configure.ac: Typo fix.
414         * configure: Regenerate.
416         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
417         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
419         * omp.h.in: Don't touch the user's namespace.
421 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
422             Tobias Burnus  <burnus@net-b.de>
423             Richard Henderson  <rth@redhat.com>
425         * target.c: New file.
426         * Makefile.am (libgomp_la_SOURCES): Add target.c.
427         * Makefile.in: Regenerated.
428         * libgomp_g.h (GOMP_task): Add depend argument.
429         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
430         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
431         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
432         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
433         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
434         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
435         GOMP_taskgroup_start, GOMP_taskgroup_end,
436         GOMP_parallel_sections): New prototypes.
437         * fortran.c (omp_is_initial_device): Add ialias_redirect.
438         (omp_is_initial_device_): New function.
439         (ULP, STR1, STR2, ialias_redirect): Removed.
440         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
441         omp_set_default_device_8_, omp_get_default_device_,
442         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
443         functions.
444         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
445         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
446         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
447         @@GOMP_4.0.
448         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
449         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
450         omp_set_default_device, omp_set_default_device_,
451         omp_set_default_device_8_, omp_get_default_device,
452         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
453         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
454         omp_get_team_num_): Export @@OMP_4.0.
455         * team.c (struct gomp_thread_start_data): Add place field.
456         (gomp_thread_start): Clear thr->thread_pool and
457         thr->task before returning.  Use gomp_team_barrier_wait_final
458         instead of gomp_team_barrier_wait.  Initialize thr->place.
459         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
460         team_cancelled and task_queued_count fields.
461         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
462         before calling pthread_exit.
463         (gomp_free_thread): No longer static.  Use
464         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
465         (gomp_team_start): Add flags argument.  Set
466         thr->thread_pool->threads_busy to nthreads immediately after creating
467         new pool.  Use gomp_managed_threads_lock instead of
468         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
469         (gomp_team_end): Use gomp_managed_threads_lock instead of
470         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
471         of gomp_team_barrier_wait.  If team->team_cancelled, call
472         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
473         rather than thr->ts.work_share.
474         (initialize_team): Don't call gomp_sem_init here.
475         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
476         caller.
477         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
478         * env.c (gomp_global_icv): Add default_device_var, target_data and
479         bind_var initializers.
480         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
481         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
482         gomp_places_list_len): New variables.
483         (parse_bind_var, parse_one_place, parse_places_var): New functions.
484         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
485         sized places.
486         (gomp_cancel_var): New global variable.
487         (parse_int): New function.
488         (handle_omp_display_env): New function.
489         (initialize_env): Use it.  Initialize default_device_var.
490         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
491         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
492         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
493         been successfully parsed (and call gomp_init_affinity in that case).
494         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
495         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
496         omp_get_team_num, omp_is_initial_device): New functions.
497         * libgomp.h: Include stdlib.h.
498         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
499         Define.
500         (struct target_mem_desc): Forward declare.
501         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
502         and thread_limit_var fields.
503         (gomp_get_num_devices): New prototype.
504         (gomp_cancel_var): New extern decl.
505         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
506         team_cancelled and task_queued_count fields.  Add comments about
507         task_{,queued_,running_}count.
508         (gomp_cancel_kind): New enum.
509         (gomp_work_share_end_cancel): New prototype.
510         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
511         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
512         and depend fields.
513         (struct gomp_taskgroup): New type.
514         (struct gomp_task_depend_entry,
515         struct gomp_dependers_vec): New types.
516         (gomp_finish_task): Free depend_hash if non-NULL.
517         (struct gomp_team_state): Add place_partition_off
518         and place_partition_len fields.
519         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
520         gomp_places_list_len): New extern decls.
521         (struct gomp_thread): Add place field.
522         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
523         (gomp_init_thread_affinity): Add place argument.
524         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
525         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
526         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
527         gomp_affinity_init_level, gomp_affinity_print_place): New
528         prototypes.
529         (gomp_team_start): Add flags argument.
530         (gomp_thread_limit_var, gomp_remaining_threads_count,
531         gomp_remaining_threads_lock): Remove.
532         (gomp_managed_threads_lock): New variable.
533         (struct gomp_thread_pool): Add threads_busy field.
534         (gomp_free_thread): New prototype.
535         * task.c: Include hashtab.h.
536         (hash_entry_type): New typedef.
537         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
538         (gomp_init_task): Clear dependers, depend_hash, depend_count,
539         copy_ctors_done and taskgroup fields.
540         (GOMP_task): Add depend argument, handle depend clauses.  If
541         gomp_team_barrier_cancelled or if it's taskgroup has been
542         cancelled, don't queue or start new tasks.  Set copy_ctors_done
543         field if needed.  Initialize taskgroup field.  If copy_ctors_done
544         and already cancelled, don't discard the task.  If taskgroup is
545         non-NULL, enqueue the task into taskgroup queue.  Increment
546         num_children field in taskgroup.  Increment task_queued_count.
547         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
548         gomp_task_run_post_remove_taskgroup): New inline functions.
549         (gomp_task_run_post_handle_depend_hash,
550         gomp_task_run_post_handle_dependers,
551         gomp_task_run_post_handle_depend): New functions.
552         (GOMP_taskwait): Use them.  If more than one new tasks
553         have been queued, wake other threads if needed.
554         (gomp_barrier_handle_tasks): Likewise.  If
555         gomp_team_barrier_cancelled, don't start any new tasks, just free
556         all tasks.
557         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
558         * omp_lib.f90.in
559         (omp_proc_bind_kind, omp_proc_bind_false,
560         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
561         omp_proc_bind_spread): New params.
562         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
563         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
564         omp_get_team_num, omp_is_initial_device): New interfaces.
565         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
566         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
567         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
568         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
569         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
570         useless use omp_lib_kinds.
571         * omp.h.in (omp_proc_bind_t): New typedef.
572         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
573         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
574         omp_get_team_num, omp_is_initial_device): New prototypes.
575         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
576         through to gomp_team_start.
577         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
578         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
579         Adjust gomp_parallel_loop_start callers.
580         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
581         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
582         GOMP_loop_end_cancel): New functions.
583         (GOMP_parallel_end): Add ialias_redirect.
584         * hashtab.h: New file.
585         * libgomp.texi (Environment Variables): Minor cleanup,
586         update section refs to OpenMP 4.0rc2.
587         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
588         environment variables.
589         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
590         team->work_shares_to_free to thr->ts.work_share before calling
591         free_work_share.
592         (gomp_work_share_end_cancel): New function.
593         * config/linux/proc.c: Include errno.h.
594         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
595         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
596         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
597         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
598         gomp_cpuset_size is sizeof (cpu_set_t).
599         (gomp_init_num_threads): Initialize gomp_cpuset_size,
600         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
601         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
602         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
603         contain any logical CPUs.
604         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
605         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
606         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
607         pthread_getaffinity_np.  Check gomp_places_list instead of
608         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
609         * config/linux/bar.c (gomp_barrier_wait_end,
610         gomp_barrier_wait_last): Use BAR_* defines.
611         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
612         from state where needed.  Set work_share_cancelled to 0 on last
613         thread.
614         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
615         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
616         functions.
617         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
618         Add cpusetsize argument.
619         (gomp_cpuset_size, gomp_cpusetp): Declare.
620         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
621         (affinity_counter): Remove.
622         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
623         if CPU_ALLOC_SIZE isn't defined.
624         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
625         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
626         bind current thread to the first place.
627         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
628         pthread_setaffinity_np to gomp_places_list[place].
629         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
630         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
631         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
632         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
633         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
634         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
635         (gomp_barrier_t): Add awaited_final field.
636         (gomp_barrier_init): Initialize awaited_final field.
637         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
638         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
639         prototypes.
640         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
641         defines.
642         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
643         gomp_team_barrier_cancelled): New inline functions.
644         (gomp_barrier_last_thread,
645         gomp_team_barrier_set_task_pending,
646         gomp_team_barrier_clear_task_pending,
647         gomp_team_barrier_set_waiting_for_tasks,
648         gomp_team_barrier_waiting_for_tasks,
649         gomp_team_barrier_done): Use BAR_* defines.
650         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
651         (gomp_barrier_wait_end): Use BAR_* defines.
652         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
653         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
654         Use BAR_* defines.
655         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
656         gomp_team_barrier_cancel): New functions.
657         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
658         argument.
659         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
660         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
661         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
662         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
663         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
664         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
665         (gomp_barrier_t): Add cancellable field.
666         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
667         gomp_team_barrier_cancel): New prototypes.
668         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
669         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
670         gomp_team_barrier_cancelled): New inline functions.
671         (gomp_barrier_wait_start, gomp_barrier_last_thread,
672         gomp_team_barrier_set_task_pending,
673         gomp_team_barrier_clear_task_pending,
674         gomp_team_barrier_set_waiting_for_tasks,
675         gomp_team_barrier_waiting_for_tasks,
676         gomp_team_barrier_done): Use BAR_* defines.
677         * barrier.c (GOMP_barrier_cancel): New function.
678         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
679         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
680         omp_proc_bind_spread): New params.
681         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
682         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
683         omp_get_team_num, omp_is_initial_device): New externals.
684         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
685         New functions.
686         (gomp_resolve_num_threads): Adjust for thread_limit now being in
687         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
688         infinity.  If not nested, just return minimum of max_num_threads
689         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
690         to the returned value.  Otherwise, don't update atomically
691         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
692         (GOMP_parallel_end): Adjust for thread_limit now being in
693         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
694         infinity.  Adjust threads_busy in the pool rather than
695         gomp_remaining_threads_count.  Remember team->nthreads and call
696         gomp_team_end before adjusting threads_busy, if not nested
697         afterwards, just set it to 1 non-atomically.  Add ialias.
698         (GOMP_parallel_start): Adjust gomp_team_start caller.
699         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
700         * testsuite/libgomp.c/affinity-1.c: New test.
701         * testsuite/libgomp.c/atomic-15.c: New test.
702         * testsuite/libgomp.c/atomic-16.c: New test.
703         * testsuite/libgomp.c/atomic-17.c: New test.
704         * testsuite/libgomp.c/cancel-for-1.c: New test.
705         * testsuite/libgomp.c/cancel-for-2.c: New test.
706         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
707         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
708         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
709         * testsuite/libgomp.c/cancel-sections-1.c: New test.
710         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
711         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
712         * testsuite/libgomp.c/depend-1.c: New test.
713         * testsuite/libgomp.c/depend-2.c: New test.
714         * testsuite/libgomp.c/depend-3.c: New test.
715         * testsuite/libgomp.c/depend-4.c: New test.
716         * testsuite/libgomp.c/for-1.c: New test.
717         * testsuite/libgomp.c/for-1.h: New file.
718         * testsuite/libgomp.c/for-2.c: New test.
719         * testsuite/libgomp.c/for-2.h: New file.
720         * testsuite/libgomp.c/for-3.c: New test.
721         * testsuite/libgomp.c/pr58392.c: New test.
722         * testsuite/libgomp.c/simd-1.c: New test.
723         * testsuite/libgomp.c/simd-2.c: New test.
724         * testsuite/libgomp.c/simd-3.c: New test.
725         * testsuite/libgomp.c/simd-4.c: New test.
726         * testsuite/libgomp.c/simd-5.c: New test.
727         * testsuite/libgomp.c/simd-6.c: New test.
728         * testsuite/libgomp.c/target-1.c: New test.
729         * testsuite/libgomp.c/target-2.c: New test.
730         * testsuite/libgomp.c/target-3.c: New test.
731         * testsuite/libgomp.c/target-4.c: New test.
732         * testsuite/libgomp.c/target-5.c: New test.
733         * testsuite/libgomp.c/target-6.c: New test.
734         * testsuite/libgomp.c/target-7.c: New test.
735         * testsuite/libgomp.c/taskgroup-1.c: New test.
736         * testsuite/libgomp.c/thread-limit-1.c: New test.
737         * testsuite/libgomp.c/thread-limit-2.c: New test.
738         * testsuite/libgomp.c/thread-limit-3.c: New test.
739         * testsuite/libgomp.c/udr-1.c: New test.
740         * testsuite/libgomp.c/udr-2.c: New test.
741         * testsuite/libgomp.c/udr-3.c: New test.
742         * testsuite/libgomp.c++/affinity-1.C: New test.
743         * testsuite/libgomp.c++/atomic-10.C: New test.
744         * testsuite/libgomp.c++/atomic-11.C: New test.
745         * testsuite/libgomp.c++/atomic-12.C: New test.
746         * testsuite/libgomp.c++/atomic-13.C: New test.
747         * testsuite/libgomp.c++/atomic-14.C: New test.
748         * testsuite/libgomp.c++/atomic-15.C: New test.
749         * testsuite/libgomp.c++/cancel-for-1.C: New test.
750         * testsuite/libgomp.c++/cancel-for-2.C: New test.
751         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
752         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
753         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
754         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
755         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
756         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
757         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
758         * testsuite/libgomp.c++/cancel-test.h: New file.
759         * testsuite/libgomp.c++/for-9.C: New test.
760         * testsuite/libgomp.c++/for-10.C: New test.
761         * testsuite/libgomp.c++/for-11.C: New test.
762         * testsuite/libgomp.c++/simd-1.C: New test.
763         * testsuite/libgomp.c++/simd-2.C: New test.
764         * testsuite/libgomp.c++/simd-3.C: New test.
765         * testsuite/libgomp.c++/simd-4.C: New test.
766         * testsuite/libgomp.c++/simd-5.C: New test.
767         * testsuite/libgomp.c++/simd-6.C: New test.
768         * testsuite/libgomp.c++/simd-7.C: New test.
769         * testsuite/libgomp.c++/simd-8.C: New test.
770         * testsuite/libgomp.c++/target-1.C: New test.
771         * testsuite/libgomp.c++/target-2.C: New test.
772         * testsuite/libgomp.c++/target-2-aux.cc: New file.
773         * testsuite/libgomp.c++/target-3.C: New test.
774         * testsuite/libgomp.c++/taskgroup-1.C: New test.
775         * testsuite/libgomp.c++/udr-1.C: New test.
776         * testsuite/libgomp.c++/udr-2.C: New test.
777         * testsuite/libgomp.c++/udr-3.C: New test.
778         * testsuite/libgomp.c++/udr-4.C: New test.
779         * testsuite/libgomp.c++/udr-5.C: New test.
780         * testsuite/libgomp.c++/udr-6.C: New test.
781         * testsuite/libgomp.c++/udr-7.C: New test.
782         * testsuite/libgomp.c++/udr-8.C: New test.
783         * testsuite/libgomp.c++/udr-9.C: New test.
785 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
787         PR testsuite/57605
788         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
789         ALWAYS_CFLAGS.
791 2013-09-20  Alan Modra  <amodra@gmail.com>
793         * configure: Regenerate.
795 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
797         * testsuite/libgomp.c/sections-2.c: New test.
799 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
801         * testsuite/libgomp.fortran/strassen.f90:
802         Add dg-skip-if aarch64_tiny.
804 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
805             Cesar Philippidis  <cesar@codesourcery.com>
807         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
808         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
809         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
810         * testsuite/libgomp.fortran/fortran.exp: Likewise.
811         * testsuite/libgomp.graphite/graphite.exp: Likewise.
812         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
813         Use dg-runtest rather than gfortran-dg-runtest.
815 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
817         * testsuite/libgomp.c/icv-2.c: Extend current handling of
818         Linux-based x86 systems to cover all GNU systems.
819         * testsuite/libgomp.c/lock-3.c: Likewise.
820         * testsuite/libgomp.c/pr48591.c: Likewise.
822 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
824         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
825         GNU/Hurd, as done for Linux-based systems.
827         * config/posix/ptrlock.h: Fix comment.
829 2013-05-27  Tobias Burnus  <burnus@net-b.de>
831         PR fortran/57423
832         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
833         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
834         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
835         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
836         omp_destroy_nest_lock): Correct arguments to match the one in
837         the OpenMP spec.
838         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
839         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
840         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
841         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
843 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
845         * testsuite/libgomp.c/loop-13.c: New test.
846         * testsuite/libgomp.c/loop-14.c: New test.
847         * testsuite/libgomp.c/loop-15.c: New test.
848         * testsuite/libgomp.c++/loop-13.C: New test.
849         * testsuite/libgomp.c++/loop-14.C: New test.
850         * testsuite/libgomp.c++/loop-15.C: New test.
852 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
854         PR middle-end/56217
855         * testsuite/libgomp.c++/pr56217.C: New test.
857 2013-02-01  Alan Modra  <amodra@gmail.com>
859         * task.c (GOMP_task, GOMP_taskwait): Comment.
861 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
862             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
864         PR libgomp/55561
865         * config/linux/wait.h (do_spin): Use atomic load for addr.
866         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
867         for intptr and ptrlock.
868         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
869         for ptrlock.
871 2013-01-22  Alan Modra  <amodra@gmail.com>
873         PR libgomp/51376
874         PR libgomp/56073
875         * task.c (GOMP_task): Revert 2011-12-09 change.
876         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
877         barrier to read task->children..
878         (gomp_barrier_handle_tasks): ..and matching atomic store with
879         release barrier here when setting parent->children to NULL.
881 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
882             Tobias Burnus  <burnus@net-b.de>
884         PR driver/55884
885         * testsuite/libgomp.fortran/fortran.exp: Use
886         -fintrinsic-modules-path= instead of
887         -fintrinsic-modules-path.
889 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
891         Update copyright years.
893 2012-12-19  Tobias Burnus  <burnus@net-b.de>
895         * testsuite/libgomp.fortran/fortran.exp: Set
896         -fintrinsic-modules-path.
898 2012-12-19  Tobias Burnus  <burnus@net-b.de>
900         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
901         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
903 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
905         PR libgomp/55411
906         * team.c (gomp_free_thread): Decrease gomp_managed_threads
907         if pool had any threads_used.
909 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
911         * testsuite/libgomp.c++/pr24455.C: Use
912         -Wl,-undefined,dynamic_lookup on darwin.
914 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
916         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
918 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
920         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
922 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
923             Jim MacArthur  <jim.macarthur@arm.com>
924             Marcus Shawcroft  <marcus.shawcroft@arm.com>
925             Nigel Stephens  <nigel.stephens@arm.com>
926             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
927             Richard Earnshaw  <rearnsha@arm.com>
928             Sofiane Naci  <sofiane.naci@arm.com>
929             Stephen Thomas  <stephen.thomas@arm.com>
930             Tejas Belagod  <tejas.belagod@arm.com>
931             Yufeng Zhang  <yufeng.zhang@arm.com>
933         * configure.tgt: Add AArch64.
935 2012-10-04  Jason Merrill  <jason@redhat.com>
937         * testsuite/libgomp.c++/tls-init1.C: New.
939 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
941         * configure: Regenerated.
943 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
945         * config/linux/mips/futex.h (sys_futex0): Change to static
946         function with noinline, nomips16 attributes under MIPS16. Adjust
947         asm statement to place 'li v0,SYS_futex' immediately before
948         syscall insn.
950 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
952         * libgomp.texi (Library Index): Renamed from "Index" to prevent
953         conflict with index.html on case-insensitive file systems.
955 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
957         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
958         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
960 2012-07-02  Richard Guenther  <rguenther@suse.de>
961             Michael Matz  <matz@suse.de>
962             Tobias Grosser <tobias@grosser.es>
963             Sebastian Pop <sebpop@gmail.com>
965         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
966         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
967         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
968         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
970 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
972         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
974 2012-06-22  Richard Guenther  <rguenther@suse.de>
976         Merge from graphite branch
977         2012-01-13  Tobias Grosser  <tobias@grosser.es>
979         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
980         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
982 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
984         PR middle-end/53580
985         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
986         use GOMP_barrier () call instead.
987         * testsuite/libgomp.c/pr26943-3.c: Likewise.
988         * testsuite/libgomp.c/pr26943-4.c: Likewise.
989         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
990         call GOMP_barrier instead.
991         * testsuite/libgomp.fortran/vla5.f90: Likewise.
993 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
995         PR libgomp/52993
996         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
997         argument to memset call.
999 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1001         * configure: Regenerated.
1003 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1005         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
1007 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1009         PR bootstrap/52812
1010         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
1012 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
1014         PR middle-end/52547
1015         * testsuite/libgomp.c/pr52547.c: New test.
1017 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1019         * testsuite/lib/libgomp.exp: load fortran-modules.exp
1021 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1023         * configure.tgt (mips-sgi-irix6*): Remove.
1025 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1027         * configure.tgt (alpha*-dec-osf*): Remove.
1029         * config/osf/sem.h: Remove.
1030         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
1032 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1034         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
1036 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1038         PR libstdc++/52188
1039         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
1040         Remove ENABLE_SYMVERS_SOL2.
1041         * configure: Regenerate.
1042         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
1043         (PREPROCESS): New variable.
1044         (libgomp.ver): New target.
1045         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
1046         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
1047         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
1048         Use libgomp.ver.
1049         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
1050         * Makefile.in: Regenerate.
1052 2012-02-14  Walter Lee  <walt@tilera.com>
1054         * configure.tgt: Handle tilegx and tilepro.
1055         * config/linux/tile/futex.h: New file.
1057 2012-02-08  Richard Guenther  <rguenther@suse.de>
1059         PR tree-optimization/46886
1060         * testsuite/libgomp.c/pr46886.c: New testcase.
1062 2012-01-25  Matthias Klose  <doko@ubuntu.com>
1064         * config/linux/arm: Remove empty directory.
1065         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
1067 2011-12-09  Alan Modra  <amodra@gmail.com>
1069         PR libgomp/51376
1070         * task.c (GOMP_taskwait): Don't access task->children outside of
1071         task_lock mutex region.
1072         (GOMP_task): Likewise.
1074 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1076         PR libgomp/51132
1077         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1078         to file scope.
1079         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1080         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1081         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1082         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1083         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1085 2011-12-02  Alan Modra  <amodra@gmail.com>
1087         * config/linux/affinity.c: Use atomic rather than sync builtin.
1088         * config/linux/lock.c: Likewise.
1089         * config/linux/ptrlock.h: Likewise.
1090         * config/linux/ptrlock.c: Likewise.
1091         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
1092         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
1093         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
1094         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
1095         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
1096         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
1097         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
1098         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
1099         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
1100         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
1102 2011-11-30  Alan Modra  <amodra@gmail.com>
1104         PR libgomp/51298
1105         * config/linux/bar.h: Use atomic rather than sync builtins.
1106         * config/linux/bar.c: Likewise.  Add missing acquire
1107         synchronisation on generation field.
1108         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
1109         double unlock.
1111 2011-11-30  Alan Modra  <amodra@gmail.com>
1113         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
1114         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
1115         * config/linux/mutex.h: Use atomic rather than sync builtins.
1116         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
1117         * config/linux/omp-lock.h: Comment fix.
1118         * config/linux/arm/mutex.h: Delete.
1119         * config/linux/powerpc/mutex.h: Delete.
1120         * config/linux/ia64/mutex.h: Delete.
1121         * config/linux/mips/mutex.h: Delete.
1123 2011-11-30  Alan Modra  <amodra@gmail.com>
1125         PR libgomp/51249
1126         * config/linux/sem.h: Rewrite.
1127         * config/linux/sem.c: Rewrite.
1129 2011-11-28  Richard Henderson  <rth@redhat.com>
1131         * libgomp.h (enum memmodel): New.
1133 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1135         * configure: Regenerate.
1137 2011-10-10  Matthias Klose  <doko@ubuntu.com>
1139         * config/posix95: Remove empty directory.
1141 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1143         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1145 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
1147         PR fortran/49792
1148         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1149         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1151 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1153         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1155 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1157         PR libgomp/49965
1158         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1160 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
1162         * config/linux/proc.h: New.
1163         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
1164         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
1165         (gomp_init_num_threads): Update call to cpuset_popcount.
1166         (get_num_procs): Ditto.
1167         * config/linux/affinity.c (gomp_init_affinity): Call
1168         gomp_cpuset_popcount.
1170 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1172         PR fortran/42041
1173         PR fortran/46752
1174         * omp.h.in (omp_in_final): New prototype.
1175         * omp_lib.f90.in (omp_in_final): New interface.
1176         (omp_integer_kind, omp_logical_kind): Remove
1177         and replace all its uses in the module with 4.
1178         (openmp_version): Change to 201107.
1179         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1180         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1181         kind for the parameters.
1182         (omp_in_final): New external.
1183         (openmp_version): Change to 201107.
1184         * task.c (omp_in_final): New function.
1185         (gomp_init_task): Initialize final_task.
1186         (GOMP_task): Remove unused attribute from flags.  Handle final
1187         tasks.
1188         (GOMP_taskyield): New function.
1189         (omp_in_final): Return true if if (false) or final (true) task
1190         or descendant of final (true).
1191         * fortran.c (omp_in_final_): New function.
1192         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1193         (GOMP_3.0): Export GOMP_taskyield.
1194         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1195         variables.
1196         (parse_unsigned_long_list): New function.
1197         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
1198         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
1199         even if parse_affinity returned false.
1200         * config/linux/affinity.c (gomp_init_affinity): Handle
1201         gomp_cpu_affinity_len == 0.
1202         * libgomp_g.h (GOMP_taskyield): New prototype.
1203         * libgomp.h (struct gomp_task): Add final_task field.
1204         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1205         * team.c (gomp_team_start): Override new task's nthreads_var icv
1206         if list form OMP_NUM_THREADS has been used and it has value for
1207         the new nesting level.
1209         * testsuite/libgomp.c/atomic-11.c: New test.
1210         * testsuite/libgomp.c/atomic-12.c: New test.
1211         * testsuite/libgomp.c/atomic-13.c: New test.
1212         * testsuite/libgomp.c/atomic-14.c: New test.
1213         * testsuite/libgomp.c/reduction-6.c: New test.
1214         * testsuite/libgomp.c/task-5.c: New test.
1215         * testsuite/libgomp.c++/atomic-2.C: New test.
1216         * testsuite/libgomp.c++/atomic-3.C: New test.
1217         * testsuite/libgomp.c++/atomic-4.C: New test.
1218         * testsuite/libgomp.c++/atomic-5.C: New test.
1219         * testsuite/libgomp.c++/atomic-6.C: New test.
1220         * testsuite/libgomp.c++/atomic-7.C: New test.
1221         * testsuite/libgomp.c++/atomic-8.C: New test.
1222         * testsuite/libgomp.c++/atomic-9.C: New test.
1223         * testsuite/libgomp.c++/task-8.C: New test.
1224         * testsuite/libgomp.c++/reduction-4.C: New test.
1225         * testsuite/libgomp.fortran/allocatable7.f90: New test.
1226         * testsuite/libgomp.fortran/allocatable8.f90: New test.
1227         * testsuite/libgomp.fortran/crayptr3.f90: New test.
1228         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1229         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1230         * testsuite/libgomp.fortran/pointer1.f90: New test.
1231         * testsuite/libgomp.fortran/pointer2.f90: New test.
1232         * testsuite/libgomp.fortran/task4.f90: New test.
1234 2011-08-02  Tobias Burnus  <burnus@net-b.de>
1236         * libgomp.texi: Update OpenMP spec references to 3.1.
1237         (omp_in_final,OMP_PROC_BIND): New sections.
1238         (OMP_NUM_THREADS): Document that the value can be now a list.
1239         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1241 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1243         * config/linux/x86/futex.h: Check __x86_64__ instead of
1244         __LP64__.
1246 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1248         PR middle-end/49897
1249         PR middle-end/49898
1250         * testsuite/libgomp.c/pr49897-1.c: New test.
1251         * testsuite/libgomp.c/pr49897-2.c: New test.
1252         * testsuite/libgomp.c/pr49898-1.c: New test.
1253         * testsuite/libgomp.c/pr49898-2.c: New test.
1255 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1257         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1258         for ia32 instead of ilp32.
1260         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1261         * testsuite/libgomp.c/atomic-6.c: Likewise.
1263 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
1265         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1266         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1268 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1270         PR libgomp/45351
1271         * config/osf/sem.h: New file.
1272         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1274 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1276         PR target/49541
1277         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1278         ldflags.
1280 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
1282         * config/linux/wait.h (do_spin): New inline, largely copied
1283         from do_wait, just don't do futex_wait here, instead return true if
1284         it should be done.
1285         (do_wait): Implement using do_spin.
1286         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1287         to prototype.
1288         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1289         __sync_bool_compare_and_swap, pass the oldval to
1290         gomp_mutex_lock_slow.
1291         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1292         If all mutex contenders are just spinning and not sleeping, don't
1293         change state to 2 unnecessarily.  Optimize the loop when state has
1294         already become 2 to use just one atomic operation per loop instead
1295         of two.
1296         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1297         to prototype.
1298         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1299         __sync_bool_compare_and_swap, pass the oldval to
1300         gomp_mutex_lock_slow.
1302 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1304         PR libgomp/49490
1305         * iter.c (gomp_iter_static_next): For chunk size 0
1306         only use n ceil/ nthreads size for the first
1307         n % nthreads threads in the team instead of
1308         all threads except for the last few ones which
1309         get less work or none at all.
1310         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1311         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1312         chunk argument, set run_sched_modifier to 0 for static
1313         resp. 1 for other kinds.  If chunk argument is 0
1314         and not static, set value to 1.
1316 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1318         PR c++/49043
1319         * testsuite/libgomp.c++/pr49043.C: New test.
1321         PR c++/48869
1322         * testsuite/libgomp.c++/pr48869.C: New test.
1324 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1326         PR fortran/48894
1327         * fortran.c: Include limits.h.
1328         (TO_INT): Define.
1329         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1330         *set.
1331         (omp_set_num_threads_8_, omp_set_schedule_8_,
1332         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1333         omp_get_team_size_8_): Use TO_INT macro.
1334         * testsuite/libgomp.fortran/pr48894.f90: New test.
1336 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1338         PR middle-end/48591
1339         * testsuite/libgomp.c/pr48591.c: New test.
1341 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1343         PR bootstrap/48135
1344         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1345         * configure: Regenerate.
1347 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1349         PR fortran/47886
1350         * testsuite/libgomp.fortran/task3.f90: New test.
1352 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1354         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1356 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1358         PR libgomp/47854
1359         * libgomp.texi (omp_get_wtime): Don't say time in the past
1360         must be Unix Epoch.
1362 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1364         PR libgomp/47804
1365         * testsuite/libgomp.fortran/fortran.exp: Check for both
1366         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1367         but $blddir != "", still append ${blddir}/${lang_library_path}
1368         to ld_library_path.
1370 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1372         PR libgomp/47758
1373         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1374         of libquadmath.a before adding its libpath to ldflags.
1376 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1378         PR libgomp/47731
1379         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1380         to FUTEX_WAIT futex syscall.
1381         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1383 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1385         * configure: Regenerate.
1387 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1389         PR libstdc++/36104
1390         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1392 2011-01-16  Gerald Pfeifer
1394         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1396 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1398         PR fortran/46874
1399         * libgomp.fortran/allocatable6.f90: New test.
1401 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1403         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1404         * configure: Regenerate.
1406 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1408         PR target/40125
1409         PR lto/46695
1410         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1411         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1412         * aclocal.m4: Regenerate.
1413         * configure: Regenerate.
1414         * Makefile.in: Regenerate.
1415         * testsuite/Makefile.in: Regenerate.
1417 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
1419         PR fortran/46753
1420         * libgomp.fortran/pr46753.f90: New test.
1422         PR libgomp/43706
1423         * env.c (initialize_env): Default to spin count 300000
1424         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1425         is specified.
1427         PR libgomp/45240
1428         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1429         at the end if sync builtins aren't supported.
1431 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1433         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1435 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1437         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1439 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
1441         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1443 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1444             Tobias Burnus  <burnus@net-b.de>
1446         PR fortran/32049
1447         * configure.ac:
1448         * configure: Regenerate.
1450 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1452         * config/linux/futex.h: New.
1453         * config/linux/arm/mutex.h: New.
1454         * configure.tgt (arm*-*-linux*): Add config path.
1456 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1458         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1460 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1462         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1463         Change Fortran datatype to LOGICAL.
1464         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1465         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1467 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1469         * configure: Regenerate.
1471 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
1473         * libgomp.texi: Add function keyword to a couple of Fortran
1474         interfaces, use integer instead of int for Fortran.
1476 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
1478         * libgomp.texi: Fix spelling and pasto problems throughout.
1479         Adjust prototypes to match code.
1481 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1483         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1484         silence -fwhole-file warning.
1486 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1488         * configure.tgt (*-*-solaris2.[56]*): Removed.
1490 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1492         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1493         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1494         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1495         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1496         targetting solaris2*.
1497         * configure: Regenerate.
1498         * config.h.in: Regenerate.
1500         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1501         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1502         Add libgomp_version_dep.
1503         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1504         versioning.
1505         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1506         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1507         * Makefile.in: Regenerate.
1509         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1510         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1511         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1512         to common block, protected by
1513         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1515 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1517         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
1519 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
1521         PR bootstrap/43170
1522         * configure: Regenerate.
1524 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1526         PR other/43620
1527         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1528         * configure: Regenerate.
1529         * Makefile.in: Regenerate.
1530         * testsuite/Makefile.in: Regenerate.
1532 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1534         PR c/43893
1535         * testsuite/libgomp.c/pr43893.c: New test.
1536         * testsuite/libgomp.c++/pr43893.C: New test.
1538 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1540         PR middle-end/43570
1541         * testsuite/libgomp.fortran/vla8.f90: New test.
1543 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1545         PR libgomp/43706
1546         * config/linux/affinity.c (gomp_init_affinity): Decrease
1547         gomp_available_cpus if affinity mask confines the process to fewer
1548         CPUs.
1549         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1550         non-NULL, just return gomp_available_cpus.
1552         PR libgomp/43569
1553         * sections.c (gomp_sections_init): Initialize ws->mode.
1555 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1557         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1558         not unused bar variable.
1559         * configure: Regenerate.
1561 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1563         * Makefile.in: Regenerate.
1564         * aclocal.m4: Regenerate.
1565         * testsuite/Makefile.in: Regenerate.
1567 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
1569         PR libgomp/42942
1570         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1571         (initialize_env): Adjust callers.
1572         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1573         when the argument is 0.
1575         * testsuite/libgomp.c/pr42942.c: New test.
1577 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
1579         PR middle-end/42644
1580         PR middle-end/42130
1581         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1582         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1584 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1586         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1587         * testsuite/libgomp.c++/task-6.C: Likewise.
1589 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
1591         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1593 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
1595         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1596         * configure: Regenerate.
1598 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
1600         PR fortran/42866
1601         * testsuite/libgomp.fortran/allocatable5.f90: New test.
1603 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
1605         * configure.ac: Test for executability of GFORTRAN.
1606         * configure: Regenerate.
1608 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1610         * configure: Regenerate.
1612 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
1614         PR libgomp/42602
1615         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1617 2010-01-03  Richard Guenther  <rguenther@suse.de>
1619         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1621 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
1623         * testsuite/libgomp.graphite/pr4118.c: New.
1625 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1627         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1628         for darwin, protect the test with require-effective-target tls_runtime.
1629         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1631 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1633         PR target/41605
1634         * testsuite/lib/libgomp.exp: Provide -B options to allow for
1635         link spec %s substitutions for static libraries.
1637 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
1639         PR testsuite/42135
1640         * libgomp.graphite/force-parallel-2.c: Reduce array size.
1642 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1644         * Makefile.in: Regenerate.
1645         * configure: Regenerate.
1646         * testsuite/Makefile.in: Regenerate.
1648 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1650         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1651         settings for LC_ALL and LANG.
1653 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1655         PR fortran/42162
1656         * testsuite/libgomp.fortran/pr42162.f90: New test.
1658 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1660         PR middle-end/42029
1661         * testsuite/libgomp.c/pr42029.c: New test.
1663 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1665         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1666         *s.  Accept ld version without text in ()s.
1667         * configure: Regenerated.
1669 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1671         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1673 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1675         PR libgomp/41418
1676         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1677         or a hyphen (happens with fortran language disabled).
1678         * configure: Regenerate.
1680 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1682         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1683         use sed script portable to Solaris /bin/sed for extracting ld
1684         version.
1685         * configure: Regenerate.
1687 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
1689         * testsuite/libgomp.graphite/bounds.c: New test.
1691 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1693         * Makefile.am (libgomp_la_LINK): New.
1694         * Makefile.in: Regenerate.
1696 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1698         * configure.ac (AC_PREREQ): Bump to 2.64.
1700 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1702         * Makefile.am (install-html, install-pdf): Remove.
1703         * Makefile.in: Regenerate.
1705         * Makefile.in: Regenerate.
1706         * aclocal.m4: Regenerate.
1707         * config.h.in: Regenerate.
1708         * configure: Regenerate.
1709         * testsuite/Makefile.in: Regenerate.
1711 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1713         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1714         * Makefile.in: Regenerate.
1716 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
1718         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1719         * Makefile.in: Regenerate.
1721 2009-08-19  Tobias Burnus  <burnus@net-b.de>
1723         PR fortran/41102
1724         omp_lib.h.in: Fix -std=f95 errors.
1727 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
1729         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1730         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1731         * testsuite/libgomp.graphite/graphite.exp: New.
1733 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
1735         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1736         only build.
1738 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1740         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1741         needed memory barrier semantics.
1742         * config/linux/mips/mutex.h: New file.
1744 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1746         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1748 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
1750         * configure: Regenerate.
1752 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1754         PR testsuite/40699
1755         PR testsuite/40707
1756         PR testsuite/40709
1757         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1758         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1759         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1761 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1763         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1764         options when choosing a multilib.
1766 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1768         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1769         ld_library_path.  Use add_path.  Add just find_libgcc_s to
1770         ld_library_path, not every libgcc multilib directory.
1771         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1772         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1773         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1774         Use add_path.
1775         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1777 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
1779         * Makefile.am (LTLDFLAGS): Define.
1780         (LINK): Define.
1781         * Makefile.in: Regenerate.
1783 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1785         PR fortran/39718
1786         * testsuite/libgomp.fortran/fortran.exp: Don't link with
1787         libgfortranbegin, check existence of libgfortran.a instead of
1788         libgfortranbegin.a.
1790 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1792         PR libgomp/40174
1793         * team.c (gomp_thread_start): Destroy thr->release semaphore.
1794         (gomp_free_pool_helper): Likewise.
1796 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
1797             Jakub Jelinek  <jakub@redhat.com>
1799         PR fortran/35423
1800         * testsuite/libgomp.fortran/workshare2.f90: New test.
1802 2009-04-09  Nick Clifton  <nickc@redhat.com>
1804         * iter.c: Change copyright header to refer to version 3 of the
1805         GNU General Public License with version 3.1 of the GCC Runtime
1806         Library Exception and to point readers at the COPYING3 and
1807         COPYING3.RUNTIME files and the FSF's license web page.
1808         * alloc.c: Likewise.
1809         * barrier.c: Likewise.
1810         * config/bsd/proc.c: Likewise.
1811         * config/linux/affinity.c: Likewise.
1812         * config/linux/alpha/futex.h: Likewise.
1813         * config/linux/bar.c: Likewise.
1814         * config/linux/bar.h: Likewise.
1815         * config/linux/ia64/futex.h: Likewise.
1816         * config/linux/ia64/mutex.h: Likewise.
1817         * config/linux/lock.c: Likewise.
1818         * config/linux/mips/futex.h: Likewise.
1819         * config/linux/mutex.c: Likewise.
1820         * config/linux/mutex.h: Likewise.
1821         * config/linux/powerpc/futex.h: Likewise.
1822         * config/linux/proc.c: Likewise.
1823         * config/linux/ptrlock.c: Likewise.
1824         * config/linux/ptrlock.h: Likewise.
1825         * config/linux/s390/futex.h: Likewise.
1826         * config/linux/sem.c: Likewise.
1827         * config/linux/sem.h: Likewise.
1828         * config/linux/sparc/futex.h: Likewise.
1829         * config/linux/wait.h: Likewise.
1830         * config/linux/x86/futex.h: Likewise.
1831         * config/mingw32/proc.c: Likewise.
1832         * config/mingw32/time.c: Likewise.
1833         * config/posix/affinity.c: Likewise.
1834         * config/posix/bar.c: Likewise.
1835         * config/posix/bar.h: Likewise.
1836         * config/posix/lock.c: Likewise.
1837         * config/posix/mutex.h: Likewise.
1838         * config/posix/proc.c: Likewise.
1839         * config/posix/ptrlock.h: Likewise.
1840         * config/posix/sem.c: Likewise.
1841         * config/posix/sem.h: Likewise.
1842         * config/posix/time.c: Likewise.
1843         * config/posix95/lock.c: Likewise.
1844         * critical.c: Likewise.
1845         * env.c: Likewise.
1846         * error.c: Likewise.
1847         * fortran.c: Likewise.
1848         * iter_ull.c: Likewise.
1849         * libgomp.h: Likewise.
1850         * libgomp_f.h.in: Likewise.
1851         * libgomp_g.h: Likewise.
1852         * loop.c: Likewise.
1853         * loop_ull.c: Likewise.
1854         * omp.h.in: Likewise.
1855         * omp_lib.f90.in: Likewise.
1856         * omp_lib.h.in: Likewise.
1857         * ordered.c: Likewise.
1858         * parallel.c: Likewise.
1859         * sections.c: Likewise.
1860         * single.c: Likewise.
1861         * task.c: Likewise.
1862         * team.c: Likewise.
1863         * work.c: Likewise.
1865 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1867         * testsuite/config/default.exp: Change copyright header to refer to
1868         version 3 of the GNU General Public License and to point readers
1869         at the COPYING3 file and the FSF's license web page.
1871 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1873         PR middle-end/39573
1874         * libgomp.c++/pr39573.C: New test.
1876 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1878         PR other/39591
1879         * testsuite/libgomp.c/pr39591-1.c: New test.
1880         * testsuite/libgomp.c/pr39591-2.c: New test.
1881         * testsuite/libgomp.c/pr39591-3.c: New test.
1883 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
1885         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
1886         * testsuite/libgomp.c/atomic-6.c: Ditto.
1888 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1890         PR c/39495
1891         * testsuite/libgomp.c/loop-12.c: New test.
1892         * testsuite/libgomp.c/loop-11.c: New test.
1893         * testsuite/libgomp.c++/loop-11.C: New test.
1894         * testsuite/libgomp.c++/loop-12.C: New test.
1895         * testsuite/libgomp.c++/for-8.C: New test.
1897 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1899         * configure: Regenerate.
1901 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
1903         PR middle-end/39154
1904         * testsuite/libgomp.c/pr39154.c: New test.
1906 2009-01-30  Ian Lance Taylor  <iant@google.com>
1908         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
1909         libgomp_ld_is_gold.  Get gold version number.
1910         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
1911         * configure: Rebuild.
1913 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1915         * testsuite/lib/libgomp.exp: Add -B option for targets that
1916         use libgfortran.a%s in their specs.
1918 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
1920         PR libgomp/38086
1921         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
1922         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
1923         HAVE_AS_SYMVER_DIRECTIVE is not defined.
1924         * configure: Regenerated.
1925         * config.h.in: Likewise.
1927 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
1929         PR c++/38650
1930         * testsuite/libgomp.c/pr38650.c: New test.
1931         * testsuite/libgomp.c++/pr38650.C: New test.
1933 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
1935         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
1937 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
1939         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
1941 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1943         * configure: Regenerate.
1945 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1947         PR middle-end/36802
1948         * testsuite/libgomp.c/pr36802-1.c: New test.
1949         * testsuite/libgomp.c/pr36802-2.c: New test.
1950         * testsuite/libgomp.c/pr36802-3.c: New test.
1952 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
1954         PR libgomp/38270
1955         * config/linux/powerpc/mutex.h: New.
1957 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1959         PR c++/38257
1960         * testsuite/libgomp.c++/for-7.C: New test.
1962         PR c++/38348
1963         * testsuite/libgomp.c++/for-6.C: New test.
1965 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1967         PR testsuite/28870
1968         * testsuite/lib/libgomp.exp: Include new timeout library files.
1969         (libgomp_target_compile): Set timeout value from new proc.
1971 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
1973         PR libgomp/37938
1974         * config/linux/ia64/mutex.h: New.
1976 2008-11-04  Tobias Burnus  <burnus@net-b.de>
1978         PR libgomp/37935
1979         * libgomp.texi (Runtime library routines, environment variables):
1980         Update for OpenMP version 3.0.
1982 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1983             Steve Ellcey  <sje@cup.hp.com>
1985         * configure: Regenerate for new libtool.
1986         * Makefile.in: Ditto.
1987         * testsuite/Makefile.in: Ditto.
1989 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
1990             Andreas Tobler  <a.tobler@schweiz.org>
1992         * config/bsd/proc.c: New file.
1993         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
1994         * configure.ac: Check for header <sys/sysctl.h>
1995         * configure: Regenerate.
1996         * config.h.in: Likewise.
1998 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
2000         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
2002 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2004         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
2005         * Makefile.in: Regenerated.
2006         * testsuite/Makefile.in: Regenerated.
2008 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
2010         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
2011         depend on blddir if blddir exists.
2012         (libgomp_target_compile): Likewise.
2013         * testsuite/libgomp.c++/c++.exp: Likewise.
2014         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2016 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2018         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
2019         Do not list GPL as Invariant Section.
2021 2008-07-28  Ilie Garbacea  <ilie@mips.com>
2022             Chao-ying Fu  <fu@mips.com>
2024         * configure.tgt: Enable futex for MIPS.
2025         * config/linux/mips/futex.h: New file.
2027 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
2029         * team.c (gomp_team_end): Free team immediately if it has
2030         just one thread.
2032 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
2034         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
2035         * testsuite/libgomp.fortran/fortran.exp: Same.
2036         * testsuite/libgomp.c/c.exp: Same.
2037         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
2038         directory to library path first.
2040 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
2042         * env.c (parse_stacksize): Add cast to avoid warning.
2043         (parse_spincount): Likewise.
2045 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2047         * testsuite/libgomp.c/loop-10.c: New test.
2048         * libgomp.c/loop-3.c (main): Add lastprivate clause.
2049         * libgomp.c++/loop-6.C (main): Likewise.
2051         PR debug/36617
2052         * testsuite/libgomp.c/debug-1.c: New test.
2054 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2056         * testsuite/libgomp.c/nqueens-1.c: New test.
2058         PR c++/36523
2059         * testsuite/libgomp.c++/task-7.C: New function.
2061 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2063         * configure: Regenerate.
2065 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2067         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
2068         mutex when HAVE_SYNC_BUILTINS isn't defined.
2070 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2072         * libgomp.texi (omp_test_lock): Fix typo.
2074 2008-06-12  Tobias Burnus  <burnus@net-b.de>
2076         * omp_lib.f90.in: Add "implicit none".
2078 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2080         PR middle-end/36506
2081         * testsuite/libgomp.c/reduction-5.c: New test.
2083 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
2085         * libgomp.h (struct gomp_task): Add in_tied_task field.
2086         * task.c (gomp_init_task): Initialize it.
2087         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
2088         unconditionally.  Don't call gomp_team_barrier_wake if
2089         current task is implicit or if(0) from implicit and number of
2090         running tasks is equal to nthreads - 1.
2092         PR libgomp/36471
2093         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2094         omp_get_team_size_8): Fix pastos.
2096         PR libgomp/36469
2097         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
2098         * configure: Regenerated.
2099         * config.h.in: Regenerated.
2100         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
2101         defined.
2103 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
2105         PR bootstrap/36452
2106         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
2107         (GOMP_loop_ull_dynamic_start): Likewise.
2108         (GOMP_loop_ull_guided_start): Likewise.
2109         (GOMP_loop_ull_ordered_static_start): Likewise.
2110         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
2111         (GOMP_loop_ull_ordered_guided_start): Likewise.
2113 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2114             Richard Henderson  <rth@redhat.com>
2115             Ulrich Drepper  <drepper@redhat.com>
2116             Jakob Blomer  <jakob.blomer@ira.uka.de>
2118         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
2119         Substitute also OMP_*LOCK_25*.
2120         * configure: Regenerated.
2121         * config.h.in: Regenerated.
2122         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
2123         ptrlock.c and task.c.
2124         * Makefile.in: Regenerated.
2125         * testsuite/Makefile.in: Regenerated.
2126         * task.c: New file.
2127         * loop_ull.c: New file.
2128         * iter_ull.c: New file.
2129         * libgomp.h: Include ptrlock.h.
2130         (enum gomp_task_kind): New type.
2131         (struct gomp_team): Add task_lock, task_queue, task_count,
2132         task_running_count, single_count fields.  Add
2133         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
2134         Remove work_share_lock, generation_mask,
2135         oldest_live_gen, num_live_gen and init_work_shares fields, add
2136         work work_share_list_alloc, work_share_list_free and work_share_chunk
2137         fields.  Change work_shares from pointer to pointers into an array.
2138         Change ordered_release field into gomp_sem_t ** from flexible array
2139         member.  Add implicit_task and initial_work_shares fields.
2140         Move close to the end of the struct.
2141         (struct gomp_team_state): Add single_count, last_work_share,
2142         active_level and level fields, remove work_share_generation.
2143         (gomp_barrier_handle_tasks): New prototype.
2144         (gomp_finish_task): New inline function.
2145         (struct gomp_work_share): Move chunk_size, end, incr into
2146         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2147         next_ll fields.  Reshuffle fields.  Add next_alloc,
2148         next_ws, next_free and inline_ordered_team_ids fields, change
2149         ordered_team_ids into pointer from flexible array member.
2150         Add mode field.  Put lock and next into a different cache line
2151         from most of the write-once fields.
2152         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2153         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2154         gomp_iter_ull_guided_next): New prototypes.
2155         (gomp_new_icv): New prototype.
2156         (struct gomp_thread): Add thread_pool and task fields.
2157         (struct gomp_thread_pool): New type.
2158         (gomp_new_team): New prototype.
2159         (gomp_team_start): Change type of last argument.
2160         (gomp_new_work_share): Removed.
2161         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2162         (gomp_work_share_init_done): New static inline.
2163         (gomp_throttled_spin_count_var, gomp_available_cpus,
2164         gomp_managed_threads): New extern decls.
2165         (gomp_init_task): New prototype.
2166         (gomp_spin_count_var): New extern var decl.
2167         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2168         or no alias support, or if not PIC.
2169         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2170         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2171         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2172         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2173         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2174         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2175         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2176         gomp_test_nest_lock_25): New prototypes.
2177         (omp_lock_symver, strong_alias): Define.
2178         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2179         decls.
2180         (gomp_end_task): New.
2181         (struct gomp_task_icv, gomp_global_icv): New.
2182         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2183         (struct gomp_task): New.
2184         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2185         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2186         (gomp_icv): New.
2187         (gomp_schedule_type): Reorder enum to match
2188         omp_sched_t.
2189         * team.c (struct gomp_thread_start_data): Add thread_pool and task
2190         fields.
2191         (gomp_thread_start): Add gomp_team_barrier_wait call.
2192         For non-nested case remove clearing of docked thread thr fields.
2193         Use pool fields instead of global gomp_* variables.  Use
2194         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
2195         Create tasks for each member thread.
2196         (free_team): Only destroy team barrier, task_lock here and free it.
2197         (gomp_free_thread): Free last_team if non-NULL.
2198         (gomp_team_end): Call gomp_team_barrier_wait instead of
2199         gomp_barrier_wait.  For nested case call one extra
2200         gomp_barrier_wait.  Move here some destruction from free_team.
2201         Call free_team on pool->last_team if any, rather than freeing
2202         current team.  Destroy work_share_list_free_lock ifndef
2203         HAVE_SYNC_BUILTINS.
2204         (gomp_new_icv): New function.
2205         (gomp_threads, gomp_threads_size, gomp_threads_used,
2206         gomp_threads_dock): Removed.
2207         (gomp_thread_destructor): New variable.
2208         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2209         functions.
2210         (gomp_team_start): Create new pool if current thread doesn't have
2211         one.  Use pool fields instead of global gomp_* variables.
2212         Initialize thread_pool field for new threads.  Clear single_count.
2213         Change last argument from ws to team, don't create
2214         new team, set ts.work_share to &team->work_shares[0] and clear
2215         ts.last_work_share.  Don't clear ts.work_share_generation.
2216         If number of threads changed, adjust atomically gomp_managed_threads.
2217         Use gomp_init_task instead of gomp_new_task,
2218         set thr->task to the corresponding implicit_task array entry.
2219         Create tasks for each member thread.  Initialize ts.level.
2220         (initialize_team): Call pthread_key_create on
2221         gomp_thread_destructor.
2222         (team_destructor): New function.
2223         (new_team): Removed.
2224         (gomp_new_team): New function.
2225         (free_team): Free gomp_work_share blocks chained through next_alloc,
2226         instead of freeing work_shares and destroying work_share_lock.
2227         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
2228         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
2229         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2230         of gomp_barrier_wait.
2231         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2232         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
2233         if gomp_work_share_start returned true.  Don't unlock ws->lock.
2234         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2235         of gomp_barrier_wait.
2236         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
2237         gomp_work_share_init_done if gomp_work_share_start returned true.
2238         Don't unlock ws->lock.
2239         * work.c: Include stddef.h.
2240         (free_work_share): Use work_share_list_free_lock instead
2241         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
2242         Call gomp_fini_work_share and then either free ws if orphaned, or
2243         put it into work_share_list_free list of the current team.
2244         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2245         functions.
2246         (gomp_work_share_start, gomp_work_share_end,
2247         gomp_work_share_end_nowait): Rewritten.
2248         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2249         (openmp_version): Set to 200805.
2250         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2251         omp_sched_guided, omp_sched_auto): New parameters.
2252         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2253         omp_set_max_active_levels, omp_get_max_active_levels,
2254         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2255         omp_get_active_level): New interfaces.
2256         * omp_lib.h.in (openmp_version): Set to 200805.
2257         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2258         omp_sched_guided, omp_sched_auto): New parameters.
2259         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2260         omp_set_max_active_levels, omp_get_max_active_levels,
2261         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2262         omp_get_active_level): New externals.
2263         * loop.c: Include limits.h.
2264         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2265         GFS_AUTO.
2266         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2267         Likewise.  Use gomp_icv.
2268         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2269         ts.static_trip here.
2270         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2271         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
2272         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2273         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
2274         don't unlock ws->lock, otherwise lock it.
2275         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2276         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
2277         (gomp_parallel_loop_start): Call gomp_new_team instead of
2278         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
2279         Adjust gomp_team_start caller.  Pass 0 as second argument to
2280         gomp_resolve_num_threads.
2281         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2282         If adding ws->chunk_size nthreads + 1 times after end won't
2283         overflow, set ws->mode to 1.
2284         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2285         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2286         GOMP_loop_ull_ordered_static_start,
2287         GOMP_loop_ull_ordered_dynamic_start,
2288         GOMP_loop_ull_ordered_guided_start,
2289         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2290         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2291         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2292         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2293         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2294         prototypes.
2295         * libgomp.map: Export lock routines also @@OMP_2.0.
2296         (GOMP_loop_ordered_dynamic_first,
2297         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2298         GOMP_loop_ordered_static_first): Remove.
2299         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2300         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2301         GOMP_loop_ull_ordered_dynamic_next,
2302         GOMP_loop_ull_ordered_dynamic_start,
2303         GOMP_loop_ull_ordered_guided_next,
2304         GOMP_loop_ull_ordered_guided_start,
2305         GOMP_loop_ull_ordered_runtime_next,
2306         GOMP_loop_ull_ordered_runtime_start,
2307         GOMP_loop_ull_ordered_static_next,
2308         GOMP_loop_ull_ordered_static_start,
2309         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2310         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2311         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2312         (omp_set_schedule, omp_get_schedule,
2313         omp_get_thread_limit, omp_set_max_active_levels,
2314         omp_get_max_active_levels, omp_get_level,
2315         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2316         omp_set_schedule_, omp_set_schedule_8_,
2317         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2318         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2319         omp_get_max_active_levels_, omp_get_level_,
2320         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2321         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2322         New exports @@OMP_3.0.
2323         * omp.h.in (omp_sched_t): New type.
2324         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2325         omp_set_max_active_levels, omp_get_max_active_levels,
2326         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2327         omp_get_active_level): New prototypes.
2328         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2329         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2330         gomp_thread_limit_var, gomp_remaining_threads_count,
2331         gomp_remaining_threads_lock): New variables.
2332         (parse_spincount): New function.
2333         (initialize_env): Call gomp_init_num_threads unconditionally.
2334         Initialize gomp_available_cpus.  Call parse_spincount,
2335         initialize gomp_{,throttled_}spin_count_var
2336         depending on presence and value of OMP_WAIT_POLICY and
2337         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
2338         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2339         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
2340         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
2341         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
2342         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2343         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2344         (gomp_global_icv): New.
2345         (parse_schedule): Use it.  Parse "auto".
2346         (omp_set_num_threads): Use gomp_icv.
2347         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2348         Likewise.
2349         (omp_get_max_threads): Move from parallel.c.
2350         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2351         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2352         add ialias.
2353         (parse_stacksize, parse_wait_policy): New functions.
2354         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2355         both wrappers for compatibility and new locks.
2356         (omp_set_schedule, omp_get_schedule,
2357         omp_get_thread_limit, omp_set_max_active_levels,
2358         omp_get_max_active_levels, omp_get_level,
2359         omp_get_ancestor_thread_num, omp_get_team_size,
2360         omp_get_active_level): New ialias_redirect.
2361         (omp_set_schedule_, omp_set_schedule_8_,
2362         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2363         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2364         omp_get_max_active_levels_, omp_get_level_,
2365         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2366         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2367         New functions.
2368         * parallel.c: Include limits.h.
2369         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2370         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2371         argument to gomp_team_start.  Pass 0 as second argument to
2372         gomp_resolve_num_threads.
2373         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2374         if gomp_thread_limit_var != ULONG_MAX.
2375         (omp_in_parallel): Implement using ts.active_level.
2376         (omp_get_max_threads): Move to env.c.
2377         (omp_get_level, omp_get_ancestor_thread_num,
2378         omp_get_team_size, omp_get_active_level): New functions,
2379         add ialias.
2380         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2381         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2382         gomp_iter_dynamic_next instead of the _locked variant and don't take
2383         lock around it, otherwise acquire it before calling
2384         gomp_iter_dynamic_next_locked.
2385         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2386         gomp_iter_dynamic_next instead of the _locked variant and don't take
2387         lock around it.
2388         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2389         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2390         Adjust gomp_team_start caller.  Pass count as second argument to
2391         gomp_resolve_num_threads, don't adjust num_threads after the call.
2392         Use gomp_icv.
2393         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2394         ws->chunk_size by incr.
2395         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2396         code.
2397         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2398         types.
2399         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2400         (omp_check_defines): Check even the compat defines.
2401         * config/linux/ptrlock.c: New file.
2402         * config/linux/ptrlock.h: New file.
2403         * config/linux/wait.h: New file.
2404         * config/posix/ptrlock.c: New file.
2405         * config/posix/ptrlock.h: New file.
2406         * config/linux/bar.h (gomp_team_barrier_wait,
2407         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2408         (gomp_team_barrier_set_task_pending,
2409         gomp_team_barrier_clear_task_pending,
2410         gomp_team_barrier_set_waiting_for_tasks,
2411         gomp_team_barrier_waiting_for_tasks,
2412         gomp_team_barrier_done): New inlines.
2413         (gomp_barrier_t): Rewritten.
2414         (gomp_barrier_state_t): New typedef.
2415         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2416         gomp_barrier_wait_start): Rewritten.
2417         (gomp_barrier_wait_end): Change second argument to
2418         gomp_barrier_state_t.
2419         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2420         inlines.
2421         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2422         futex.h.
2423         (gomp_barrier_wait_end): Rewritten.
2424         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2425         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2426         * config/posix/bar.h (gomp_barrier_t): Add generation field.
2427         (gomp_barrier_state_t): New typedef.
2428         (gomp_team_barrier_wait,
2429         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2430         (gomp_barrier_wait_start): Or all but low 2 bits from generation
2431         into the return value.  Return gomp_barrier_state_t.
2432         (gomp_team_barrier_set_task_pending,
2433         gomp_team_barrier_clear_task_pending,
2434         gomp_team_barrier_set_waiting_for_tasks,
2435         gomp_team_barrier_waiting_for_tasks,
2436         gomp_team_barrier_done): New inlines.
2437         (gomp_barrier_wait_end): Change second argument to
2438         gomp_barrier_state_t.
2439         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2440         inlines.
2441         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2442         (gomp_barrier_wait_end): Change second argument to
2443         gomp_barrier_state_t.
2444         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2445         gomp_team_barrier_wake): New functions.
2446         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2447         futex.h.
2448         (gomp_futex_wake, gomp_futex_wait): New variables.
2449         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2450         * config/linux/lock.c: Rewrite to make locks task owned,
2451         for backwards compatibility provide the old entrypoints
2452         if symbol versioning.  Include wait.h instead of libgomp.h and
2453         futex.h.
2454         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2455         * config/posix95/lock.c: Rewrite to make locks task owned,
2456         for backwards compatibility provide the old entrypoints
2457         if symbol versioning.
2458         * config/posix/lock.c: Rewrite to make locks task owned,
2459         for backwards compatibility provide the old entrypoints
2460         if symbol versioning.
2461         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2462         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2463         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2464         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2465         (sys_futex0): Return error code.
2466         (futex_wake, futex_wait): If ENOSYS was returned, clear
2467         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2468         (cpu_relax, atomic_write_barrier): New static inlines.
2469         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2470         (futex_wake, futex_wait): If ENOSYS was returned, clear
2471         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2472         (cpu_relax, atomic_write_barrier): New static inlines.
2473         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2474         (sys_futex0): Return error code.
2475         (futex_wake, futex_wait): If ENOSYS was returned, clear
2476         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2477         (cpu_relax, atomic_write_barrier): New static inlines.
2478         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2479         (sys_futex0): Return error code.
2480         (futex_wake, futex_wait): If ENOSYS was returned, clear
2481         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2482         (cpu_relax, atomic_write_barrier): New static inlines.
2483         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2484         (sys_futex0): Return error code.
2485         (futex_wake, futex_wait): If ENOSYS was returned, clear
2486         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2487         (cpu_relax, atomic_write_barrier): New static inlines.
2488         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2489         (sys_futex0): Return error code.
2490         (futex_wake, futex_wait): If ENOSYS was returned, clear
2491         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2492         (cpu_relax, atomic_write_barrier): New static inlines.
2493         * config/linux/sem.c: Include wait.h instead of libgomp.h and
2494         futex.h.
2495         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2496         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2497         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2498         types.
2499         (omp_nest_lock_t): Change owner into void *, add lock field.
2500         * config/posix95/omp-lock.h: Include semaphore.h.
2501         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2502         (omp_lock_t): Use sem_t instead of mutex if semaphores
2503         aren't broken.
2504         (omp_nest_lock_t): Likewise.  Change owner to void *.
2505         * config/posix/omp-lock.h: Include semaphore.h.
2506         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2507         (omp_lock_t): Use sem_t instead of mutex if semaphores
2508         aren't broken.
2509         (omp_nest_lock_t): Likewise.  Add owner field.
2511 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2513         * testsuite/libgomp.c/collapse-1.c: New test.
2514         * testsuite/libgomp.c/collapse-2.c: New test.
2515         * testsuite/libgomp.c/collapse-3.c: New test.
2516         * testsuite/libgomp.c/icv-1.c: New test.
2517         * testsuite/libgomp.c/icv-2.c: New test.
2518         * testsuite/libgomp.c/lib-2.c: New test.
2519         * testsuite/libgomp.c/lock-1.c: New test.
2520         * testsuite/libgomp.c/lock-2.c: New test.
2521         * testsuite/libgomp.c/lock-3.c: New test.
2522         * testsuite/libgomp.c/loop-4.c: New test.
2523         * testsuite/libgomp.c/loop-5.c: New test.
2524         * testsuite/libgomp.c/loop-6.c: New test.
2525         * testsuite/libgomp.c/loop-7.c: New test.
2526         * testsuite/libgomp.c/loop-8.c: New test.
2527         * testsuite/libgomp.c/loop-9.c: New test.
2528         * testsuite/libgomp.c/nested-3.c: New test.
2529         * testsuite/libgomp.c/nestedfn-6.c: New test.
2530         * testsuite/libgomp.c/sort-1.c: New test.
2531         * testsuite/libgomp.c/task-1.c: New test.
2532         * testsuite/libgomp.c/task-2.c: New test.
2533         * testsuite/libgomp.c/task-3.c: New test.
2534         * testsuite/libgomp.c/task-4.c: New test.
2535         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2536         to C++ testsuite default compiler options.
2537         * testsuite/libgomp.c++/collapse-1.C: New test.
2538         * testsuite/libgomp.c++/collapse-2.C: New test.
2539         * testsuite/libgomp.c++/ctor-10.C: New test.
2540         * testsuite/libgomp.c++/for-1.C: New test.
2541         * testsuite/libgomp.c++/for-2.C: New test.
2542         * testsuite/libgomp.c++/for-3.C: New test.
2543         * testsuite/libgomp.c++/for-4.C: New test.
2544         * testsuite/libgomp.c++/for-5.C: New test.
2545         * testsuite/libgomp.c++/loop-8.C: New test.
2546         * testsuite/libgomp.c++/loop-9.C: New test.
2547         * testsuite/libgomp.c++/loop-10.C: New test.
2548         * testsuite/libgomp.c++/task-1.C: New test.
2549         * testsuite/libgomp.c++/task-2.C: New test.
2550         * testsuite/libgomp.c++/task-3.C: New test.
2551         * testsuite/libgomp.c++/task-4.C: New test.
2552         * testsuite/libgomp.c++/task-5.C: New test.
2553         * testsuite/libgomp.c++/task-6.C: New test.
2554         * testsuite/libgomp.fortran/allocatable1.f90: New test.
2555         * testsuite/libgomp.fortran/allocatable2.f90: New test.
2556         * testsuite/libgomp.fortran/allocatable3.f90: New test.
2557         * testsuite/libgomp.fortran/allocatable4.f90: New test.
2558         * testsuite/libgomp.fortran/collapse1.f90: New test.
2559         * testsuite/libgomp.fortran/collapse2.f90: New test.
2560         * testsuite/libgomp.fortran/collapse3.f90: New test.
2561         * testsuite/libgomp.fortran/collapse4.f90: New test.
2562         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2563         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2564         * testsuite/libgomp.fortran/lib4.f90: New test.
2565         * testsuite/libgomp.fortran/lock-1.f90: New test.
2566         * testsuite/libgomp.fortran/lock-2.f90: New test.
2567         * testsuite/libgomp.fortran/nested1.f90: New test.
2568         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2569         * testsuite/libgomp.fortran/strassen.f90: New test.
2570         * testsuite/libgomp.fortran/tabs1.f90: New test.
2571         * testsuite/libgomp.fortran/tabs2.f: New test.
2572         * testsuite/libgomp.fortran/task1.f90: New test.
2573         * testsuite/libgomp.fortran/task2.f90: New test.
2574         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2575         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2576         * testsuite/libgomp.c/pr26943-2.c: Likewise.
2577         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2578         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2580 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
2582         PR c++/36308
2583         * testsuite/libgomp.c++/ctor-11.C: New test.
2584         * testsuite/libgomp.c++/ctor-12.C: New test.
2586 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2588         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2590 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2592         PR middle-end/36106
2593         * testsuite/libgomp.c/atomic-5.c: New test.
2594         * testsuite/libgomp.c/atomic-6.c: New test.
2595         * testsuite/libgomp.c/autopar-1.c: New test.
2597 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2599         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2600         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2601         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2602         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2603         * configure: Regenerate.
2604         * Makefile.in, testsuite/Makefile.in: Likewise.
2606 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2608         PR bootstrap/35457
2609         * aclocal.m4: Regenerate.
2610         * configure: Regenerate.
2612 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2614         PR middle-end/35611
2615         * testsuite/libgomp.c/atomic-4.c: New test.
2617         PR libgomp/35625
2618         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2619         (gomp_iter_guided_next): Likewise.
2620         * testsuite/libgomp.c/pr35625.c: New test.
2622 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2624         * aclocal.m4: Regenerate.
2625         * configure: Likewise.
2626         * Makefile.in: Likewise.
2627         * testsuite/Makefile.in: Likewise.
2629 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
2631         PR middle-end/35185
2632         * testsuite/libgomp.c++/pr35185.C: New test.
2634 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2636         PR middle-end/35549
2637         * testsuite/libgomp.c/pr35549.c: New test.
2639 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2641         * testsuite/libgomp.c/atomic-3.c: New test.
2643 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2645         PR fortran/33197
2646         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2647         .F08 file suffixes.
2649 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
2651         PR libgomp/33131
2652         * configure.ac: Add ACX_HEADER_STRING.
2653         * env.c: Include strings.h.
2654         * aclocal.m4: Regenerate.
2655         * config.h.in: Regenerate.
2656         * configure: Regenerate.
2657         * Makefile.in: Regenerate.
2658         * testsuite/Makefile.in: Regenerate.
2660 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2662         PR middle-end/35196
2663         * testsuite/libgomp.c/pr35196.c: New test.
2665         PR middle-end/35130
2666         * testsuite/libgomp.fortran/pr35130.f90: New test.
2667         * testsuite/libgomp.c/pr35130.c: New test.
2669 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
2671         PR middle-end/33880
2672         * testsuite/libgomp.c/pr33880.c: New test.
2673         * testsuite/libgomp.fortran/pr33880.f90: New test.
2675 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2677         * configure: Regenerate.
2679 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
2681         * configure.ac: Move futex checking into ../config/futex.m4.
2682         * configure: Rebuilt.
2683         * aclocal.m4: Rebuilt.
2684         * Makefile.in: Rebuilt.
2686         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2687         2007-10-15 ../config/tls.m4 change.
2689 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
2691         PR c++/34513
2692         * testsuite/libgomp.c/pr34513.c: New test.
2693         * testsuite/libgomp.c++/pr34513.C: New test.
2695 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
2697         PR target/32765
2698         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2700 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
2702         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
2704 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
2706         * testsuite/libgomp.c/private-1.c: New test.
2708 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
2709             Paolo Bonzini  <bonzini@gnu.org>
2711         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
2712         instead of 'VPATH ='.
2713         * Makefile.in: Regenerate.
2715 2007-11-23  Matthias Klose  <doko@ubuntu.com>
2717         * configure.ac: Adjust makeinfo version check.
2718         * configure: Regenerate.
2720 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2722         PR fortran/34020
2723         * testsuite/libgomp.fortran/pr34020.f90: New test.
2725 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2727         PR c++/33894
2728         * testsuite/libgomp.c++/atomic-1.C: New test.
2730 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
2732         PR libgomp/33275
2733         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2734         Make x and y integers rather than (implicit) reals.  Add private (j)
2735         clause to the last omp parallel.
2737 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
2739         * configure: Regenerate following changes to ../config/tls.m4.
2741 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
2743         * testsuite/libgomp.fortran/stack.f90: New test.
2745 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
2747         * config/mingw32/proc.c: New file.
2749 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2751         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2752         (main): Use __get_cpuid to get i386 target fetaures.
2753         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2754         (main): Use __get_cpuid to get x86_64 target fetaures.
2756 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
2758         PR target/32765
2759         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2760         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2762 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2764         PR fortran/32550
2765         * testsuite/libgomp.fortran/pr32550.f90: New test.
2766         * testsuite/libgomp.fortran/crayptr2.f90: New test.
2768 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2770         * aclocal.m4: Regenerated.
2772 2007-07-05  Tobias Burnus  <burnus@net-b.de>
2774         PR fortran/32359
2775         * testsuite/libgomp.fortran/pr32359.f90: New.
2777 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2779         PR libgomp/32468
2780         * sections.c (GOMP_parallel_sections_start): Only decrease
2781         number of threads to COUNT if dyn_var is true.
2782         * testsuite/libgomp.c/pr32468.c: New test.
2784 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2786         PR libgomp/26308
2787         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2789 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2791         PR middle-end/32362
2792         * testsuite/libgomp.c/pr32362-1.c: New test.
2793         * testsuite/libgomp.c/pr32362-2.c: New test.
2794         * testsuite/libgomp.c/pr32362-3.c: New test.
2796 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
2798         * team.c (gomp_team_start): Fix setting up thread_attr
2799         stack size.
2801 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2803         * configure: Regenerate.
2805 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2807         * Makefile.in: Regenerate.
2808         * configure: Regenerate.
2809         * aclocal.m4: Regenerate.
2810         * testsuite/Makefile.in: Regenerate.
2812 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
2814         * config/linux/proc.c: New file.
2816         PR libgomp/28482
2817         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2819 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
2821         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2823 2007-04-16  Matthias Klose  <doko@debian.org>
2825         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
2826         flags if not building with -m64.
2827         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
2828         flag for i?86-*-* targets, if current target matches -m64.
2830 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
2832         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
2833         * Makefile.in: Regenerate.
2835 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2837         PR testsuite/31369
2838         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
2839         ld_library_path.
2840         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2842 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
2844         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
2845         decls.
2846         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
2847         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
2848         (parse_affinity): New function.
2849         (initialize_env): Call it and gomp_init_affinity.
2850         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
2851         create new pthread_attr_t and call gomp_init_thread_affinity
2852         on it for each thread before passing the attribute to pthread_create.
2853         * config/linux/affinity.c: New file.
2854         * config/posix/affinity.c: New file.
2855         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
2856         * configure: Rebuilt.
2857         * config.h.in: Rebuilt.
2858         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
2859         * Makefile.in: Rebuilt.
2861 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
2863         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
2864         *-*-darwin*.
2865         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
2866         and use it if found.
2868 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
2870         * testsuite/config/default.exp: New file.
2871         * testsuite/lib/libgomp.exp: New file.
2872         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
2873         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
2874         load_lib *, load_gcc_lib *): Move to libgomp.exp.
2875         (libgomp_load): Remove.
2876         * testsuite/lib/libgomp.exp (libgomp_init): Compute
2877         always_ld_library_path, not ld_library_path.  Set additional_flags
2878         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
2879         (target_compile): Do not call libgomp_init.  Append lang_library_path
2880         and lang_link_flags to options.
2881         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
2882         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
2883         here.
2884         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
2885         always_ld_library_path.  Set LD_LIBRARY_PATH here.
2886         * testsuite/libgomp.fortran/fortran.exp: Ditto.
2887         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
2888         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
2889         CX8 flag.
2890         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
2891         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
2892         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
2893         * testsuite/libgomp.c/pr29947-1.c: Ditto.
2894         * testsuite/libgomp.c/atomic-10.c: Ditto.
2896 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
2898         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
2899         dg-final cleanup-modules line.
2900         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
2901         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
2902         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
2903         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2904         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2905         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2906         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2908 2007-03-18  Andreas Schwab  <schwab@suse.de>
2910         * acinclude.m4: Adjust regular expression for ld version
2911         extraction.
2912         * configure: Regenerate.
2914 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2916         * Makefile.am: Add install-pdf target as copied from
2917         automake v1.10 rules.
2918         * Makefile.in: Regenerate
2920 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
2922         PR libgomp/28486
2923         * configure: Regenerate.
2925         PR c++/30703
2926         * testsuite/libgomp.c++/pr30703.C: New test.
2928 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
2930         Revert:
2931         2006-07-05  Eric Christopher  <echristo@apple.com>
2932         * configure.ac: Depend addition of -pthread on host OS.
2933         * configure: Regenerate.
2935 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2937         * libgomp.texi: Fix spacing after abbreviations.
2939 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
2941         PR libgomp/30546
2942         * configure.ac: Add check for makeinfo
2943         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
2944         if an appropiate version of makeinfo is found.
2945         * aclocal.m4: Regenerated.
2946         * configure: Regenerated.
2947         * Makefile.in: Regenerated.
2948         * testsuite/Makefile.in: Regenerated.
2950 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
2952         PR libgomp/30540
2953         * libgomp.texi: More about implementation-dependent settings.
2955 2007-01-26  Tobias Burnus  <burnus@net-b.de>
2957         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
2959 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
2961         PR middle-end/30494
2962         * testsuite/libgomp.c/pr30494.c: New test.
2964 2007-01-15  Tom Tromey  <tromey@redhat.com>
2966         * configure: Rebuilt.
2967         * configure.ac: Fixed comment.
2969 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
2971         * libgomp.texi: Document implementation specific default values of
2972         environment variables.
2974 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
2976         PR libgomp/28209
2977         * libgomp.texi: New file.
2978         * configure.ac: Add --enable-generated-files-in-srcdir option.
2979         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
2980         files to srcdir.
2981         * Makefile.in: Regenerated.
2982         * config.h.in: Regenerated.
2983         * testsuite/Makefile.in: Regenerated.
2984         * NOTES: Removed.
2986 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
2988         PR libgomp/29949
2989         * env.c (omp_set_num_threads): Set illegal thread count to 1.
2991 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2993         * configure: Regenerate.
2995 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
2997         PR libgomp/29947
2998         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
2999         start if there shouldn't be any loop iterations.
3000         (gomp_loop_ordered_static_start): Remove start == end test.
3001         * testsuite/libgomp.c/pr29947-1.c: New test.
3002         * testsuite/libgomp.c/pr29947-2.c: New test.
3004 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
3006         * configure.tgt: Force initial-exec TLS model on Linux only.
3008 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
3010         * configure: Regenerated.
3012 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
3014         * env.c (parse_schedule): Reject out of range values.
3015         (parse_unsigned_long): Reject out of range, negative or zero values.
3017 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
3019         PR fortran/29629
3020         * testsuite/libgomp.fortran/pr29629.f90: New test.
3022 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3024         PR libgomp/29494
3025         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
3026         * config/posix95: New directory.
3027         * config/posix95/omp-lock.h: New file.
3028         * config/posix95/lock.c: Likewise.
3030 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
3032         * aclocal.m4: Regenerate.
3033         * configure: Regenerate.
3035 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3037         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
3038         '<' to '<='.
3040 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3042         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
3043         test.
3044         * configure: Regenerate.
3045         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
3047 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
3049         PR middle-end/25261
3050         PR middle-end/28790
3051         * testsuite/libgomp.c/nestedfn-4.c: New test.
3052         * testsuite/libgomp.c/nestedfn-5.c: New test.
3053         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
3055         PR fortran/29097
3056         * testsuite/libgomp.fortran/condinc1.f: New test.
3057         * testsuite/libgomp.fortran/condinc2.f: New test.
3058         * testsuite/libgomp.fortran/condinc3.f90: New test.
3059         * testsuite/libgomp.fortran/condinc4.f90: New test.
3060         * testsuite/libgomp.fortran/condinc1.inc: New file.
3062 2006-09-18  Tom Tromey  <tromey@redhat.com>
3064         * configure: Rebuilt.
3066 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
3068         PR c/28768
3069         PR preprocessor/14634
3070         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
3071         to AC_DEFINE.
3072         * configure: Regenerate.
3074 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
3076         * testsuite/libgomp.fortran/reduction3.f90: Change
3077         -2147483648 to -huge(i)-1 to avoid overflow.
3078         * testsuite/libgomp.fortran/reduction4.f90: Change
3079         Z'ffffffff' to not(0) to avoid overflow.
3081 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3083         PR libgomp/25938
3084         * Makefile.am (libsubincludedir): New.
3085         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
3086         * Makefile.in: Regenerate.
3088 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
3090         PR libgomp/28725
3091         * env.c: Include ctype.h.
3092         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
3093         leading and/or trailing whitespace and compare strings case
3094         insensitively.
3096 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
3098         PR fortran/28390
3099         * testsuite/libgomp.fortran/pr28390.f: New test.
3101 2006-07-05  Eric Christopher  <echristo@apple.com>
3103         * configure.ac: Depend addition of -pthread on host OS.
3104         * configure: Regenerate.
3106 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
3108         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
3109         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
3110         defined.
3112 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
3114         PR libgomp/26175
3115         PR libgomp/26477
3116         * configure.ac: If neither --enable-linux-futex nor
3117         --disable-linux-futex is passed, determine the default by checking
3118         for compiling and/or running against NPTL.  With --enable-linux-futex,
3119         check if SYS_gettid and SYS_futex are defined.
3120         * configure: Rebuilt.
3122 2006-06-14  Richard Henderson  <rth@redhat.com>
3124         PR libgomp/28008
3125         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
3126         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
3128 2006-06-09  Richard Henderson  <rth@redhat.com>
3130         * env.c (gomp_nthreads_var): Change to unsigned long.
3131         (gomp_run_sched_chunk): Likewise.
3132         (parse_unsigned_long): Rename from parse_num_threads and generalize.
3133         (initialize_env): Initialize gomp_thread_attr.
3134         * libgomp.h (gomp_nthreads_var): Update decl.
3135         (gomp_run_sched_chunk): Likewise.
3136         (gomp_thread_attr): Declare.
3137         * team.c (gomp_thread_attr): Export.
3138         (initialize_team): Don't initialize it.
3140 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
3142         PR fortran/27916
3143         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3144         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3146 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3148         * config/mingw32/time.c: New file.
3149         * configure.tgt: Use it.
3151 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3153         * Makefile.am: Add install-html target. Add install-html to .PHONY
3154         * Makefile.in: Regenerate.
3156 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3158         PR libgomp/27612
3159         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3160         * testsuite/libgomp.c/critical-1.c: Likewise.
3161         * testsuite/libgomp.c/loop-1.c: Likewise.
3162         * testsuite/libgomp.c/loop-2.c: Likewise.
3163         * testsuite/libgomp.c/single-1.c: Likewise.
3164         * testsuite/libgomp.c/ordered-1.c: Likewise.
3165         * testsuite/libgomp.c/ordered-2.c: Likewise.
3167 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3169         PR middle-end/27416
3170         * libgomp.fortran/pr27416-1.f90: New test.
3172 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
3174         PR fortran/27395
3175         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3176         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3178 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3180         PR c++/26943
3181         * testsuite/libgomp.c/pr26943-1.c: New test.
3182         * testsuite/libgomp.c/pr26943-2.c: New test.
3183         * testsuite/libgomp.c/pr26943-3.c: New test.
3184         * testsuite/libgomp.c/pr26943-4.c: New test.
3185         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3186         * testsuite/libgomp.c++/pr26943.C: New test.
3188 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3190         PR middle-end/27337
3191         * testsuite/libgomp.c++/pr27337.C: New test.
3193 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3195         PR c/26171
3196         * testsuite/libgomp.c/pr26171.c: New test.
3198 2006-04-25  Richard Henderson  <rth@redhat.com>
3200         PR libgomp/25865
3201         * configure.ac: Use GCC_CHECK_TLS.
3202         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3203         * Makefile.in, aclocal.m4, configure: Regenerate.
3205 2006-04-10  Matthias Klose  <doko@debian.org>
3207         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3208         directory names containing underscores.
3210 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
3212         PR c++/26691
3213         * testsuite/libgomp.c++/pr26691.C: New test.
3215 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3217         * testsuite/libgomp.fortran/retval2.f90: New test.
3219 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3221         * testsuite/libgomp.c++: New directory.
3223 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
3225         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3226         * config/posix/sem.c: Implement the above.
3228 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
3230         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3231         define HAVE_BROKEN_POSIX_SEMAPHORES.
3232         * configure: Rebuilt.
3233         * config.h.in: Rebuilt.
3235 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3237         PR bootstrap/26161
3238         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3239         for the other pthread check.
3240         * configure: Regenerate.
3241         * config.h.in: Regenerate.
3243 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3245         PR libgomp/25938
3246         PR libgomp/25984
3247         * Makefile.am (fincludedir): New variable.
3248         (nodist_include_HEADERS): Remove Fortran files.
3249         (nodist_finclude_HEADERS): New variable.
3250         * Makefile.in: Regenerated.
3252 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3254         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3255         Remove tests for returning assumed character length arrays.
3257 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3258             John David Anglin  <dave@hiauly1.hia.nrc.ca>
3260         PR libgomp/25936
3261         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3263 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
3265         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3267 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3269         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3270         part of LD_LIBRARY_PATH manually.
3272 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3274         PR libgomp/25852
3275         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3276         libgomp_init.
3278 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3280         PR libgomp/25884
3281         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3282         * configure.ac (PERL): Don't set.
3283         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3284         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3285         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3286         * omp.h.in: Wrap the new configure substitutions with @ characters.
3287         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3288         * aclocal.m4, configure, Makefile.in: Regenerate.
3289         * mkomp_h.pl: Delete.
3291 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3293         PR libgomp/25259
3294         * configure.ac: Use GCC_HEADER_STDINT.
3295         * libgomp.h: Include gstdint.h.
3296         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3297         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3299 2006-01-24  Richard Henderson  <rth@redhat.com>
3301         PR libgomp/25942
3302         * configure.ac: Add AM_MAINTAINER_MODE.
3303         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3305 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
3307         * Makefile.in: Regenerate.
3308         * testsuite/Makefile.in: Regenerate.
3309         * aclocal.m4: Regenerate.
3311 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
3313         * config/posix/proc.c: Conditional include of sys/loadavg.h for
3314         Solaris.
3315         * configure.ac: Add check for loadavg.h.
3316         (link_gomp): Adjust comment.
3317         * configure: Regenerate.
3318         * config.h.in: Regenerate.
3320 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
3322         PR libgomp/25877
3323         * configure.ac: Remove check for alloca.h.
3324         * configure: Regenerate.
3325         * config.h.in: Regenerate.
3326         * libgomp.h: define gomp_alloca to be __builtin_alloca.
3327         * team.c: Remove use of alloca.h.
3328         Call gomp_alloca instead of alloca.
3330 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
3332         PR libgomp/25877
3333         * team.c: Add include of alloca.h.
3334         * configure.ac: Add check for alloca.h.
3335         * configure: Regenerate.
3336         * config.h.in: Regenerate.
3338 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3340         PR fortran/25219
3341         * testsuite/libgomp.fortran/pr25219.f90: New test.
3343 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
3345         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3346         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3347         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3348         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3349         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3350         testsuite/libgomp.fortran/threadprivate1.f90,
3351         testsuite/libgomp.fortran/threadprivate2.f90,
3352         testsuite/libgomp.fortran/threadprivate3.f90,
3353         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3354         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3355         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3356         effective-target to TLS runtime.
3358         * testsuite/libgomp.fortran/pr25162.f: Require
3359         effective-target TLS runtime.
3361 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3363         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3364         * testsuite/libgomp.c/nestedfn-3.c: New test.
3366 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3368         PR fortran/25162
3369         * testsuite/libgomp.fortran/pr25162.f: New test.
3371 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3373         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3374         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3376 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3378         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3379         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3380         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3381         single.c, team.c, work.c, config/linux/alpha/futex.h,
3382         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3383         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3384         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3385         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3386         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3387         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3388         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3389         FSF address.
3391 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3393         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3394         to nodist_noinst_HEADERS.
3395         * Makefile.in: Rebuilt.
3397         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3398         add integer count field.
3399         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3400         omp_nest_lock_t type change.
3401         (omp_init_nest_lock): Likewise.  Initialize count to 0.
3402         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3403         Increment count.
3404         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3405         Decrement count.
3406         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3407         Increment count if successful and return the new nesting level.
3408         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3409         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3410         * testsuite/libgomp.c/lib-1.c: New test.
3411         * testsuite/libgomp.fortran/lib1.f90: New test.
3412         * testsuite/libgomp.fortran/lib2.f: New test.
3413         * testsuite/libgomp.fortran/lib3.f: New test.
3415 2005-11-17  Richard Henderson  <rth@redhat.com>
3417         PR 24845
3418         * Makefile.am (nodist_toolexeclib_HEADERS): New.
3419         * configure.ac (link_gomp): New.  Substitute it.
3420         (AC_CONFIG_FILES): Add libgomp.spec.
3421         * libgomp.spec.in: New file.
3422         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3423         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3425 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3427         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3428         reduction(-:var) behaving the same as reduction(+:var).
3429         * testsuite/libgomp.c/reduction-4.c: New test.
3431 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
3433         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3434         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3435         testsuite/libgomp.c/copyin-3.c,
3436         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3437         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3438         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3439         testsuite/libgomp.c++/pr24455.C,
3440         testsuite/libgomp.fortran/threadprivate1.f90,
3441         testsuite/libgomp.fortran/threadprivate2.f90,
3442         testsuite/libgomp.fortran/threadprivate3.f90,
3443         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3444         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3445         testsuite/libgomp.fortran/omp_parse3.f90: Require
3446         effective-target TLS.
3448 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3450         * HEADER: Remove.
3452 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
3454         PR libgomp/24797
3455         * team.c (initialize_team): Pass NULL rather than free as
3456         pthread_key_create destructor.  Initialize thread specific data
3457         pointer in initial thread to a static local variable rather than
3458         malloced memory.
3460 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
3462         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3463         its location to ld_library_path.
3465 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3467         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3469 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3471         * testsuite/libgomp.c: Rename from libgomp.dg.
3473 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
3475         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3476         threadprivate variable 'i'.
3478 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3480         * config/linux/s390/futex.h: New file.
3481         * configure.tgt: Use it.
3483         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3484         before the parallel.
3486 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3488         PR c++/24734
3489         * testsuite/libgomp.c++/master-1.C: New test.
3491 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3493         * testsuite/libgomp.dg/copyin-3.c: New test.
3495 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3497         * testsuite/libgomp.fortran/retval1.f90: New test.
3498         * testsuite/libgomp.fortran/vla7.f90: New test.
3500 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
3502         * testsuite/libgomp.fortran/vla2.f90: New test.
3503         * testsuite/libgomp.fortran/vla3.f90: New test.
3504         * testsuite/libgomp.fortran/vla4.f90: New test.
3505         * testsuite/libgomp.fortran/vla5.f90: New test.
3506         * testsuite/libgomp.fortran/vla6.f90: New test.
3508 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
3510         * config/linux/sparc/futex.h: New file.
3511         * configure.tgt: Use it.
3512         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3514         * critical.c: Include stdlib.h.
3515         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3516         ignoring return value.
3517         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3518         LIBGOMP_CHECK_SYNC_BUILTINS check.
3519         * configure: Rebuilt.
3521 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3523         * testsuite/libgomp.fortran/vla1.f90: New test.
3525 2005-10-31  Richard Henderson  <rth@redhat.com>
3527         * testsuite/libgomp.fortran/character2.f90: Fix race condition
3528         setting 's' in different threads.
3530 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3532         * libgomp.h (attribute_hidden, ialias): Define.
3533         * config/posix/proc.c (omp_get_num_procs): Add ialias.
3534         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3535         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3536         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3537         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3538         omp_test_lock, omp_test_nest_lock): Likewise.
3539         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3540         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3541         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3542         omp_test_lock, omp_test_nest_lock): Likewise.
3543         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3544         omp_get_dynamic, omp_get_nested): Likewise.
3545         * parallel.c (omp_get_num_threads, omp_get_max_threads,
3546         omp_get_thread_num, omp_in_parallel): Likewise.
3547         * fortran.c (ialias_redirect): Define.
3548         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3549         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3550         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3551         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3552         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3553         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3554         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3555         omp_get_wtime): Add ialias_redirect.
3557 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
3559         * fortran.c: Include stdlib.h.
3561 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
3563         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3564         * Makefile.in: Regenerated.
3566 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
3568         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3569         * libgomp_f.h.in (omp_check_defines): New function.
3570         * env.c: Include libgomp_f.h.
3571         (initialize_env): Call omp_check_defines.
3573         * testsuite/libgomp.dg/copyin-2.c: New test.
3574         * testsuite/libgomp.c++/copyin-2.C: New test.
3575         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3577         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3578         * testsuite/libgomp.fortran/sharing2.f90: New test.
3580         * testsuite/libgomp.dg/copyin-1.c: New test.
3581         * testsuite/libgomp.c++/copyin-1.C: New test.
3583 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
3585         * testsuite/libgomp.fortran/crayptr1.f90: New test.
3587         * testsuite/libgomp.fortran/workshare1.f90: New test.
3589         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3590         only test.
3591         * libgomp.fortran/sharing1.f90: New test.
3593 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
3595         PR c++/24502
3596         * testsuite/libgomp.c++/loop-7.C: New test.
3598         * testsuite/libgomp.dg/nestedfn-2.c: New test.
3600         * testsuite/libgomp.dg/nestedfn-1.c: New test.
3601         * testsuite/libgomp.fortran/reduction6.f90: New test.
3602         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3604 2005-10-23  Richard Henderson  <rth@redhat.com>
3606         * testsuite/libgomp.c++/ctor-1.C: New.
3607         * testsuite/libgomp.c++/ctor-2.C: New.
3608         * testsuite/libgomp.c++/ctor-3.C: New.
3609         * testsuite/libgomp.c++/ctor-4.C: New.
3610         * testsuite/libgomp.c++/ctor-5.C: New.
3611         * testsuite/libgomp.c++/ctor-6.C: New.
3612         * testsuite/libgomp.c++/ctor-7.C: New.
3613         * testsuite/libgomp.c++/ctor-8.C: New.
3614         * testsuite/libgomp.c++/ctor-9.C: New.
3616 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
3618         PR 24455
3619         * testsuite/libgomp.c++/pr24455-1.C: New test.
3620         * testsuite/libgomp.c++/pr24455.C: New test.
3621         * testsuite/libgomp.dg/pr24455-1.c: New test.
3622         * testsuite/libgomp.dg/pr24455.c: New test.
3624 2005-10-20  Richard Henderson  <rth@redhat.com>
3626         * testsuite/libgomp.c++/loop-6.C: New.
3627         * testsuite/libgomp.dg/loop-3.c: New.
3629 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
3631         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3632         explicitly private.
3633         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3634         explicitly shared.
3636 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
3638         * testsuite/libgomp.fortran/jacobi.f: New test.
3640 2005-10-19  Richard Henderson  <rth@redhat.com>
3642         * configure.tgt (i?86-linux): Default to with_arch instead of
3643         CFLAGS.  Add -mtune to match target_cpu.
3644         (x86_64-linux): Tune to i686.
3646         * fortran.c (omp_test_nest_lock_): Fix typo.
3648 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
3650         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3651         gomp_ordered_sync): Do nothing if team->nthreads == 1.
3652         * testsuite/libgomp.dg/ordered-3.c: New test.
3654         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3655         Remove volatile keyword.
3657         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3658         in COMMON block to avoid warnings on 64-bit targets.
3660 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
3662         * testsuite/libgomp.dg/shared-3.c: New test.
3664 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3666         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3667         * testsuite/libgomp.fortran/reduction5.f90: New test.
3669 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3671         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3672         dg-options.
3673         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
3674         flush loop now that __sync_synchronize has proper memory barrier.
3675         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3676         Add -ffixed-form to dg-options.
3678 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3680         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3681         from subdirectories.
3682         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3683         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3684         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3685         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3686         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3687         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3688         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3689         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3690         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3691         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3692         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3693         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3694         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3695         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3696         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3697         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3698         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3699         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3700         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3701         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3702         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3703         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3704         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3705         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3706         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3708 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
3710         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3711         lang_library_path exists.  Use find instead of glob to gather tests.
3712         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3714 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3716         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3717         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3718         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3719         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3720         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3721         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3722         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3723         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3724         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3725         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3726         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3727         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3728         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3730 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
3732         * testsuite/libgomp.dg/vla-1.c: New test.
3734         * testsuite/libgomp.fortran/reference2.f90: New test.
3736         * testsuite/libgomp.fortran/character2.f90: Remove explicit
3737         declaration of omp_get_thread_num.
3738         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
3739         use omp_lib.
3741         * testsuite/libgomp.fortran/reduction1.f90: New test.
3742         * testsuite/libgomp.fortran/reduction2.f90: New test.
3743         * testsuite/libgomp.fortran/reduction3.f90: New test.
3744         * testsuite/libgomp.fortran/reduction4.f90: New test.
3746 2005-10-13  Richard Henderson  <rth@redhat.com>
3748         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3749         * Makefile.in: Regenerate.
3750         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3751         * libgomp.h: Include bar.h.
3752         (struct gomp_barrier): Remove.
3753         (struct gomp_team): Add barrier.  Replace master_barrier with
3754         master_release.  Replace threads with ordered_release.
3755         (struct gomp_thread): Replace barrier with release.
3756         * ordered.c (gomp_ordered_first): Update for ordered_release change.
3757         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3758         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3759         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3760         (GOMP_single_copy_end): Likewise.
3761         * team.c (gomp_threads_dock): New.
3762         (gomp_barrier_init, gomp_barrier_destroy): Remove.
3763         (gomp_thread_start): Use gomp_barrier_wait.
3764         (new_team, free_team): Update for gomp_team changes.
3765         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3766         (gomp_team_end): Use gomp_barrier_wait.
3767         (initialize_team): Update for gomp_thread changes.
3768         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3769         (gomp_work_share_end_nowait): Use atomic ops when available.
3770         * config/linux/bar.c, config/linux/bar.h: New files.
3771         * config/posix/bar.c, config/posix/bar.h: New files.
3773 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
3775         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3776         * testsuite/libgomp.dg/single-2.c: New test.
3778         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3779         lang_link_flags): Unset, so that they aren't inherited from previously
3780         sourced *.exp.
3782         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3784 2005-10-12  Richard Henderson  <rth@redhat.com>
3786         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3787         (libgomp_init): Use lang_test_file, lang_library_path, and
3788         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
3790         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3791         (lang_test_file, lang_link_flags): New.
3792         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3794         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3795         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3796         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3797         testsuite/libgomp.c++/parallel-1.C,
3798         testsuite/libgomp.c++/reduction-1.C,
3799         testsuite/libgomp.c++/reduction-2.C,
3800         testsuite/libgomp.c++/reduction-3.C,
3801         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3802         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3803         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3804         New files, largely cribbed from the C testsuite.
3806 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
3808         * testsuite/libgomp.fortran/character1.f90: New test.
3809         * testsuite/libgomp.fortran/character2.f90: New test.
3811         * testsuite/libgomp.dg/nested-1.c: New test.
3812         * testsuite/libgomp.dg/nested-2.c: New test.
3813         * testsuite/libgomp.fortran/do1.f90: New test.
3814         * testsuite/libgomp.fortran/do2.f90: New test.
3816         * testsuite/libgomp.fortran/reference1.f90: New test.
3818 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3820         * testsuite/libgomp.dg/reduction-1.c: New test.
3821         * testsuite/libgomp.dg/reduction-2.c: New test.
3822         * testsuite/libgomp.dg/reduction-3.c: New test.
3824 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
3826         * testsuite/libgomp.dg/atomic-1.c: New test.
3827         * testsuite/libgomp.dg/atomic-2.c: New test.
3829 2005-10-09  Richard Henderson  <rth@redhat.com>
3831         * critical.c (atomic_lock): New.
3832         (initialize_critical): Initialize it.
3833         (GOMP_atomic_start, GOMP_atomic_end): New.
3834         * libgomp.map: Export them.
3835         * libgomp_g.h: Declare them.
3837         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
3839 2005-10-02  Richard Henderson  <rth@redhat.com>
3841         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
3842         to XCFLAGS instead of CFLAGS.
3844 2005-09-30  Richard Henderson  <rth@redhat.com>
3846         * configure.ac: Determine whether -pthread or -lpthread is needed.
3847         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
3848         * Makefine.in, configure: Rebuild.
3850 2005-09-28  Richard Henderson  <rth@redhat.com>
3852         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
3853         * testsuite/libgomp.dg/omp-single-3.c: New test.
3855 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
3857         * testsuite/libgomp.dg/omp-single-2.c: New test.
3858         * testsuite/libgomp.dg/shared-2.c: Fix return code.
3860 2005-09-27  Richard Henderson  <rth@redhat.com>
3862         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
3863         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
3865 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
3867         * testsuite/libgomp.dg/omp-loop03.c: New test.
3869 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3871         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
3873 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3875         * testsuite/libgomp.dg/omp-single-1.c: New test.
3876         * testsuite/libgomp.dg/shared-1.c: Return 0.
3877         Add prototype for abort.
3878         * testsuite/libgomp.dg/shared-2.c: Likewise.
3880 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
3882         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
3883         constructs.
3885 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
3887         * testsuite/libgomp.dg/shared-1.c: New test.
3888         * testsuite/libgomp.dg/shared-2.c: New test.
3890 2005-09-24  Richard Henderson  <rth@redhat.com>
3892         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
3894 2005-09-24  Richard Henderson  <rth@redhat.com>
3896         * iter.c (gomp_iter_static_next): Round up when computing number
3897         of iterations.  Don't bother distributing a remainder equally.
3899         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
3900         Don't call srand.  Zero b before testing.
3901         (main): New.
3903 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
3905         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
3906         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
3908 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
3910         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
3911         without !$omp end do, followed immediately by subroutine end.
3913 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
3915         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
3917 2005-09-22  Richard Henderson  <rth@redhat.com>
3919         * critical.c (GOMP_critical_name_start): Change argument to void**.
3920         Reuse the pointer space if the mutex fits.
3921         (GOMP_critical_name_end): Likewise.
3922         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
3923         * libgomp_g.h (GOMP_critical_name_start): Update decl.
3924         (GOMP_critical_name_end): Likewise.
3925         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
3926         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
3928 2005-09-20  Richard Henderson  <rth@redhat.com>
3930         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
3931         (create_lock_lock): New.
3932         (initialize_critical): Initialize it.
3933         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
3934         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
3936 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3938         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
3940 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3942         * testsuite/libgomp.dg/omp-loop01.c: New test.
3943         * testsuite/libgomp.dg/omp-loop02.c: New test.
3945 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
3947         * configure.ac (AC_PROG_FC): Add.
3948         (USE_FORTRAN): New automake conditional.
3949         * configure: Rebuilt.
3950         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
3951         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
3952         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
3953         Add rules to build them.
3954         * Makefile.in: Rebuilt.
3955         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
3956         OMP_NEST_LOCK_KIND.
3957         * libgomp.map: Add Fortran wrappers.
3958         * libgomp_f.h.in: New file.
3959         * omp_lib.h.in: New file.
3960         * omp_lib.f90.in: New file.
3961         * fortran.c: New file.
3962         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
3963         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
3964         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
3965         libgfortran has been built.
3966         * testsuite/libgomp.fortran/fortran.exp: New file.
3967         * testsuite/libgomp.fortran/omp_cond1.f: New test.
3968         * testsuite/libgomp.fortran/omp_cond2.f: New test.
3969         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
3970         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
3971         * testsuite/libgomp.fortran/omp_hello.f: New test.
3972         * testsuite/libgomp.fortran/omp_orphan.f: New test.
3973         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
3974         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
3975         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
3976         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
3977         * testsuite/libgomp.fortran/omp_reduction.f: New test.
3978         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
3979         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
3981 2005-08-30  Richard Henderson  <rth@redhat.com>
3983         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
3984         function for when aliases are not usable.
3985         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
3986         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3987         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
3988         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
3989         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
3990         GOMP_loop_ordered_guided_next): Likewise.
3991         * ordered.c (GOMP_ordered_start): Likewise.
3993 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
3995         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
3996         * testsuite/libgomp.dg/omp_hello.c: Fix return code
3997         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
3998         * testsuite/libgomp.dg/omp_orphan.c: Likewise
3999         * testsuite/libgomp.dg/omp_reduction.c: Likewise
4000         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
4001         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
4002         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
4003         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
4005 2005-07-07  Eric Christopher  <echristo@redhat.com>
4006             Diego Novillo  <dnovillo@redhat.com>
4008         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
4009         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
4010         up code.
4011         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
4012         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
4013         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
4014         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
4015         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
4016         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
4017         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
4019 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
4021         * TOPLEVEL.patch: Remove.
4023 2005-05-16  Richard Henderson  <rth@redhat.com>
4025         * configure.ac: Test for clock_gettime.
4026         * config.h.in, configure: Rebuild.
4027         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
4028         (omp_get_wtime): Use clock_gettime if available.
4029         (omp_get_wtick): Use clock_getres if available.
4031 2005-05-11  Richard Henderson  <rth@redhat.com>
4033         * config/linux/ia64/futex.h: New file.
4034         * configure.tgt: Use it.
4036         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
4038 2005-05-07  Richard Henderson  <rth@redhat.com>
4040         * config/linux/powerpc/futex.h: New file.
4041         * configure.tgt: Use it.
4043         * config/linux/i486/futex.h: Merge ...
4044         * config/linux/x86_64/futex.h: ... into ...
4045         * config/linux/x86/futex.h: ... here.
4046         * configure.tgt: Update to match.
4048 2005-05-06  Richard Henderson  <rth@redhat.com>
4050         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
4051         * config/linux/i486/futex.h: Likewise.
4052         * config/linux/x86_64/futex.h: Likewise.
4054         * config/linux/lock.c: New file.
4055         * config/linux/omp-lock.h: New file.
4057         * critical.c, env.h: Don't include omp.h
4058         * config/posix/lock.c: Include libgomp.h instead of omp.h.
4059         * config/posix/time.c: Likewise.
4060         * config/posix/omp-lock.h: New file.
4061         * libgomp.h: Include omp-lock.h and omp.h.
4062         * Makefile.am (nodist_include_HEADERS): New.
4063         (omp.h): New rule.
4064         * configure.ac (PERL): New.
4065         * mkomp_h.pl: New file.
4066         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
4067         with templates.
4068         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
4070         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
4071         build directory.  Re-add -march=i486 hack.
4073         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
4074         (libgomp_link_flags): Remove.
4075         (libgomp_initialized): Remove.
4076         (libgomp_init): Don't protect from reinitialization.  Copy code
4077         from libstdc++ for getting the multilib set correctly.
4079 2005-05-05  Richard Henderson  <rth@redhat.com>
4081         * config/linux/alpha/futex.h: New file.
4082         * configure.tgt (alpha*-*-linux*): Use it.
4084         * config/posix/mutex.c: New file.
4085         * config/posix/sem.c: Use libgomp.h.
4087         * configure.tgt (x86_64-linux): Also test CC for -m32.
4088         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
4090         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
4091         after $gccpath.
4093         * Makefile.am (SUBDIRS): New.
4094         (libgomp_la_LDFLAGS): Add -lpthread.
4095         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
4096         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
4098         * libgomp_g.h: New file.
4099         * libgomp.h: Split out all public declarations to libgomp_g.h.
4100         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
4101         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
4102         * config/linux/sem.h: Likewise.
4103         * config/posix/sem.h: Likewise.
4105         * Makefile.am (AM_LDFLAGS): New.
4106         (libgomp_version_script): Split out from ...
4107         (libgomp_la_LDFLAGS): ... here.
4108         (libgomp_version_info): New.
4109         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
4110         (LIBGOMP_ENABLE): New.
4111         (LIBGOMP_CHECK_LINKER_FEATURES): New.
4112         (LIBGOMP_ENABLE_SYMVERS): New.
4113         * configure.ac (AC_INIT): Version 1.0.
4114         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
4115         (enable-linux-futex): Likewise.  Rename from enable-futex.
4116         (libtool_VERSION): New.
4117         (LIBGOMP_ENABLE_SYMVERS): Use it.
4118         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
4119         * Makefile.in, aclocal.m4, configure: Rebuild.
4121         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
4122         (gomp_mutex_unlock_slow): Fix typo.
4123         * config/linux/sem.c: Similarly.
4124         (gomp_sem_post_slow): Fix typo.
4125         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
4126         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
4127         [__PIC__] (sys_futex0): Don't use tmp output in asm.
4129         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
4130         (libgomp_la_LDFLAGS): Add top_srcdir to path.
4131         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
4132         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
4133         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
4134         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
4135         LDFLAGS.  Pull enable_futex check to top-level.
4136         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
4137         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
4139         First attempt at real configury.
4140         * Makefile, config.h: Remove file.
4141         * Makefile.am, Makefile.in: New file.
4142         * acinclude.m4 aclocal.m4: New file.
4143         * configure.ac, configure.tgt, configure: New file.
4145         * config/posix/lock.c: Rename from sys-lock.c.
4146         * config/posix/mutex.h: Rename from sys-mutex.h.
4147         * config/posix/sem.c: Rename from sys-sem.c.
4148         * config/posix/sem.h: Rename from sys-sem.h.
4149         * config/posix/proc.c: Rename from sys-proc.c.
4150         * config/posix/time.c: Rename from sys-proc.c.
4152         * config/linux/mutex.c: New file.
4153         * config/linux/mutex.h: New file.
4154         * config/linux/sem.c: New file.
4155         * config/linux/sem.h: New file.
4156         * config/linux/i486/futex.h: New file.
4157         * config/linux/x86_64/futex.h: New file.
4159 2005-05-04  Richard Henderson  <rth@redhat.com>
4161         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4162         * libgomp.h: Declare them.
4163         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4164         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4166 2005-05-04  Richard Henderson  <rth@redhat.com>
4168         * libgomp-1 code drop
4170 2005-05-04  Richard Henderson  <rth@redhat.com>
4172         * iter.c (gomp_iter_static_next): Return tri-state on 0.
4173         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4174         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4175         (gomp_iter_static_next): Update.
4176         (gomp_ordered_static_next): Update.
4177         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4178         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
4179         totally empty range.
4180         (gomp_loop_ordered_static_next): Refine test for calling
4181         gomp_ordered_static_next.
4182         * testsuite/ordered-1.c: Add case for more threads than iterations.
4184         * iter.c (gomp_iter_runtime_next_locked): Remove.
4185         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4186         gomp_loop_guided_start, gomp_loop_ordered_static_start,
4187         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4188         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4189         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4190         gomp_loop_ordered_guided_next): Downcase name, make static, add
4191         an external alias with the old name.
4192         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4193         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4194         switch and call one of the above static functions.
4195         * libgomp.h: Update.
4197         * work.c (gomp_work_share_start): Lock the mutex for !first too.
4198         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4199         GOMP_loop_guided_start, GOMP_loop_runtime_start,
4200         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4201         GOMP_loop_ordered_guided_start): Update to match.
4202         * sections.c (GOMP_sections_start): Likewise.
4203         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4205         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4206         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4207         Use bounds check instead of modulus.
4208         (gomp_ordered_sync): Split out of GOMP_ordered_start.
4209         (gomp_ordered_last): Don't sync with ordered_owner here.
4210         (gomp_ordered_next): Likewise.
4211         (gomp_ordered_static_loop_next): Likewise.
4212         * loop.c, libgomp.h: Update to match.
4214         * libgomp.h (GOMP_barrier): Declare.
4216         * testsuite/barrier-1.c: New file.
4217         * testsuite/critical-1.c: New file.
4218         * testsuite/ordered-2.c: New file.
4219         * testsuite/ordered-1.c: New file.
4220         * testsuite/sections-1.c: New file.
4221         * testsuite/single-1.c: New file.
4222         * testsuite/Makefile (TESTS): Add them.
4224 2005-05-04  Richard Henderson  <rth@redhat.com>
4226         * libgomp.h (struct gomp_work_share): Add ordered_owner.
4227         * loop.c (GOMP_loop_static_start): If not the startup thread,
4228         acquire the mutex to wait for initialization complete.
4229         (GOMP_loop_ordered_static_start): Likewise.
4230         (GOMP_loop_ordered_runtime_start): Likewise.
4231         (GOMP_loop_ordered_static_first): Remove.
4232         (GOMP_loop_ordered_dynamic_first): Remove.
4233         (GOMP_loop_ordered_guided_first): Remove.
4234         (GOMP_loop_ordered_runtime_first): Remove.
4235         * ordered.c (gomp_ordered_loop_first): Post to own release when
4236         we're the first thread.
4237         (gomp_ordered_loop_last): Wait on release if not owner.
4238         (gomp_ordered_loop_next): Likewise.
4239         (gomp_ordered_static_loop_init): New.
4240         (gomp_ordered_static_loop_next): Use ordered_owner.
4241         (GOMP_ordered_start): Likewise.
4242         * work.c (gomp_new_work_share): Initialize ordered_owner.
4244 2005-05-03  Richard Henderson  <rth@redhat.com>
4246         * Makefile (OPT): New.
4247         (CFLAGS): Use it.
4249         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4250         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4251         * libgomp.h, libgomp.map, NOTES: Update to match.
4253         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4254         Add initialized and thr members.
4255         (gomp_thread_start): Pause when initially spawned to wait for
4256         the whole team to be created.
4257         (gomp_team_start): Release team members at the end.
4259         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
4260         (f_foo_1): Use GOMP_loop_end.
4261         (f_foo_2): Use GOMP_loop_end_nowait.
4263         * testsuite/loop-2.c: New file.
4264         * testsuite/Makefile (TESTS): Add it.
4266 2005-05-03  Richard Henderson  <rth@redhat.com>
4268         * iter.c (gomp_iter_static_next): Fix overflow check typo.
4269         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4270         * team.c (new_team): Initialize oldest_live_gen to 1 if no
4271         initial work_share.
4273         * testsuite/Makefile: New file.
4274         * testsuite/loop-1.c: New file.
4276 2005-05-03  Richard Henderson  <rth@redhat.com>
4278         Initial implementation and checkin.