* update_web_docs_svn: Simplify build of gnat_ugn.
[official-gcc.git] / libgomp / ChangeLog
blob28a7867b73eca8aa6e5ea25ff8d09d269b8c6536
1 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
3         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
4         (struct gomp_taskwait): New type.
5         (struct gomp_task): Add taskwait and parent_depends_on, remove
6         in_taskwait and taskwait_sem fields.
7         (gomp_finish_task): Don't destroy taskwait_sem.
8         * task.c (gomp_init_task): Don't init in_taskwait, instead init
9         taskwait and parent_depends_on.
10         (GOMP_task): For if (0) tasks with depend clause that depend on
11         earlier tasks don't defer them, instead call
12         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
13         Initialize redundant_out field, for redundant out entries just
14         move them at the end of linked list instead of removing them
15         completely, and set redundant_out flag instead of redundant.
16         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
17         that task.
18         (gomp_task_run_post_handle_dependers): If parent is in
19         gomp_task_maybe_wait_for_dependencies and newly runnable task
20         is not parent_depends_on, queue it in parent->children linked
21         list after all runnable tasks with parent_depends_on set.
22         Adjust for addition of taskwait indirection.
23         (gomp_task_run_post_remove_parent): If parent is in
24         gomp_task_maybe_wait_for_dependencies and task to be removed
25         is parent_depends_on, decrement n_depend and if needed awake
26         parent.  Adjust for addition of taskwait indirection.
27         (GOMP_taskwait): Adjust for addition of taskwait indirection.
28         (gomp_task_maybe_wait_for_dependencies): New function.
29         * testsuite/libgomp.c/depend-5.c: New test.
31 2014-07-13  Tobias Burnus  <burnus@net-b.de>
33         * testsuite/libgomp.fortran/pr34020.f90: Make compile
34         with TS 18508/Fortran 2015.
36 2014-07-06  Marek Polacek  <polacek@redhat.com>
38         PR c/6940
39         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
41 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
43         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
44         matches regex $lang_source_re, add $lang_include_flags to options.
45         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
46         * testsuite/libgomp.c++/c++.exp: Likewise.
47         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
48         and lang_include_flags instead of adding -fintrinsic-modules-path= to
49         ALWAYS_CFLAGS.
50         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
52 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
54         * testsuite/libgomp.fortran/fortran.exp: Explain
55         gfortran-dg-runtest usage.
57 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
59         * testsuite/libgomp.fortran/simd5.f90: New test.
60         * testsuite/libgomp.fortran/simd6.f90: New test.
61         * testsuite/libgomp.fortran/simd7.f90: New test.
63 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
65         * testsuite/libgomp.c/for-2.c: Define SC to static for
66         #pragma omp for simd testing.
67         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
68         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
69         SC macro.
70         * testsuite/libgomp.c/simd-14.c: New test.
71         * testsuite/libgomp.c/simd-15.c: New test.
72         * testsuite/libgomp.c/simd-16.c: New test.
73         * testsuite/libgomp.c/simd-17.c: New test.
74         * testsuite/libgomp.c++/for-10.C: Define SC to static for
75         #pragma omp for simd testing.
76         * testsuite/libgomp.c++/simd10.C: New test.
77         * testsuite/libgomp.c++/simd11.C: New test.
78         * testsuite/libgomp.c++/simd12.C: New test.
79         * testsuite/libgomp.c++/simd13.C: New test.
81         * testsuite/libgomp.fortran/aligned1.f03: New test.
82         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
83         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
84         tasks with !$omp parallel !$omp single.
85         * testsuite/libgomp.fortran/target8.f90: New test.
86         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
87         not to use trim in the combiner, instead call elemental function.
88         (fn): New elemental function.
89         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
90         Make elemental.
91         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
92         omp_in): Likewise.
93         * testsuite/libgomp.fortran/udr12.f90: New test.
94         * testsuite/libgomp.fortran/udr13.f90: New test.
95         * testsuite/libgomp.fortran/udr14.f90: New test.
96         * testsuite/libgomp.fortran/udr15.f90: New test.
98 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
100         * omp_lib.f90.in (openmp_version): Set to 201307.
101         * omp_lib.h.in (openmp_version): Likewise.
102         * testsuite/libgomp.c/target-8.c: New test.
103         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
104         and inbranch clauses.
105         * testsuite/libgomp.fortran/depend-3.f90: New test.
106         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
107         openmp_version.
108         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
109         * testsuite/libgomp.fortran/target1.f90: New test.
110         * testsuite/libgomp.fortran/target2.f90: New test.
111         * testsuite/libgomp.fortran/target3.f90: New test.
112         * testsuite/libgomp.fortran/target4.f90: New test.
113         * testsuite/libgomp.fortran/target5.f90: New test.
114         * testsuite/libgomp.fortran/target6.f90: New test.
115         * testsuite/libgomp.fortran/target7.f90: New test.
117 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
119         PR fortran/60928
120         * testsuite/libgomp.fortran/allocatable9.f90: New test.
121         * testsuite/libgomp.fortran/allocatable10.f90: New test.
122         * testsuite/libgomp.fortran/allocatable11.f90: New test.
123         * testsuite/libgomp.fortran/allocatable12.f90: New test.
124         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
125         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
126         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
127         * testsuite/libgomp.fortran/associate1.f90: New test.
128         * testsuite/libgomp.fortran/associate2.f90: New test.
129         * testsuite/libgomp.fortran/procptr1.f90: New test.
131 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
133         * testsuite/libgomp.fortran/simd1.f90: New test.
134         * testsuite/libgomp.fortran/udr1.f90: New test.
135         * testsuite/libgomp.fortran/udr2.f90: New test.
136         * testsuite/libgomp.fortran/udr3.f90: New test.
137         * testsuite/libgomp.fortran/udr4.f90: New test.
138         * testsuite/libgomp.fortran/udr5.f90: New test.
139         * testsuite/libgomp.fortran/udr6.f90: New test.
140         * testsuite/libgomp.fortran/udr7.f90: New test.
141         * testsuite/libgomp.fortran/udr8.f90: New test.
142         * testsuite/libgomp.fortran/udr9.f90: New test.
143         * testsuite/libgomp.fortran/udr10.f90: New test.
144         * testsuite/libgomp.fortran/udr11.f90: New test.
146 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
148         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
149         vect_simd_clones effective target.
150         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
152 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
154         PR middle-end/61252
155         * testsuite/libgomp.c++/simd-9.C: New test.
157 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
159         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
160         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
161         texts according to their @menu entry positions.
163 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
165         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
166         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
167         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
168         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
169         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
170         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
171         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
172         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
173         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
174         * testsuite/libgomp.fortran/depend-1.f90: New test.
175         * testsuite/libgomp.fortran/depend-2.f90: New test.
176         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
177         * testsuite/libgomp.fortran/simd1.f90: New test.
178         * testsuite/libgomp.fortran/simd2.f90: New test.
179         * testsuite/libgomp.fortran/simd3.f90: New test.
180         * testsuite/libgomp.fortran/simd4.f90: New test.
181         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
183 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
185         * testsuite/libgomp.c/simd-10.c: New test.
186         * testsuite/libgomp.c/simd-11.c: New test.
187         * testsuite/libgomp.c/simd-12.c: New test.
188         * testsuite/libgomp.c/simd-13.c: New test.
190 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
192         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
193         atomic type clauses in any order and optional comma in between.
194         * testsuite/libgomp.c++/atomic-15.C: Likewise.
195         * testsuite/libgomp.c/atomic-17.c: Likewise.
197         * testsuite/libgomp.c/simd-7.c: New test.
198         * testsuite/libgomp.c/simd-8.c: New test.
199         * testsuite/libgomp.c/simd-9.c: New test.
200         * testsuite/libgomp.c/loop-16.c: New test.
202 2014-04-02  Richard Henderson  <rth@redhat.com>
204         * config/linux/futex.h (futex_wait): Get error value from errno.
205         (futex_wake): Likewise.
207 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
209         PR c++/60331
210         * testsuite/libgomp.c++/udr-11.C: New test.
211         * testsuite/libgomp.c++/udr-12.C: New test.
212         * testsuite/libgomp.c++/udr-13.C: New test.
213         * testsuite/libgomp.c++/udr-14.C: New test.
214         * testsuite/libgomp.c++/udr-15.C: New test.
215         * testsuite/libgomp.c++/udr-16.C: New test.
216         * testsuite/libgomp.c++/udr-17.C: New test.
217         * testsuite/libgomp.c++/udr-18.C: New test.
218         * testsuite/libgomp.c++/udr-19.C: New test.
220 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
222         Update copyright years
224 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
226         * hashtab.h: Use the standard form for the copyright notice.
228 2014-01-02  Tobias Burnus  <burnus@net-b.de>
230         * libgomp.texi: Bump @copying's copyright year.
232 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
234         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
235         alloca () with __builtin_alloca ().
236         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
237         * testsuite/libgomp.c/lock-3.c: Likewise.
238         * testsuite/libgomp.c/pr48591.c: Likewise.
240 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
242         PR testsuite/59534
243         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
244         comparisons.
246 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
248         PR libgomp/58756
249         * testsuite/libgomp.c/pr58756.c: New test.
251 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
253         PR libgomp/59467
254         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
255         !$omp parallel.
257 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
259         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
260         ALWAYS_CFLAGS.
261         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
262         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
263         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
264         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
265         Likewise.
267         * libgomp_g.h: Include <stddef.h> for size_t.
269         * libgomp.spec.in: Update comment about libgomp's dependencies.
270         * configure.ac: Likewise.
271         * configure: Regenerate.
273 2013-10-16  Tobias Burnus  <burnus@net-b.de>
275         * libgomp.texi: (Runtime Library Routines): Update references for
276         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
277         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
278         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
279         (Environment Variables): Update references for OpenMP 4.0. Add
280         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
281         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
282         order.
284 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
286         * env.c (parse_bind_var): Initialize value to avoid
287         (false positive) warning.
289 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
291         PR libgomp/58691
292         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
293         to check variable.
294         (gomp_init_num_threads): Move i variable declaration into
295         #ifdef CPU_ALLOC_SIZE block.
296         * config/linux/affinity.c (gomp_affinity_init_level): Test
297         gomp_places_list_len == 0 rather than gomp_places_list == 0
298         when checking for topology reading error.
299         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
300         * env.c (parse_affinity): Add ignore argument, if true, don't populate
301         gomp_places_list, only parse env var and always return false.
302         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
303         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
304         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
305         and either of these variables were parsed correctly into a places
306         list.
308 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
309             Jakub Jelinek  <jakub@redhat.com>
311         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
312         of 5 loopfn matches.
313         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
314         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
315         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
316         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
317         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
318         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
319         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
320         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
322 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
324         * Makefile.am (omp_lib.mod): Streamline rule.
325         * Makefile.in: Regenerate.
327         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
328         exceptions.
330         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
331         * testsuite/libgomp.fortran/lib1.f90: Likewise.
332         * testsuite/libgomp.fortran/lib2.f: Likewise.
333         * testsuite/libgomp.fortran/lib3.f: Likewise.
335         * configure.ac: Typo fix.
336         * configure: Regenerate.
338         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
339         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
341         * omp.h.in: Don't touch the user's namespace.
343 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
344             Tobias Burnus  <burnus@net-b.de>
345             Richard Henderson  <rth@redhat.com>
347         * target.c: New file.
348         * Makefile.am (libgomp_la_SOURCES): Add target.c.
349         * Makefile.in: Regenerated.
350         * libgomp_g.h (GOMP_task): Add depend argument.
351         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
352         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
353         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
354         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
355         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
356         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
357         GOMP_taskgroup_start, GOMP_taskgroup_end,
358         GOMP_parallel_sections): New prototypes.
359         * fortran.c (omp_is_initial_device): Add ialias_redirect.
360         (omp_is_initial_device_): New function.
361         (ULP, STR1, STR2, ialias_redirect): Removed.
362         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
363         omp_set_default_device_8_, omp_get_default_device_,
364         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
365         functions.
366         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
367         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
368         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
369         @@GOMP_4.0.
370         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
371         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
372         omp_set_default_device, omp_set_default_device_,
373         omp_set_default_device_8_, omp_get_default_device,
374         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
375         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
376         omp_get_team_num_): Export @@OMP_4.0.
377         * team.c (struct gomp_thread_start_data): Add place field.
378         (gomp_thread_start): Clear thr->thread_pool and
379         thr->task before returning.  Use gomp_team_barrier_wait_final
380         instead of gomp_team_barrier_wait.  Initialize thr->place.
381         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
382         team_cancelled and task_queued_count fields.
383         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
384         before calling pthread_exit.
385         (gomp_free_thread): No longer static.  Use
386         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
387         (gomp_team_start): Add flags argument.  Set
388         thr->thread_pool->threads_busy to nthreads immediately after creating
389         new pool.  Use gomp_managed_threads_lock instead of
390         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
391         (gomp_team_end): Use gomp_managed_threads_lock instead of
392         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
393         of gomp_team_barrier_wait.  If team->team_cancelled, call
394         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
395         rather than thr->ts.work_share.
396         (initialize_team): Don't call gomp_sem_init here.
397         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
398         caller.
399         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
400         * env.c (gomp_global_icv): Add default_device_var, target_data and
401         bind_var initializers.
402         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
403         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
404         gomp_places_list_len): New variables.
405         (parse_bind_var, parse_one_place, parse_places_var): New functions.
406         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
407         sized places.
408         (gomp_cancel_var): New global variable.
409         (parse_int): New function.
410         (handle_omp_display_env): New function.
411         (initialize_env): Use it.  Initialize default_device_var.
412         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
413         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
414         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
415         been successfully parsed (and call gomp_init_affinity in that case).
416         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
417         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
418         omp_get_team_num, omp_is_initial_device): New functions.
419         * libgomp.h: Include stdlib.h.
420         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
421         Define.
422         (struct target_mem_desc): Forward declare.
423         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
424         and thread_limit_var fields.
425         (gomp_get_num_devices): New prototype.
426         (gomp_cancel_var): New extern decl.
427         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
428         team_cancelled and task_queued_count fields.  Add comments about
429         task_{,queued_,running_}count.
430         (gomp_cancel_kind): New enum.
431         (gomp_work_share_end_cancel): New prototype.
432         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
433         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
434         and depend fields.
435         (struct gomp_taskgroup): New type.
436         (struct gomp_task_depend_entry,
437         struct gomp_dependers_vec): New types.
438         (gomp_finish_task): Free depend_hash if non-NULL.
439         (struct gomp_team_state): Add place_partition_off
440         and place_partition_len fields.
441         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
442         gomp_places_list_len): New extern decls.
443         (struct gomp_thread): Add place field.
444         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
445         (gomp_init_thread_affinity): Add place argument.
446         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
447         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
448         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
449         gomp_affinity_init_level, gomp_affinity_print_place): New
450         prototypes.
451         (gomp_team_start): Add flags argument.
452         (gomp_thread_limit_var, gomp_remaining_threads_count,
453         gomp_remaining_threads_lock): Remove.
454         (gomp_managed_threads_lock): New variable.
455         (struct gomp_thread_pool): Add threads_busy field.
456         (gomp_free_thread): New prototype.
457         * task.c: Include hashtab.h.
458         (hash_entry_type): New typedef.
459         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
460         (gomp_init_task): Clear dependers, depend_hash, depend_count,
461         copy_ctors_done and taskgroup fields.
462         (GOMP_task): Add depend argument, handle depend clauses.  If
463         gomp_team_barrier_cancelled or if it's taskgroup has been
464         cancelled, don't queue or start new tasks.  Set copy_ctors_done
465         field if needed.  Initialize taskgroup field.  If copy_ctors_done
466         and already cancelled, don't discard the task.  If taskgroup is
467         non-NULL, enqueue the task into taskgroup queue.  Increment
468         num_children field in taskgroup.  Increment task_queued_count.
469         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
470         gomp_task_run_post_remove_taskgroup): New inline functions.
471         (gomp_task_run_post_handle_depend_hash,
472         gomp_task_run_post_handle_dependers,
473         gomp_task_run_post_handle_depend): New functions.
474         (GOMP_taskwait): Use them.  If more than one new tasks
475         have been queued, wake other threads if needed.
476         (gomp_barrier_handle_tasks): Likewise.  If
477         gomp_team_barrier_cancelled, don't start any new tasks, just free
478         all tasks.
479         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
480         * omp_lib.f90.in
481         (omp_proc_bind_kind, omp_proc_bind_false,
482         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
483         omp_proc_bind_spread): New params.
484         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
485         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
486         omp_get_team_num, omp_is_initial_device): New interfaces.
487         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
488         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
489         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
490         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
491         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
492         useless use omp_lib_kinds.
493         * omp.h.in (omp_proc_bind_t): New typedef.
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 prototypes.
497         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
498         through to gomp_team_start.
499         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
500         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
501         Adjust gomp_parallel_loop_start callers.
502         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
503         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
504         GOMP_loop_end_cancel): New functions.
505         (GOMP_parallel_end): Add ialias_redirect.
506         * hashtab.h: New file.
507         * libgomp.texi (Environment Variables): Minor cleanup,
508         update section refs to OpenMP 4.0rc2.
509         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
510         environment variables.
511         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
512         team->work_shares_to_free to thr->ts.work_share before calling
513         free_work_share.
514         (gomp_work_share_end_cancel): New function.
515         * config/linux/proc.c: Include errno.h.
516         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
517         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
518         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
519         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
520         gomp_cpuset_size is sizeof (cpu_set_t).
521         (gomp_init_num_threads): Initialize gomp_cpuset_size,
522         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
523         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
524         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
525         contain any logical CPUs.
526         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
527         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
528         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
529         pthread_getaffinity_np.  Check gomp_places_list instead of
530         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
531         * config/linux/bar.c (gomp_barrier_wait_end,
532         gomp_barrier_wait_last): Use BAR_* defines.
533         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
534         from state where needed.  Set work_share_cancelled to 0 on last
535         thread.
536         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
537         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
538         functions.
539         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
540         Add cpusetsize argument.
541         (gomp_cpuset_size, gomp_cpusetp): Declare.
542         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
543         (affinity_counter): Remove.
544         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
545         if CPU_ALLOC_SIZE isn't defined.
546         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
547         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
548         bind current thread to the first place.
549         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
550         pthread_setaffinity_np to gomp_places_list[place].
551         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
552         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
553         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
554         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
555         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
556         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
557         (gomp_barrier_t): Add awaited_final field.
558         (gomp_barrier_init): Initialize awaited_final field.
559         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
560         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
561         prototypes.
562         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
563         defines.
564         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
565         gomp_team_barrier_cancelled): New inline functions.
566         (gomp_barrier_last_thread,
567         gomp_team_barrier_set_task_pending,
568         gomp_team_barrier_clear_task_pending,
569         gomp_team_barrier_set_waiting_for_tasks,
570         gomp_team_barrier_waiting_for_tasks,
571         gomp_team_barrier_done): Use BAR_* defines.
572         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
573         (gomp_barrier_wait_end): Use BAR_* defines.
574         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
575         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
576         Use BAR_* defines.
577         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
578         gomp_team_barrier_cancel): New functions.
579         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
580         argument.
581         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
582         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
583         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
584         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
585         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
586         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
587         (gomp_barrier_t): Add cancellable field.
588         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
589         gomp_team_barrier_cancel): New prototypes.
590         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
591         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
592         gomp_team_barrier_cancelled): New inline functions.
593         (gomp_barrier_wait_start, gomp_barrier_last_thread,
594         gomp_team_barrier_set_task_pending,
595         gomp_team_barrier_clear_task_pending,
596         gomp_team_barrier_set_waiting_for_tasks,
597         gomp_team_barrier_waiting_for_tasks,
598         gomp_team_barrier_done): Use BAR_* defines.
599         * barrier.c (GOMP_barrier_cancel): New function.
600         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
601         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
602         omp_proc_bind_spread): New params.
603         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
604         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
605         omp_get_team_num, omp_is_initial_device): New externals.
606         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
607         New functions.
608         (gomp_resolve_num_threads): Adjust for thread_limit now being in
609         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
610         infinity.  If not nested, just return minimum of max_num_threads
611         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
612         to the returned value.  Otherwise, don't update atomically
613         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
614         (GOMP_parallel_end): Adjust for thread_limit now being in
615         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
616         infinity.  Adjust threads_busy in the pool rather than
617         gomp_remaining_threads_count.  Remember team->nthreads and call
618         gomp_team_end before adjusting threads_busy, if not nested
619         afterwards, just set it to 1 non-atomically.  Add ialias.
620         (GOMP_parallel_start): Adjust gomp_team_start caller.
621         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
622         * testsuite/libgomp.c/affinity-1.c: New test.
623         * testsuite/libgomp.c/atomic-15.c: New test.
624         * testsuite/libgomp.c/atomic-16.c: New test.
625         * testsuite/libgomp.c/atomic-17.c: New test.
626         * testsuite/libgomp.c/cancel-for-1.c: New test.
627         * testsuite/libgomp.c/cancel-for-2.c: New test.
628         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
629         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
630         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
631         * testsuite/libgomp.c/cancel-sections-1.c: New test.
632         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
633         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
634         * testsuite/libgomp.c/depend-1.c: New test.
635         * testsuite/libgomp.c/depend-2.c: New test.
636         * testsuite/libgomp.c/depend-3.c: New test.
637         * testsuite/libgomp.c/depend-4.c: New test.
638         * testsuite/libgomp.c/for-1.c: New test.
639         * testsuite/libgomp.c/for-1.h: New file.
640         * testsuite/libgomp.c/for-2.c: New test.
641         * testsuite/libgomp.c/for-2.h: New file.
642         * testsuite/libgomp.c/for-3.c: New test.
643         * testsuite/libgomp.c/pr58392.c: New test.
644         * testsuite/libgomp.c/simd-1.c: New test.
645         * testsuite/libgomp.c/simd-2.c: New test.
646         * testsuite/libgomp.c/simd-3.c: New test.
647         * testsuite/libgomp.c/simd-4.c: New test.
648         * testsuite/libgomp.c/simd-5.c: New test.
649         * testsuite/libgomp.c/simd-6.c: New test.
650         * testsuite/libgomp.c/target-1.c: New test.
651         * testsuite/libgomp.c/target-2.c: New test.
652         * testsuite/libgomp.c/target-3.c: New test.
653         * testsuite/libgomp.c/target-4.c: New test.
654         * testsuite/libgomp.c/target-5.c: New test.
655         * testsuite/libgomp.c/target-6.c: New test.
656         * testsuite/libgomp.c/target-7.c: New test.
657         * testsuite/libgomp.c/taskgroup-1.c: New test.
658         * testsuite/libgomp.c/thread-limit-1.c: New test.
659         * testsuite/libgomp.c/thread-limit-2.c: New test.
660         * testsuite/libgomp.c/thread-limit-3.c: New test.
661         * testsuite/libgomp.c/udr-1.c: New test.
662         * testsuite/libgomp.c/udr-2.c: New test.
663         * testsuite/libgomp.c/udr-3.c: New test.
664         * testsuite/libgomp.c++/affinity-1.C: New test.
665         * testsuite/libgomp.c++/atomic-10.C: New test.
666         * testsuite/libgomp.c++/atomic-11.C: New test.
667         * testsuite/libgomp.c++/atomic-12.C: New test.
668         * testsuite/libgomp.c++/atomic-13.C: New test.
669         * testsuite/libgomp.c++/atomic-14.C: New test.
670         * testsuite/libgomp.c++/atomic-15.C: New test.
671         * testsuite/libgomp.c++/cancel-for-1.C: New test.
672         * testsuite/libgomp.c++/cancel-for-2.C: New test.
673         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
674         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
675         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
676         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
677         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
678         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
679         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
680         * testsuite/libgomp.c++/cancel-test.h: New file.
681         * testsuite/libgomp.c++/for-9.C: New test.
682         * testsuite/libgomp.c++/for-10.C: New test.
683         * testsuite/libgomp.c++/for-11.C: New test.
684         * testsuite/libgomp.c++/simd-1.C: New test.
685         * testsuite/libgomp.c++/simd-2.C: New test.
686         * testsuite/libgomp.c++/simd-3.C: New test.
687         * testsuite/libgomp.c++/simd-4.C: New test.
688         * testsuite/libgomp.c++/simd-5.C: New test.
689         * testsuite/libgomp.c++/simd-6.C: New test.
690         * testsuite/libgomp.c++/simd-7.C: New test.
691         * testsuite/libgomp.c++/simd-8.C: New test.
692         * testsuite/libgomp.c++/target-1.C: New test.
693         * testsuite/libgomp.c++/target-2.C: New test.
694         * testsuite/libgomp.c++/target-2-aux.cc: New file.
695         * testsuite/libgomp.c++/target-3.C: New test.
696         * testsuite/libgomp.c++/taskgroup-1.C: New test.
697         * testsuite/libgomp.c++/udr-1.C: New test.
698         * testsuite/libgomp.c++/udr-2.C: New test.
699         * testsuite/libgomp.c++/udr-3.C: New test.
700         * testsuite/libgomp.c++/udr-4.C: New test.
701         * testsuite/libgomp.c++/udr-5.C: New test.
702         * testsuite/libgomp.c++/udr-6.C: New test.
703         * testsuite/libgomp.c++/udr-7.C: New test.
704         * testsuite/libgomp.c++/udr-8.C: New test.
705         * testsuite/libgomp.c++/udr-9.C: New test.
707 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
709         PR testsuite/57605
710         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
711         ALWAYS_CFLAGS.
713 2013-09-20  Alan Modra  <amodra@gmail.com>
715         * configure: Regenerate.
717 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
719         * testsuite/libgomp.c/sections-2.c: New test.
721 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
723         * testsuite/libgomp.fortran/strassen.f90:
724         Add dg-skip-if aarch64_tiny.
726 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
727             Cesar Philippidis  <cesar@codesourcery.com>
729         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
730         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
731         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
732         * testsuite/libgomp.fortran/fortran.exp: Likewise.
733         * testsuite/libgomp.graphite/graphite.exp: Likewise.
734         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
735         Use dg-runtest rather than gfortran-dg-runtest.
737 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
739         * testsuite/libgomp.c/icv-2.c: Extend current handling of
740         Linux-based x86 systems to cover all GNU systems.
741         * testsuite/libgomp.c/lock-3.c: Likewise.
742         * testsuite/libgomp.c/pr48591.c: Likewise.
744 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
746         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
747         GNU/Hurd, as done for Linux-based systems.
749         * config/posix/ptrlock.h: Fix comment.
751 2013-05-27  Tobias Burnus  <burnus@net-b.de>
753         PR fortran/57423
754         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
755         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
756         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
757         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
758         omp_destroy_nest_lock): Correct arguments to match the one in
759         the OpenMP spec.
760         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
761         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
762         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
763         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
765 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
767         * testsuite/libgomp.c/loop-13.c: New test.
768         * testsuite/libgomp.c/loop-14.c: New test.
769         * testsuite/libgomp.c/loop-15.c: New test.
770         * testsuite/libgomp.c++/loop-13.C: New test.
771         * testsuite/libgomp.c++/loop-14.C: New test.
772         * testsuite/libgomp.c++/loop-15.C: New test.
774 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
776         PR middle-end/56217
777         * testsuite/libgomp.c++/pr56217.C: New test.
779 2013-02-01  Alan Modra  <amodra@gmail.com>
781         * task.c (GOMP_task, GOMP_taskwait): Comment.
783 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
784             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
786         PR libgomp/55561
787         * config/linux/wait.h (do_spin): Use atomic load for addr.
788         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
789         for intptr and ptrlock.
790         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
791         for ptrlock.
793 2013-01-22  Alan Modra  <amodra@gmail.com>
795         PR libgomp/51376
796         PR libgomp/56073
797         * task.c (GOMP_task): Revert 2011-12-09 change.
798         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
799         barrier to read task->children..
800         (gomp_barrier_handle_tasks): ..and matching atomic store with
801         release barrier here when setting parent->children to NULL.
803 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
804             Tobias Burnus  <burnus@net-b.de>
806         PR driver/55884
807         * testsuite/libgomp.fortran/fortran.exp: Use
808         -fintrinsic-modules-path= instead of
809         -fintrinsic-modules-path.
811 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
813         Update copyright years.
815 2012-12-19  Tobias Burnus  <burnus@net-b.de>
817         * testsuite/libgomp.fortran/fortran.exp: Set
818         -fintrinsic-modules-path.
820 2012-12-19  Tobias Burnus  <burnus@net-b.de>
822         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
823         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
825 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
827         PR libgomp/55411
828         * team.c (gomp_free_thread): Decrease gomp_managed_threads
829         if pool had any threads_used.
831 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
833         * testsuite/libgomp.c++/pr24455.C: Use
834         -Wl,-undefined,dynamic_lookup on darwin.
836 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
838         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
840 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
842         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
844 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
845             Jim MacArthur  <jim.macarthur@arm.com>
846             Marcus Shawcroft  <marcus.shawcroft@arm.com>
847             Nigel Stephens  <nigel.stephens@arm.com>
848             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
849             Richard Earnshaw  <rearnsha@arm.com>
850             Sofiane Naci  <sofiane.naci@arm.com>
851             Stephen Thomas  <stephen.thomas@arm.com>
852             Tejas Belagod  <tejas.belagod@arm.com>
853             Yufeng Zhang  <yufeng.zhang@arm.com>
855         * configure.tgt: Add AArch64.
857 2012-10-04  Jason Merrill  <jason@redhat.com>
859         * testsuite/libgomp.c++/tls-init1.C: New.
861 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
863         * configure: Regenerated.
865 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
867         * config/linux/mips/futex.h (sys_futex0): Change to static
868         function with noinline, nomips16 attributes under MIPS16. Adjust
869         asm statement to place 'li v0,SYS_futex' immediately before
870         syscall insn.
872 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
874         * libgomp.texi (Library Index): Renamed from "Index" to prevent
875         conflict with index.html on case-insensitive file systems.
877 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
879         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
880         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
882 2012-07-02  Richard Guenther  <rguenther@suse.de>
883             Michael Matz  <matz@suse.de>
884             Tobias Grosser <tobias@grosser.es>
885             Sebastian Pop <sebpop@gmail.com>
887         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
888         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
889         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
890         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
892 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
894         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
896 2012-06-22  Richard Guenther  <rguenther@suse.de>
898         Merge from graphite branch
899         2012-01-13  Tobias Grosser  <tobias@grosser.es>
901         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
902         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
904 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
906         PR middle-end/53580
907         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
908         use GOMP_barrier () call instead.
909         * testsuite/libgomp.c/pr26943-3.c: Likewise.
910         * testsuite/libgomp.c/pr26943-4.c: Likewise.
911         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
912         call GOMP_barrier instead.
913         * testsuite/libgomp.fortran/vla5.f90: Likewise.
915 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
917         PR libgomp/52993
918         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
919         argument to memset call.
921 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
923         * configure: Regenerated.
925 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
927         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
929 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
931         PR bootstrap/52812
932         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
934 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
936         PR middle-end/52547
937         * testsuite/libgomp.c/pr52547.c: New test.
939 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
941         * testsuite/lib/libgomp.exp: load fortran-modules.exp
943 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
945         * configure.tgt (mips-sgi-irix6*): Remove.
947 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
949         * configure.tgt (alpha*-dec-osf*): Remove.
951         * config/osf/sem.h: Remove.
952         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
954 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
956         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
958 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
960         PR libstdc++/52188
961         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
962         Remove ENABLE_SYMVERS_SOL2.
963         * configure: Regenerate.
964         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
965         (PREPROCESS): New variable.
966         (libgomp.ver): New target.
967         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
968         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
969         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
970         Use libgomp.ver.
971         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
972         * Makefile.in: Regenerate.
974 2012-02-14  Walter Lee  <walt@tilera.com>
976         * configure.tgt: Handle tilegx and tilepro.
977         * config/linux/tile/futex.h: New file.
979 2012-02-08  Richard Guenther  <rguenther@suse.de>
981         PR tree-optimization/46886
982         * testsuite/libgomp.c/pr46886.c: New testcase.
984 2012-01-25  Matthias Klose  <doko@ubuntu.com>
986         * config/linux/arm: Remove empty directory.
987         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
989 2011-12-09  Alan Modra  <amodra@gmail.com>
991         PR libgomp/51376
992         * task.c (GOMP_taskwait): Don't access task->children outside of
993         task_lock mutex region.
994         (GOMP_task): Likewise.
996 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
998         PR libgomp/51132
999         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1000         to file scope.
1001         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1002         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1003         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1004         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1005         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1007 2011-12-02  Alan Modra  <amodra@gmail.com>
1009         * config/linux/affinity.c: Use atomic rather than sync builtin.
1010         * config/linux/lock.c: Likewise.
1011         * config/linux/ptrlock.h: Likewise.
1012         * config/linux/ptrlock.c: Likewise.
1013         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
1014         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
1015         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
1016         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
1017         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
1018         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
1019         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
1020         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
1021         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
1022         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
1024 2011-11-30  Alan Modra  <amodra@gmail.com>
1026         PR libgomp/51298
1027         * config/linux/bar.h: Use atomic rather than sync builtins.
1028         * config/linux/bar.c: Likewise.  Add missing acquire
1029         synchronisation on generation field.
1030         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
1031         double unlock.
1033 2011-11-30  Alan Modra  <amodra@gmail.com>
1035         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
1036         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
1037         * config/linux/mutex.h: Use atomic rather than sync builtins.
1038         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
1039         * config/linux/omp-lock.h: Comment fix.
1040         * config/linux/arm/mutex.h: Delete.
1041         * config/linux/powerpc/mutex.h: Delete.
1042         * config/linux/ia64/mutex.h: Delete.
1043         * config/linux/mips/mutex.h: Delete.
1045 2011-11-30  Alan Modra  <amodra@gmail.com>
1047         PR libgomp/51249
1048         * config/linux/sem.h: Rewrite.
1049         * config/linux/sem.c: Rewrite.
1051 2011-11-28  Richard Henderson  <rth@redhat.com>
1053         * libgomp.h (enum memmodel): New.
1055 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1057         * configure: Regenerate.
1059 2011-10-10  Matthias Klose  <doko@ubuntu.com>
1061         * config/posix95: Remove empty directory.
1063 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1065         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1067 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
1069         PR fortran/49792
1070         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1071         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1073 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1075         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1077 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1079         PR libgomp/49965
1080         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1082 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
1084         * config/linux/proc.h: New.
1085         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
1086         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
1087         (gomp_init_num_threads): Update call to cpuset_popcount.
1088         (get_num_procs): Ditto.
1089         * config/linux/affinity.c (gomp_init_affinity): Call
1090         gomp_cpuset_popcount.
1092 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1094         PR fortran/42041
1095         PR fortran/46752
1096         * omp.h.in (omp_in_final): New prototype.
1097         * omp_lib.f90.in (omp_in_final): New interface.
1098         (omp_integer_kind, omp_logical_kind): Remove
1099         and replace all its uses in the module with 4.
1100         (openmp_version): Change to 201107.
1101         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1102         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1103         kind for the parameters.
1104         (omp_in_final): New external.
1105         (openmp_version): Change to 201107.
1106         * task.c (omp_in_final): New function.
1107         (gomp_init_task): Initialize final_task.
1108         (GOMP_task): Remove unused attribute from flags.  Handle final
1109         tasks.
1110         (GOMP_taskyield): New function.
1111         (omp_in_final): Return true if if (false) or final (true) task
1112         or descendant of final (true).
1113         * fortran.c (omp_in_final_): New function.
1114         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1115         (GOMP_3.0): Export GOMP_taskyield.
1116         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1117         variables.
1118         (parse_unsigned_long_list): New function.
1119         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
1120         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
1121         even if parse_affinity returned false.
1122         * config/linux/affinity.c (gomp_init_affinity): Handle
1123         gomp_cpu_affinity_len == 0.
1124         * libgomp_g.h (GOMP_taskyield): New prototype.
1125         * libgomp.h (struct gomp_task): Add final_task field.
1126         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1127         * team.c (gomp_team_start): Override new task's nthreads_var icv
1128         if list form OMP_NUM_THREADS has been used and it has value for
1129         the new nesting level.
1131         * testsuite/libgomp.c/atomic-11.c: New test.
1132         * testsuite/libgomp.c/atomic-12.c: New test.
1133         * testsuite/libgomp.c/atomic-13.c: New test.
1134         * testsuite/libgomp.c/atomic-14.c: New test.
1135         * testsuite/libgomp.c/reduction-6.c: New test.
1136         * testsuite/libgomp.c/task-5.c: New test.
1137         * testsuite/libgomp.c++/atomic-2.C: New test.
1138         * testsuite/libgomp.c++/atomic-3.C: New test.
1139         * testsuite/libgomp.c++/atomic-4.C: New test.
1140         * testsuite/libgomp.c++/atomic-5.C: New test.
1141         * testsuite/libgomp.c++/atomic-6.C: New test.
1142         * testsuite/libgomp.c++/atomic-7.C: New test.
1143         * testsuite/libgomp.c++/atomic-8.C: New test.
1144         * testsuite/libgomp.c++/atomic-9.C: New test.
1145         * testsuite/libgomp.c++/task-8.C: New test.
1146         * testsuite/libgomp.c++/reduction-4.C: New test.
1147         * testsuite/libgomp.fortran/allocatable7.f90: New test.
1148         * testsuite/libgomp.fortran/allocatable8.f90: New test.
1149         * testsuite/libgomp.fortran/crayptr3.f90: New test.
1150         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1151         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1152         * testsuite/libgomp.fortran/pointer1.f90: New test.
1153         * testsuite/libgomp.fortran/pointer2.f90: New test.
1154         * testsuite/libgomp.fortran/task4.f90: New test.
1156 2011-08-02  Tobias Burnus  <burnus@net-b.de>
1158         * libgomp.texi: Update OpenMP spec references to 3.1.
1159         (omp_in_final,OMP_PROC_BIND): New sections.
1160         (OMP_NUM_THREADS): Document that the value can be now a list.
1161         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1163 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1165         * config/linux/x86/futex.h: Check __x86_64__ instead of
1166         __LP64__.
1168 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1170         PR middle-end/49897
1171         PR middle-end/49898
1172         * testsuite/libgomp.c/pr49897-1.c: New test.
1173         * testsuite/libgomp.c/pr49897-2.c: New test.
1174         * testsuite/libgomp.c/pr49898-1.c: New test.
1175         * testsuite/libgomp.c/pr49898-2.c: New test.
1177 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1179         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1180         for ia32 instead of ilp32.
1182         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1183         * testsuite/libgomp.c/atomic-6.c: Likewise.
1185 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
1187         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1188         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1190 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1192         PR libgomp/45351
1193         * config/osf/sem.h: New file.
1194         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1196 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1198         PR target/49541
1199         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1200         ldflags.
1202 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
1204         * config/linux/wait.h (do_spin): New inline, largely copied
1205         from do_wait, just don't do futex_wait here, instead return true if
1206         it should be done.
1207         (do_wait): Implement using do_spin.
1208         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1209         to prototype.
1210         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1211         __sync_bool_compare_and_swap, pass the oldval to
1212         gomp_mutex_lock_slow.
1213         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1214         If all mutex contenders are just spinning and not sleeping, don't
1215         change state to 2 unnecessarily.  Optimize the loop when state has
1216         already become 2 to use just one atomic operation per loop instead
1217         of two.
1218         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1219         to prototype.
1220         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1221         __sync_bool_compare_and_swap, pass the oldval to
1222         gomp_mutex_lock_slow.
1224 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1226         PR libgomp/49490
1227         * iter.c (gomp_iter_static_next): For chunk size 0
1228         only use n ceil/ nthreads size for the first
1229         n % nthreads threads in the team instead of
1230         all threads except for the last few ones which
1231         get less work or none at all.
1232         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1233         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1234         chunk argument, set run_sched_modifier to 0 for static
1235         resp. 1 for other kinds.  If chunk argument is 0
1236         and not static, set value to 1.
1238 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1240         PR c++/49043
1241         * testsuite/libgomp.c++/pr49043.C: New test.
1243         PR c++/48869
1244         * testsuite/libgomp.c++/pr48869.C: New test.
1246 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1248         PR fortran/48894
1249         * fortran.c: Include limits.h.
1250         (TO_INT): Define.
1251         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1252         *set.
1253         (omp_set_num_threads_8_, omp_set_schedule_8_,
1254         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1255         omp_get_team_size_8_): Use TO_INT macro.
1256         * testsuite/libgomp.fortran/pr48894.f90: New test.
1258 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1260         PR middle-end/48591
1261         * testsuite/libgomp.c/pr48591.c: New test.
1263 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1265         PR bootstrap/48135
1266         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1267         * configure: Regenerate.
1269 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1271         PR fortran/47886
1272         * testsuite/libgomp.fortran/task3.f90: New test.
1274 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1276         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1278 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1280         PR libgomp/47854
1281         * libgomp.texi (omp_get_wtime): Don't say time in the past
1282         must be Unix Epoch.
1284 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1286         PR libgomp/47804
1287         * testsuite/libgomp.fortran/fortran.exp: Check for both
1288         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1289         but $blddir != "", still append ${blddir}/${lang_library_path}
1290         to ld_library_path.
1292 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1294         PR libgomp/47758
1295         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1296         of libquadmath.a before adding its libpath to ldflags.
1298 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1300         PR libgomp/47731
1301         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1302         to FUTEX_WAIT futex syscall.
1303         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1305 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1307         * configure: Regenerate.
1309 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1311         PR libstdc++/36104
1312         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1314 2011-01-16  Gerald Pfeifer
1316         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1318 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1320         PR fortran/46874
1321         * libgomp.fortran/allocatable6.f90: New test.
1323 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1325         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1326         * configure: Regenerate.
1328 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1330         PR target/40125
1331         PR lto/46695
1332         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1333         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1334         * aclocal.m4: Regenerate.
1335         * configure: Regenerate.
1336         * Makefile.in: Regenerate.
1337         * testsuite/Makefile.in: Regenerate.
1339 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
1341         PR fortran/46753
1342         * libgomp.fortran/pr46753.f90: New test.
1344         PR libgomp/43706
1345         * env.c (initialize_env): Default to spin count 300000
1346         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1347         is specified.
1349         PR libgomp/45240
1350         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1351         at the end if sync builtins aren't supported.
1353 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1355         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1357 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1359         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1361 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
1363         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1365 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1366             Tobias Burnus  <burnus@net-b.de>
1368         PR fortran/32049
1369         * configure.ac:
1370         * configure: Regenerate.
1372 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1374         * config/linux/futex.h: New.
1375         * config/linux/arm/mutex.h: New.
1376         * configure.tgt (arm*-*-linux*): Add config path.
1378 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1380         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1382 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1384         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1385         Change Fortran datatype to LOGICAL.
1386         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1387         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1389 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1391         * configure: Regenerate.
1393 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
1395         * libgomp.texi: Add function keyword to a couple of Fortran
1396         interfaces, use integer instead of int for Fortran.
1398 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
1400         * libgomp.texi: Fix spelling and pasto problems throughout.
1401         Adjust prototypes to match code.
1403 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1405         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1406         silence -fwhole-file warning.
1408 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1410         * configure.tgt (*-*-solaris2.[56]*): Removed.
1412 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1414         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1415         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1416         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1417         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1418         targetting solaris2*.
1419         * configure: Regenerate.
1420         * config.h.in: Regenerate.
1422         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1423         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1424         Add libgomp_version_dep.
1425         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1426         versioning.
1427         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1428         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1429         * Makefile.in: Regenerate.
1431         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1432         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1433         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1434         to common block, protected by
1435         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1437 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1439         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
1441 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
1443         PR bootstrap/43170
1444         * configure: Regenerate.
1446 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1448         PR other/43620
1449         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1450         * configure: Regenerate.
1451         * Makefile.in: Regenerate.
1452         * testsuite/Makefile.in: Regenerate.
1454 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1456         PR c/43893
1457         * testsuite/libgomp.c/pr43893.c: New test.
1458         * testsuite/libgomp.c++/pr43893.C: New test.
1460 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1462         PR middle-end/43570
1463         * testsuite/libgomp.fortran/vla8.f90: New test.
1465 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1467         PR libgomp/43706
1468         * config/linux/affinity.c (gomp_init_affinity): Decrease
1469         gomp_available_cpus if affinity mask confines the process to fewer
1470         CPUs.
1471         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1472         non-NULL, just return gomp_available_cpus.
1474         PR libgomp/43569
1475         * sections.c (gomp_sections_init): Initialize ws->mode.
1477 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1479         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1480         not unused bar variable.
1481         * configure: Regenerate.
1483 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1485         * Makefile.in: Regenerate.
1486         * aclocal.m4: Regenerate.
1487         * testsuite/Makefile.in: Regenerate.
1489 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
1491         PR libgomp/42942
1492         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1493         (initialize_env): Adjust callers.
1494         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1495         when the argument is 0.
1497         * testsuite/libgomp.c/pr42942.c: New test.
1499 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
1501         PR middle-end/42644
1502         PR middle-end/42130
1503         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1504         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1506 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1508         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1509         * testsuite/libgomp.c++/task-6.C: Likewise.
1511 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
1513         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1515 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
1517         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1518         * configure: Regenerate.
1520 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
1522         PR fortran/42866
1523         * testsuite/libgomp.fortran/allocatable5.f90: New test.
1525 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
1527         * configure.ac: Test for executability of GFORTRAN.
1528         * configure: Regenerate.
1530 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1532         * configure: Regenerate.
1534 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
1536         PR libgomp/42602
1537         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1539 2010-01-03  Richard Guenther  <rguenther@suse.de>
1541         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1543 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
1545         * testsuite/libgomp.graphite/pr4118.c: New.
1547 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1549         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1550         for darwin, protect the test with require-effective-target tls_runtime.
1551         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1553 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1555         PR target/41605
1556         * testsuite/lib/libgomp.exp: Provide -B options to allow for
1557         link spec %s substitutions for static libraries.
1559 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
1561         PR testsuite/42135
1562         * libgomp.graphite/force-parallel-2.c: Reduce array size.
1564 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1566         * Makefile.in: Regenerate.
1567         * configure: Regenerate.
1568         * testsuite/Makefile.in: Regenerate.
1570 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1572         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1573         settings for LC_ALL and LANG.
1575 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1577         PR fortran/42162
1578         * testsuite/libgomp.fortran/pr42162.f90: New test.
1580 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1582         PR middle-end/42029
1583         * testsuite/libgomp.c/pr42029.c: New test.
1585 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1587         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1588         *s.  Accept ld version without text in ()s.
1589         * configure: Regenerated.
1591 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1593         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1595 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1597         PR libgomp/41418
1598         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1599         or a hyphen (happens with fortran language disabled).
1600         * configure: Regenerate.
1602 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1604         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1605         use sed script portable to Solaris /bin/sed for extracting ld
1606         version.
1607         * configure: Regenerate.
1609 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
1611         * testsuite/libgomp.graphite/bounds.c: New test.
1613 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1615         * Makefile.am (libgomp_la_LINK): New.
1616         * Makefile.in: Regenerate.
1618 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1620         * configure.ac (AC_PREREQ): Bump to 2.64.
1622 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1624         * Makefile.am (install-html, install-pdf): Remove.
1625         * Makefile.in: Regenerate.
1627         * Makefile.in: Regenerate.
1628         * aclocal.m4: Regenerate.
1629         * config.h.in: Regenerate.
1630         * configure: Regenerate.
1631         * testsuite/Makefile.in: Regenerate.
1633 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1635         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1636         * Makefile.in: Regenerate.
1638 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
1640         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1641         * Makefile.in: Regenerate.
1643 2009-08-19  Tobias Burnus  <burnus@net-b.de>
1645         PR fortran/41102
1646         omp_lib.h.in: Fix -std=f95 errors.
1649 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
1651         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1652         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1653         * testsuite/libgomp.graphite/graphite.exp: New.
1655 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
1657         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1658         only build.
1660 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1662         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1663         needed memory barrier semantics.
1664         * config/linux/mips/mutex.h: New file.
1666 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1668         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1670 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
1672         * configure: Regenerate.
1674 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1676         PR testsuite/40699
1677         PR testsuite/40707
1678         PR testsuite/40709
1679         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1680         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1681         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1683 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1685         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1686         options when choosing a multilib.
1688 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1690         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1691         ld_library_path.  Use add_path.  Add just find_libgcc_s to
1692         ld_library_path, not every libgcc multilib directory.
1693         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1694         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1695         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1696         Use add_path.
1697         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1699 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
1701         * Makefile.am (LTLDFLAGS): Define.
1702         (LINK): Define.
1703         * Makefile.in: Regenerate.
1705 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1707         PR fortran/39718
1708         * testsuite/libgomp.fortran/fortran.exp: Don't link with
1709         libgfortranbegin, check existence of libgfortran.a instead of
1710         libgfortranbegin.a.
1712 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1714         PR libgomp/40174
1715         * team.c (gomp_thread_start): Destroy thr->release semaphore.
1716         (gomp_free_pool_helper): Likewise.
1718 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
1719             Jakub Jelinek  <jakub@redhat.com>
1721         PR fortran/35423
1722         * testsuite/libgomp.fortran/workshare2.f90: New test.
1724 2009-04-09  Nick Clifton  <nickc@redhat.com>
1726         * iter.c: Change copyright header to refer to version 3 of the
1727         GNU General Public License with version 3.1 of the GCC Runtime
1728         Library Exception and to point readers at the COPYING3 and
1729         COPYING3.RUNTIME files and the FSF's license web page.
1730         * alloc.c: Likewise.
1731         * barrier.c: Likewise.
1732         * config/bsd/proc.c: Likewise.
1733         * config/linux/affinity.c: Likewise.
1734         * config/linux/alpha/futex.h: Likewise.
1735         * config/linux/bar.c: Likewise.
1736         * config/linux/bar.h: Likewise.
1737         * config/linux/ia64/futex.h: Likewise.
1738         * config/linux/ia64/mutex.h: Likewise.
1739         * config/linux/lock.c: Likewise.
1740         * config/linux/mips/futex.h: Likewise.
1741         * config/linux/mutex.c: Likewise.
1742         * config/linux/mutex.h: Likewise.
1743         * config/linux/powerpc/futex.h: Likewise.
1744         * config/linux/proc.c: Likewise.
1745         * config/linux/ptrlock.c: Likewise.
1746         * config/linux/ptrlock.h: Likewise.
1747         * config/linux/s390/futex.h: Likewise.
1748         * config/linux/sem.c: Likewise.
1749         * config/linux/sem.h: Likewise.
1750         * config/linux/sparc/futex.h: Likewise.
1751         * config/linux/wait.h: Likewise.
1752         * config/linux/x86/futex.h: Likewise.
1753         * config/mingw32/proc.c: Likewise.
1754         * config/mingw32/time.c: Likewise.
1755         * config/posix/affinity.c: Likewise.
1756         * config/posix/bar.c: Likewise.
1757         * config/posix/bar.h: Likewise.
1758         * config/posix/lock.c: Likewise.
1759         * config/posix/mutex.h: Likewise.
1760         * config/posix/proc.c: Likewise.
1761         * config/posix/ptrlock.h: Likewise.
1762         * config/posix/sem.c: Likewise.
1763         * config/posix/sem.h: Likewise.
1764         * config/posix/time.c: Likewise.
1765         * config/posix95/lock.c: Likewise.
1766         * critical.c: Likewise.
1767         * env.c: Likewise.
1768         * error.c: Likewise.
1769         * fortran.c: Likewise.
1770         * iter_ull.c: Likewise.
1771         * libgomp.h: Likewise.
1772         * libgomp_f.h.in: Likewise.
1773         * libgomp_g.h: Likewise.
1774         * loop.c: Likewise.
1775         * loop_ull.c: Likewise.
1776         * omp.h.in: Likewise.
1777         * omp_lib.f90.in: Likewise.
1778         * omp_lib.h.in: Likewise.
1779         * ordered.c: Likewise.
1780         * parallel.c: Likewise.
1781         * sections.c: Likewise.
1782         * single.c: Likewise.
1783         * task.c: Likewise.
1784         * team.c: Likewise.
1785         * work.c: Likewise.
1787 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1789         * testsuite/config/default.exp: Change copyright header to refer to
1790         version 3 of the GNU General Public License and to point readers
1791         at the COPYING3 file and the FSF's license web page.
1793 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1795         PR middle-end/39573
1796         * libgomp.c++/pr39573.C: New test.
1798 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1800         PR other/39591
1801         * testsuite/libgomp.c/pr39591-1.c: New test.
1802         * testsuite/libgomp.c/pr39591-2.c: New test.
1803         * testsuite/libgomp.c/pr39591-3.c: New test.
1805 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
1807         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
1808         * testsuite/libgomp.c/atomic-6.c: Ditto.
1810 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1812         PR c/39495
1813         * testsuite/libgomp.c/loop-12.c: New test.
1814         * testsuite/libgomp.c/loop-11.c: New test.
1815         * testsuite/libgomp.c++/loop-11.C: New test.
1816         * testsuite/libgomp.c++/loop-12.C: New test.
1817         * testsuite/libgomp.c++/for-8.C: New test.
1819 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1821         * configure: Regenerate.
1823 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
1825         PR middle-end/39154
1826         * testsuite/libgomp.c/pr39154.c: New test.
1828 2009-01-30  Ian Lance Taylor  <iant@google.com>
1830         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
1831         libgomp_ld_is_gold.  Get gold version number.
1832         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
1833         * configure: Rebuild.
1835 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1837         * testsuite/lib/libgomp.exp: Add -B option for targets that
1838         use libgfortran.a%s in their specs.
1840 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
1842         PR libgomp/38086
1843         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
1844         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
1845         HAVE_AS_SYMVER_DIRECTIVE is not defined.
1846         * configure: Regenerated.
1847         * config.h.in: Likewise.
1849 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
1851         PR c++/38650
1852         * testsuite/libgomp.c/pr38650.c: New test.
1853         * testsuite/libgomp.c++/pr38650.C: New test.
1855 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
1857         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
1859 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
1861         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
1863 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1865         * configure: Regenerate.
1867 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1869         PR middle-end/36802
1870         * testsuite/libgomp.c/pr36802-1.c: New test.
1871         * testsuite/libgomp.c/pr36802-2.c: New test.
1872         * testsuite/libgomp.c/pr36802-3.c: New test.
1874 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
1876         PR libgomp/38270
1877         * config/linux/powerpc/mutex.h: New.
1879 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1881         PR c++/38257
1882         * testsuite/libgomp.c++/for-7.C: New test.
1884         PR c++/38348
1885         * testsuite/libgomp.c++/for-6.C: New test.
1887 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1889         PR testsuite/28870
1890         * testsuite/lib/libgomp.exp: Include new timeout library files.
1891         (libgomp_target_compile): Set timeout value from new proc.
1893 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
1895         PR libgomp/37938
1896         * config/linux/ia64/mutex.h: New.
1898 2008-11-04  Tobias Burnus  <burnus@net-b.de>
1900         PR libgomp/37935
1901         * libgomp.texi (Runtime library routines, environment variables):
1902         Update for OpenMP version 3.0.
1904 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1905             Steve Ellcey  <sje@cup.hp.com>
1907         * configure: Regenerate for new libtool.
1908         * Makefile.in: Ditto.
1909         * testsuite/Makefile.in: Ditto.
1911 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
1912             Andreas Tobler  <a.tobler@schweiz.org>
1914         * config/bsd/proc.c: New file.
1915         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
1916         * configure.ac: Check for header <sys/sysctl.h>
1917         * configure: Regenerate.
1918         * config.h.in: Likewise.
1920 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
1922         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
1924 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1926         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
1927         * Makefile.in: Regenerated.
1928         * testsuite/Makefile.in: Regenerated.
1930 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
1932         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
1933         depend on blddir if blddir exists.
1934         (libgomp_target_compile): Likewise.
1935         * testsuite/libgomp.c++/c++.exp: Likewise.
1936         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1938 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1940         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
1941         Do not list GPL as Invariant Section.
1943 2008-07-28  Ilie Garbacea  <ilie@mips.com>
1944             Chao-ying Fu  <fu@mips.com>
1946         * configure.tgt: Enable futex for MIPS.
1947         * config/linux/mips/futex.h: New file.
1949 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
1951         * team.c (gomp_team_end): Free team immediately if it has
1952         just one thread.
1954 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
1956         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
1957         * testsuite/libgomp.fortran/fortran.exp: Same.
1958         * testsuite/libgomp.c/c.exp: Same.
1959         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
1960         directory to library path first.
1962 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
1964         * env.c (parse_stacksize): Add cast to avoid warning.
1965         (parse_spincount): Likewise.
1967 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1969         * testsuite/libgomp.c/loop-10.c: New test.
1970         * libgomp.c/loop-3.c (main): Add lastprivate clause.
1971         * libgomp.c++/loop-6.C (main): Likewise.
1973         PR debug/36617
1974         * testsuite/libgomp.c/debug-1.c: New test.
1976 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1978         * testsuite/libgomp.c/nqueens-1.c: New test.
1980         PR c++/36523
1981         * testsuite/libgomp.c++/task-7.C: New function.
1983 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1985         * configure: Regenerate.
1987 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1989         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
1990         mutex when HAVE_SYNC_BUILTINS isn't defined.
1992 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1994         * libgomp.texi (omp_test_lock): Fix typo.
1996 2008-06-12  Tobias Burnus  <burnus@net-b.de>
1998         * omp_lib.f90.in: Add "implicit none".
2000 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2002         PR middle-end/36506
2003         * testsuite/libgomp.c/reduction-5.c: New test.
2005 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
2007         * libgomp.h (struct gomp_task): Add in_tied_task field.
2008         * task.c (gomp_init_task): Initialize it.
2009         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
2010         unconditionally.  Don't call gomp_team_barrier_wake if
2011         current task is implicit or if(0) from implicit and number of
2012         running tasks is equal to nthreads - 1.
2014         PR libgomp/36471
2015         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2016         omp_get_team_size_8): Fix pastos.
2018         PR libgomp/36469
2019         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
2020         * configure: Regenerated.
2021         * config.h.in: Regenerated.
2022         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
2023         defined.
2025 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
2027         PR bootstrap/36452
2028         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
2029         (GOMP_loop_ull_dynamic_start): Likewise.
2030         (GOMP_loop_ull_guided_start): Likewise.
2031         (GOMP_loop_ull_ordered_static_start): Likewise.
2032         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
2033         (GOMP_loop_ull_ordered_guided_start): Likewise.
2035 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2036             Richard Henderson  <rth@redhat.com>
2037             Ulrich Drepper  <drepper@redhat.com>
2038             Jakob Blomer  <jakob.blomer@ira.uka.de>
2040         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
2041         Substitute also OMP_*LOCK_25*.
2042         * configure: Regenerated.
2043         * config.h.in: Regenerated.
2044         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
2045         ptrlock.c and task.c.
2046         * Makefile.in: Regenerated.
2047         * testsuite/Makefile.in: Regenerated.
2048         * task.c: New file.
2049         * loop_ull.c: New file.
2050         * iter_ull.c: New file.
2051         * libgomp.h: Include ptrlock.h.
2052         (enum gomp_task_kind): New type.
2053         (struct gomp_team): Add task_lock, task_queue, task_count,
2054         task_running_count, single_count fields.  Add
2055         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
2056         Remove work_share_lock, generation_mask,
2057         oldest_live_gen, num_live_gen and init_work_shares fields, add
2058         work work_share_list_alloc, work_share_list_free and work_share_chunk
2059         fields.  Change work_shares from pointer to pointers into an array.
2060         Change ordered_release field into gomp_sem_t ** from flexible array
2061         member.  Add implicit_task and initial_work_shares fields.
2062         Move close to the end of the struct.
2063         (struct gomp_team_state): Add single_count, last_work_share,
2064         active_level and level fields, remove work_share_generation.
2065         (gomp_barrier_handle_tasks): New prototype.
2066         (gomp_finish_task): New inline function.
2067         (struct gomp_work_share): Move chunk_size, end, incr into
2068         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2069         next_ll fields.  Reshuffle fields.  Add next_alloc,
2070         next_ws, next_free and inline_ordered_team_ids fields, change
2071         ordered_team_ids into pointer from flexible array member.
2072         Add mode field.  Put lock and next into a different cache line
2073         from most of the write-once fields.
2074         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2075         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2076         gomp_iter_ull_guided_next): New prototypes.
2077         (gomp_new_icv): New prototype.
2078         (struct gomp_thread): Add thread_pool and task fields.
2079         (struct gomp_thread_pool): New type.
2080         (gomp_new_team): New prototype.
2081         (gomp_team_start): Change type of last argument.
2082         (gomp_new_work_share): Removed.
2083         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2084         (gomp_work_share_init_done): New static inline.
2085         (gomp_throttled_spin_count_var, gomp_available_cpus,
2086         gomp_managed_threads): New extern decls.
2087         (gomp_init_task): New prototype.
2088         (gomp_spin_count_var): New extern var decl.
2089         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2090         or no alias support, or if not PIC.
2091         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2092         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2093         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2094         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2095         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2096         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2097         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2098         gomp_test_nest_lock_25): New prototypes.
2099         (omp_lock_symver, strong_alias): Define.
2100         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2101         decls.
2102         (gomp_end_task): New.
2103         (struct gomp_task_icv, gomp_global_icv): New.
2104         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2105         (struct gomp_task): New.
2106         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2107         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2108         (gomp_icv): New.
2109         (gomp_schedule_type): Reorder enum to match
2110         omp_sched_t.
2111         * team.c (struct gomp_thread_start_data): Add thread_pool and task
2112         fields.
2113         (gomp_thread_start): Add gomp_team_barrier_wait call.
2114         For non-nested case remove clearing of docked thread thr fields.
2115         Use pool fields instead of global gomp_* variables.  Use
2116         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
2117         Create tasks for each member thread.
2118         (free_team): Only destroy team barrier, task_lock here and free it.
2119         (gomp_free_thread): Free last_team if non-NULL.
2120         (gomp_team_end): Call gomp_team_barrier_wait instead of
2121         gomp_barrier_wait.  For nested case call one extra
2122         gomp_barrier_wait.  Move here some destruction from free_team.
2123         Call free_team on pool->last_team if any, rather than freeing
2124         current team.  Destroy work_share_list_free_lock ifndef
2125         HAVE_SYNC_BUILTINS.
2126         (gomp_new_icv): New function.
2127         (gomp_threads, gomp_threads_size, gomp_threads_used,
2128         gomp_threads_dock): Removed.
2129         (gomp_thread_destructor): New variable.
2130         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2131         functions.
2132         (gomp_team_start): Create new pool if current thread doesn't have
2133         one.  Use pool fields instead of global gomp_* variables.
2134         Initialize thread_pool field for new threads.  Clear single_count.
2135         Change last argument from ws to team, don't create
2136         new team, set ts.work_share to &team->work_shares[0] and clear
2137         ts.last_work_share.  Don't clear ts.work_share_generation.
2138         If number of threads changed, adjust atomically gomp_managed_threads.
2139         Use gomp_init_task instead of gomp_new_task,
2140         set thr->task to the corresponding implicit_task array entry.
2141         Create tasks for each member thread.  Initialize ts.level.
2142         (initialize_team): Call pthread_key_create on
2143         gomp_thread_destructor.
2144         (team_destructor): New function.
2145         (new_team): Removed.
2146         (gomp_new_team): New function.
2147         (free_team): Free gomp_work_share blocks chained through next_alloc,
2148         instead of freeing work_shares and destroying work_share_lock.
2149         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
2150         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
2151         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2152         of gomp_barrier_wait.
2153         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2154         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
2155         if gomp_work_share_start returned true.  Don't unlock ws->lock.
2156         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2157         of gomp_barrier_wait.
2158         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
2159         gomp_work_share_init_done if gomp_work_share_start returned true.
2160         Don't unlock ws->lock.
2161         * work.c: Include stddef.h.
2162         (free_work_share): Use work_share_list_free_lock instead
2163         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
2164         Call gomp_fini_work_share and then either free ws if orphaned, or
2165         put it into work_share_list_free list of the current team.
2166         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2167         functions.
2168         (gomp_work_share_start, gomp_work_share_end,
2169         gomp_work_share_end_nowait): Rewritten.
2170         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2171         (openmp_version): Set to 200805.
2172         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2173         omp_sched_guided, omp_sched_auto): New parameters.
2174         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2175         omp_set_max_active_levels, omp_get_max_active_levels,
2176         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2177         omp_get_active_level): New interfaces.
2178         * omp_lib.h.in (openmp_version): Set to 200805.
2179         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2180         omp_sched_guided, omp_sched_auto): New parameters.
2181         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2182         omp_set_max_active_levels, omp_get_max_active_levels,
2183         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2184         omp_get_active_level): New externals.
2185         * loop.c: Include limits.h.
2186         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2187         GFS_AUTO.
2188         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2189         Likewise.  Use gomp_icv.
2190         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2191         ts.static_trip here.
2192         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2193         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
2194         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2195         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
2196         don't unlock ws->lock, otherwise lock it.
2197         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2198         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
2199         (gomp_parallel_loop_start): Call gomp_new_team instead of
2200         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
2201         Adjust gomp_team_start caller.  Pass 0 as second argument to
2202         gomp_resolve_num_threads.
2203         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2204         If adding ws->chunk_size nthreads + 1 times after end won't
2205         overflow, set ws->mode to 1.
2206         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2207         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2208         GOMP_loop_ull_ordered_static_start,
2209         GOMP_loop_ull_ordered_dynamic_start,
2210         GOMP_loop_ull_ordered_guided_start,
2211         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2212         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2213         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2214         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2215         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2216         prototypes.
2217         * libgomp.map: Export lock routines also @@OMP_2.0.
2218         (GOMP_loop_ordered_dynamic_first,
2219         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2220         GOMP_loop_ordered_static_first): Remove.
2221         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2222         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2223         GOMP_loop_ull_ordered_dynamic_next,
2224         GOMP_loop_ull_ordered_dynamic_start,
2225         GOMP_loop_ull_ordered_guided_next,
2226         GOMP_loop_ull_ordered_guided_start,
2227         GOMP_loop_ull_ordered_runtime_next,
2228         GOMP_loop_ull_ordered_runtime_start,
2229         GOMP_loop_ull_ordered_static_next,
2230         GOMP_loop_ull_ordered_static_start,
2231         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2232         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2233         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2234         (omp_set_schedule, omp_get_schedule,
2235         omp_get_thread_limit, omp_set_max_active_levels,
2236         omp_get_max_active_levels, omp_get_level,
2237         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2238         omp_set_schedule_, omp_set_schedule_8_,
2239         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2240         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2241         omp_get_max_active_levels_, omp_get_level_,
2242         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2243         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2244         New exports @@OMP_3.0.
2245         * omp.h.in (omp_sched_t): New type.
2246         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2247         omp_set_max_active_levels, omp_get_max_active_levels,
2248         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2249         omp_get_active_level): New prototypes.
2250         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2251         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2252         gomp_thread_limit_var, gomp_remaining_threads_count,
2253         gomp_remaining_threads_lock): New variables.
2254         (parse_spincount): New function.
2255         (initialize_env): Call gomp_init_num_threads unconditionally.
2256         Initialize gomp_available_cpus.  Call parse_spincount,
2257         initialize gomp_{,throttled_}spin_count_var
2258         depending on presence and value of OMP_WAIT_POLICY and
2259         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
2260         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2261         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
2262         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
2263         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
2264         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2265         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2266         (gomp_global_icv): New.
2267         (parse_schedule): Use it.  Parse "auto".
2268         (omp_set_num_threads): Use gomp_icv.
2269         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2270         Likewise.
2271         (omp_get_max_threads): Move from parallel.c.
2272         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2273         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2274         add ialias.
2275         (parse_stacksize, parse_wait_policy): New functions.
2276         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2277         both wrappers for compatibility and new locks.
2278         (omp_set_schedule, omp_get_schedule,
2279         omp_get_thread_limit, omp_set_max_active_levels,
2280         omp_get_max_active_levels, omp_get_level,
2281         omp_get_ancestor_thread_num, omp_get_team_size,
2282         omp_get_active_level): New ialias_redirect.
2283         (omp_set_schedule_, omp_set_schedule_8_,
2284         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2285         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2286         omp_get_max_active_levels_, omp_get_level_,
2287         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2288         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2289         New functions.
2290         * parallel.c: Include limits.h.
2291         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2292         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2293         argument to gomp_team_start.  Pass 0 as second argument to
2294         gomp_resolve_num_threads.
2295         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2296         if gomp_thread_limit_var != ULONG_MAX.
2297         (omp_in_parallel): Implement using ts.active_level.
2298         (omp_get_max_threads): Move to env.c.
2299         (omp_get_level, omp_get_ancestor_thread_num,
2300         omp_get_team_size, omp_get_active_level): New functions,
2301         add ialias.
2302         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2303         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2304         gomp_iter_dynamic_next instead of the _locked variant and don't take
2305         lock around it, otherwise acquire it before calling
2306         gomp_iter_dynamic_next_locked.
2307         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2308         gomp_iter_dynamic_next instead of the _locked variant and don't take
2309         lock around it.
2310         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2311         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2312         Adjust gomp_team_start caller.  Pass count as second argument to
2313         gomp_resolve_num_threads, don't adjust num_threads after the call.
2314         Use gomp_icv.
2315         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2316         ws->chunk_size by incr.
2317         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2318         code.
2319         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2320         types.
2321         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2322         (omp_check_defines): Check even the compat defines.
2323         * config/linux/ptrlock.c: New file.
2324         * config/linux/ptrlock.h: New file.
2325         * config/linux/wait.h: New file.
2326         * config/posix/ptrlock.c: New file.
2327         * config/posix/ptrlock.h: New file.
2328         * config/linux/bar.h (gomp_team_barrier_wait,
2329         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2330         (gomp_team_barrier_set_task_pending,
2331         gomp_team_barrier_clear_task_pending,
2332         gomp_team_barrier_set_waiting_for_tasks,
2333         gomp_team_barrier_waiting_for_tasks,
2334         gomp_team_barrier_done): New inlines.
2335         (gomp_barrier_t): Rewritten.
2336         (gomp_barrier_state_t): New typedef.
2337         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2338         gomp_barrier_wait_start): Rewritten.
2339         (gomp_barrier_wait_end): Change second argument to
2340         gomp_barrier_state_t.
2341         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2342         inlines.
2343         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2344         futex.h.
2345         (gomp_barrier_wait_end): Rewritten.
2346         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2347         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2348         * config/posix/bar.h (gomp_barrier_t): Add generation field.
2349         (gomp_barrier_state_t): New typedef.
2350         (gomp_team_barrier_wait,
2351         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2352         (gomp_barrier_wait_start): Or all but low 2 bits from generation
2353         into the return value.  Return gomp_barrier_state_t.
2354         (gomp_team_barrier_set_task_pending,
2355         gomp_team_barrier_clear_task_pending,
2356         gomp_team_barrier_set_waiting_for_tasks,
2357         gomp_team_barrier_waiting_for_tasks,
2358         gomp_team_barrier_done): New inlines.
2359         (gomp_barrier_wait_end): Change second argument to
2360         gomp_barrier_state_t.
2361         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2362         inlines.
2363         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2364         (gomp_barrier_wait_end): Change second argument to
2365         gomp_barrier_state_t.
2366         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2367         gomp_team_barrier_wake): New functions.
2368         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2369         futex.h.
2370         (gomp_futex_wake, gomp_futex_wait): New variables.
2371         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2372         * config/linux/lock.c: Rewrite to make locks task owned,
2373         for backwards compatibility provide the old entrypoints
2374         if symbol versioning.  Include wait.h instead of libgomp.h and
2375         futex.h.
2376         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2377         * config/posix95/lock.c: Rewrite to make locks task owned,
2378         for backwards compatibility provide the old entrypoints
2379         if symbol versioning.
2380         * config/posix/lock.c: Rewrite to make locks task owned,
2381         for backwards compatibility provide the old entrypoints
2382         if symbol versioning.
2383         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2384         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2385         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2386         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2387         (sys_futex0): Return error code.
2388         (futex_wake, futex_wait): If ENOSYS was returned, clear
2389         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2390         (cpu_relax, atomic_write_barrier): New static inlines.
2391         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2392         (futex_wake, futex_wait): If ENOSYS was returned, clear
2393         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2394         (cpu_relax, atomic_write_barrier): New static inlines.
2395         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2396         (sys_futex0): Return error code.
2397         (futex_wake, futex_wait): If ENOSYS was returned, clear
2398         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2399         (cpu_relax, atomic_write_barrier): New static inlines.
2400         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2401         (sys_futex0): Return error code.
2402         (futex_wake, futex_wait): If ENOSYS was returned, clear
2403         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2404         (cpu_relax, atomic_write_barrier): New static inlines.
2405         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2406         (sys_futex0): Return error code.
2407         (futex_wake, futex_wait): If ENOSYS was returned, clear
2408         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2409         (cpu_relax, atomic_write_barrier): New static inlines.
2410         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2411         (sys_futex0): Return error code.
2412         (futex_wake, futex_wait): If ENOSYS was returned, clear
2413         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2414         (cpu_relax, atomic_write_barrier): New static inlines.
2415         * config/linux/sem.c: Include wait.h instead of libgomp.h and
2416         futex.h.
2417         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2418         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2419         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2420         types.
2421         (omp_nest_lock_t): Change owner into void *, add lock field.
2422         * config/posix95/omp-lock.h: Include semaphore.h.
2423         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2424         (omp_lock_t): Use sem_t instead of mutex if semaphores
2425         aren't broken.
2426         (omp_nest_lock_t): Likewise.  Change owner to void *.
2427         * config/posix/omp-lock.h: Include semaphore.h.
2428         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2429         (omp_lock_t): Use sem_t instead of mutex if semaphores
2430         aren't broken.
2431         (omp_nest_lock_t): Likewise.  Add owner field.
2433 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2435         * testsuite/libgomp.c/collapse-1.c: New test.
2436         * testsuite/libgomp.c/collapse-2.c: New test.
2437         * testsuite/libgomp.c/collapse-3.c: New test.
2438         * testsuite/libgomp.c/icv-1.c: New test.
2439         * testsuite/libgomp.c/icv-2.c: New test.
2440         * testsuite/libgomp.c/lib-2.c: New test.
2441         * testsuite/libgomp.c/lock-1.c: New test.
2442         * testsuite/libgomp.c/lock-2.c: New test.
2443         * testsuite/libgomp.c/lock-3.c: New test.
2444         * testsuite/libgomp.c/loop-4.c: New test.
2445         * testsuite/libgomp.c/loop-5.c: New test.
2446         * testsuite/libgomp.c/loop-6.c: New test.
2447         * testsuite/libgomp.c/loop-7.c: New test.
2448         * testsuite/libgomp.c/loop-8.c: New test.
2449         * testsuite/libgomp.c/loop-9.c: New test.
2450         * testsuite/libgomp.c/nested-3.c: New test.
2451         * testsuite/libgomp.c/nestedfn-6.c: New test.
2452         * testsuite/libgomp.c/sort-1.c: New test.
2453         * testsuite/libgomp.c/task-1.c: New test.
2454         * testsuite/libgomp.c/task-2.c: New test.
2455         * testsuite/libgomp.c/task-3.c: New test.
2456         * testsuite/libgomp.c/task-4.c: New test.
2457         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2458         to C++ testsuite default compiler options.
2459         * testsuite/libgomp.c++/collapse-1.C: New test.
2460         * testsuite/libgomp.c++/collapse-2.C: New test.
2461         * testsuite/libgomp.c++/ctor-10.C: New test.
2462         * testsuite/libgomp.c++/for-1.C: New test.
2463         * testsuite/libgomp.c++/for-2.C: New test.
2464         * testsuite/libgomp.c++/for-3.C: New test.
2465         * testsuite/libgomp.c++/for-4.C: New test.
2466         * testsuite/libgomp.c++/for-5.C: New test.
2467         * testsuite/libgomp.c++/loop-8.C: New test.
2468         * testsuite/libgomp.c++/loop-9.C: New test.
2469         * testsuite/libgomp.c++/loop-10.C: New test.
2470         * testsuite/libgomp.c++/task-1.C: New test.
2471         * testsuite/libgomp.c++/task-2.C: New test.
2472         * testsuite/libgomp.c++/task-3.C: New test.
2473         * testsuite/libgomp.c++/task-4.C: New test.
2474         * testsuite/libgomp.c++/task-5.C: New test.
2475         * testsuite/libgomp.c++/task-6.C: New test.
2476         * testsuite/libgomp.fortran/allocatable1.f90: New test.
2477         * testsuite/libgomp.fortran/allocatable2.f90: New test.
2478         * testsuite/libgomp.fortran/allocatable3.f90: New test.
2479         * testsuite/libgomp.fortran/allocatable4.f90: New test.
2480         * testsuite/libgomp.fortran/collapse1.f90: New test.
2481         * testsuite/libgomp.fortran/collapse2.f90: New test.
2482         * testsuite/libgomp.fortran/collapse3.f90: New test.
2483         * testsuite/libgomp.fortran/collapse4.f90: New test.
2484         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2485         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2486         * testsuite/libgomp.fortran/lib4.f90: New test.
2487         * testsuite/libgomp.fortran/lock-1.f90: New test.
2488         * testsuite/libgomp.fortran/lock-2.f90: New test.
2489         * testsuite/libgomp.fortran/nested1.f90: New test.
2490         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2491         * testsuite/libgomp.fortran/strassen.f90: New test.
2492         * testsuite/libgomp.fortran/tabs1.f90: New test.
2493         * testsuite/libgomp.fortran/tabs2.f: New test.
2494         * testsuite/libgomp.fortran/task1.f90: New test.
2495         * testsuite/libgomp.fortran/task2.f90: New test.
2496         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2497         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2498         * testsuite/libgomp.c/pr26943-2.c: Likewise.
2499         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2500         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2502 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
2504         PR c++/36308
2505         * testsuite/libgomp.c++/ctor-11.C: New test.
2506         * testsuite/libgomp.c++/ctor-12.C: New test.
2508 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2510         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2512 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2514         PR middle-end/36106
2515         * testsuite/libgomp.c/atomic-5.c: New test.
2516         * testsuite/libgomp.c/atomic-6.c: New test.
2517         * testsuite/libgomp.c/autopar-1.c: New test.
2519 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2521         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2522         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2523         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2524         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2525         * configure: Regenerate.
2526         * Makefile.in, testsuite/Makefile.in: Likewise.
2528 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2530         PR bootstrap/35457
2531         * aclocal.m4: Regenerate.
2532         * configure: Regenerate.
2534 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2536         PR middle-end/35611
2537         * testsuite/libgomp.c/atomic-4.c: New test.
2539         PR libgomp/35625
2540         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2541         (gomp_iter_guided_next): Likewise.
2542         * testsuite/libgomp.c/pr35625.c: New test.
2544 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2546         * aclocal.m4: Regenerate.
2547         * configure: Likewise.
2548         * Makefile.in: Likewise.
2549         * testsuite/Makefile.in: Likewise.
2551 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
2553         PR middle-end/35185
2554         * testsuite/libgomp.c++/pr35185.C: New test.
2556 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2558         PR middle-end/35549
2559         * testsuite/libgomp.c/pr35549.c: New test.
2561 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2563         * testsuite/libgomp.c/atomic-3.c: New test.
2565 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2567         PR fortran/33197
2568         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2569         .F08 file suffixes.
2571 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
2573         PR libgomp/33131
2574         * configure.ac: Add ACX_HEADER_STRING.
2575         * env.c: Include strings.h.
2576         * aclocal.m4: Regenerate.
2577         * config.h.in: Regenerate.
2578         * configure: Regenerate.
2579         * Makefile.in: Regenerate.
2580         * testsuite/Makefile.in: Regenerate.
2582 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2584         PR middle-end/35196
2585         * testsuite/libgomp.c/pr35196.c: New test.
2587         PR middle-end/35130
2588         * testsuite/libgomp.fortran/pr35130.f90: New test.
2589         * testsuite/libgomp.c/pr35130.c: New test.
2591 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
2593         PR middle-end/33880
2594         * testsuite/libgomp.c/pr33880.c: New test.
2595         * testsuite/libgomp.fortran/pr33880.f90: New test.
2597 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2599         * configure: Regenerate.
2601 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
2603         * configure.ac: Move futex checking into ../config/futex.m4.
2604         * configure: Rebuilt.
2605         * aclocal.m4: Rebuilt.
2606         * Makefile.in: Rebuilt.
2608         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2609         2007-10-15 ../config/tls.m4 change.
2611 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
2613         PR c++/34513
2614         * testsuite/libgomp.c/pr34513.c: New test.
2615         * testsuite/libgomp.c++/pr34513.C: New test.
2617 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
2619         PR target/32765
2620         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2622 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
2624         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
2626 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
2628         * testsuite/libgomp.c/private-1.c: New test.
2630 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
2631             Paolo Bonzini  <bonzini@gnu.org>
2633         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
2634         instead of 'VPATH ='.
2635         * Makefile.in: Regenerate.
2637 2007-11-23  Matthias Klose  <doko@ubuntu.com>
2639         * configure.ac: Adjust makeinfo version check.
2640         * configure: Regenerate.
2642 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2644         PR fortran/34020
2645         * testsuite/libgomp.fortran/pr34020.f90: New test.
2647 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2649         PR c++/33894
2650         * testsuite/libgomp.c++/atomic-1.C: New test.
2652 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
2654         PR libgomp/33275
2655         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2656         Make x and y integers rather than (implicit) reals.  Add private (j)
2657         clause to the last omp parallel.
2659 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
2661         * configure: Regenerate following changes to ../config/tls.m4.
2663 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
2665         * testsuite/libgomp.fortran/stack.f90: New test.
2667 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
2669         * config/mingw32/proc.c: New file.
2671 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2673         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2674         (main): Use __get_cpuid to get i386 target fetaures.
2675         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2676         (main): Use __get_cpuid to get x86_64 target fetaures.
2678 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
2680         PR target/32765
2681         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2682         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2684 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2686         PR fortran/32550
2687         * testsuite/libgomp.fortran/pr32550.f90: New test.
2688         * testsuite/libgomp.fortran/crayptr2.f90: New test.
2690 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2692         * aclocal.m4: Regenerated.
2694 2007-07-05  Tobias Burnus  <burnus@net-b.de>
2696         PR fortran/32359
2697         * testsuite/libgomp.fortran/pr32359.f90: New.
2699 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2701         PR libgomp/32468
2702         * sections.c (GOMP_parallel_sections_start): Only decrease
2703         number of threads to COUNT if dyn_var is true.
2704         * testsuite/libgomp.c/pr32468.c: New test.
2706 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2708         PR libgomp/26308
2709         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2711 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2713         PR middle-end/32362
2714         * testsuite/libgomp.c/pr32362-1.c: New test.
2715         * testsuite/libgomp.c/pr32362-2.c: New test.
2716         * testsuite/libgomp.c/pr32362-3.c: New test.
2718 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
2720         * team.c (gomp_team_start): Fix setting up thread_attr
2721         stack size.
2723 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2725         * configure: Regenerate.
2727 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2729         * Makefile.in: Regenerate.
2730         * configure: Regenerate.
2731         * aclocal.m4: Regenerate.
2732         * testsuite/Makefile.in: Regenerate.
2734 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
2736         * config/linux/proc.c: New file.
2738         PR libgomp/28482
2739         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2741 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
2743         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2745 2007-04-16  Matthias Klose  <doko@debian.org>
2747         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
2748         flags if not building with -m64.
2749         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
2750         flag for i?86-*-* targets, if current target matches -m64.
2752 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
2754         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
2755         * Makefile.in: Regenerate.
2757 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2759         PR testsuite/31369
2760         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
2761         ld_library_path.
2762         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2764 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
2766         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
2767         decls.
2768         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
2769         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
2770         (parse_affinity): New function.
2771         (initialize_env): Call it and gomp_init_affinity.
2772         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
2773         create new pthread_attr_t and call gomp_init_thread_affinity
2774         on it for each thread before passing the attribute to pthread_create.
2775         * config/linux/affinity.c: New file.
2776         * config/posix/affinity.c: New file.
2777         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
2778         * configure: Rebuilt.
2779         * config.h.in: Rebuilt.
2780         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
2781         * Makefile.in: Rebuilt.
2783 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
2785         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
2786         *-*-darwin*.
2787         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
2788         and use it if found.
2790 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
2792         * testsuite/config/default.exp: New file.
2793         * testsuite/lib/libgomp.exp: New file.
2794         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
2795         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
2796         load_lib *, load_gcc_lib *): Move to libgomp.exp.
2797         (libgomp_load): Remove.
2798         * testsuite/lib/libgomp.exp (libgomp_init): Compute
2799         always_ld_library_path, not ld_library_path.  Set additional_flags
2800         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
2801         (target_compile): Do not call libgomp_init.  Append lang_library_path
2802         and lang_link_flags to options.
2803         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
2804         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
2805         here.
2806         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
2807         always_ld_library_path.  Set LD_LIBRARY_PATH here.
2808         * testsuite/libgomp.fortran/fortran.exp: Ditto.
2809         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
2810         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
2811         CX8 flag.
2812         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
2813         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
2814         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
2815         * testsuite/libgomp.c/pr29947-1.c: Ditto.
2816         * testsuite/libgomp.c/atomic-10.c: Ditto.
2818 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
2820         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
2821         dg-final cleanup-modules line.
2822         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
2823         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
2824         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
2825         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2826         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2827         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2828         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2830 2007-03-18  Andreas Schwab  <schwab@suse.de>
2832         * acinclude.m4: Adjust regular expression for ld version
2833         extraction.
2834         * configure: Regenerate.
2836 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2838         * Makefile.am: Add install-pdf target as copied from
2839         automake v1.10 rules.
2840         * Makefile.in: Regenerate
2842 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
2844         PR libgomp/28486
2845         * configure: Regenerate.
2847         PR c++/30703
2848         * testsuite/libgomp.c++/pr30703.C: New test.
2850 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
2852         Revert:
2853         2006-07-05  Eric Christopher  <echristo@apple.com>
2854         * configure.ac: Depend addition of -pthread on host OS.
2855         * configure: Regenerate.
2857 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2859         * libgomp.texi: Fix spacing after abbreviations.
2861 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
2863         PR libgomp/30546
2864         * configure.ac: Add check for makeinfo
2865         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
2866         if an appropiate version of makeinfo is found.
2867         * aclocal.m4: Regenerated.
2868         * configure: Regenerated.
2869         * Makefile.in: Regenerated.
2870         * testsuite/Makefile.in: Regenerated.
2872 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
2874         PR libgomp/30540
2875         * libgomp.texi: More about implementation-dependent settings.
2877 2007-01-26  Tobias Burnus  <burnus@net-b.de>
2879         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
2881 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
2883         PR middle-end/30494
2884         * testsuite/libgomp.c/pr30494.c: New test.
2886 2007-01-15  Tom Tromey  <tromey@redhat.com>
2888         * configure: Rebuilt.
2889         * configure.ac: Fixed comment.
2891 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
2893         * libgomp.texi: Document implementation specific default values of
2894         environment variables.
2896 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
2898         PR libgomp/28209
2899         * libgomp.texi: New file.
2900         * configure.ac: Add --enable-generated-files-in-srcdir option.
2901         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
2902         files to srcdir.
2903         * Makefile.in: Regenerated.
2904         * config.h.in: Regenerated.
2905         * testsuite/Makefile.in: Regenerated.
2906         * NOTES: Removed.
2908 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
2910         PR libgomp/29949
2911         * env.c (omp_set_num_threads): Set illegal thread count to 1.
2913 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2915         * configure: Regenerate.
2917 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
2919         PR libgomp/29947
2920         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
2921         start if there shouldn't be any loop iterations.
2922         (gomp_loop_ordered_static_start): Remove start == end test.
2923         * testsuite/libgomp.c/pr29947-1.c: New test.
2924         * testsuite/libgomp.c/pr29947-2.c: New test.
2926 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
2928         * configure.tgt: Force initial-exec TLS model on Linux only.
2930 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
2932         * configure: Regenerated.
2934 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
2936         * env.c (parse_schedule): Reject out of range values.
2937         (parse_unsigned_long): Reject out of range, negative or zero values.
2939 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
2941         PR fortran/29629
2942         * testsuite/libgomp.fortran/pr29629.f90: New test.
2944 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2946         PR libgomp/29494
2947         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
2948         * config/posix95: New directory.
2949         * config/posix95/omp-lock.h: New file.
2950         * config/posix95/lock.c: Likewise.
2952 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
2954         * aclocal.m4: Regenerate.
2955         * configure: Regenerate.
2957 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2959         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
2960         '<' to '<='.
2962 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2964         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
2965         test.
2966         * configure: Regenerate.
2967         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
2969 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2971         PR middle-end/25261
2972         PR middle-end/28790
2973         * testsuite/libgomp.c/nestedfn-4.c: New test.
2974         * testsuite/libgomp.c/nestedfn-5.c: New test.
2975         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
2977         PR fortran/29097
2978         * testsuite/libgomp.fortran/condinc1.f: New test.
2979         * testsuite/libgomp.fortran/condinc2.f: New test.
2980         * testsuite/libgomp.fortran/condinc3.f90: New test.
2981         * testsuite/libgomp.fortran/condinc4.f90: New test.
2982         * testsuite/libgomp.fortran/condinc1.inc: New file.
2984 2006-09-18  Tom Tromey  <tromey@redhat.com>
2986         * configure: Rebuilt.
2988 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
2990         PR c/28768
2991         PR preprocessor/14634
2992         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
2993         to AC_DEFINE.
2994         * configure: Regenerate.
2996 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2998         * testsuite/libgomp.fortran/reduction3.f90: Change
2999         -2147483648 to -huge(i)-1 to avoid overflow.
3000         * testsuite/libgomp.fortran/reduction4.f90: Change
3001         Z'ffffffff' to not(0) to avoid overflow.
3003 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3005         PR libgomp/25938
3006         * Makefile.am (libsubincludedir): New.
3007         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
3008         * Makefile.in: Regenerate.
3010 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
3012         PR libgomp/28725
3013         * env.c: Include ctype.h.
3014         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
3015         leading and/or trailing whitespace and compare strings case
3016         insensitively.
3018 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
3020         PR fortran/28390
3021         * testsuite/libgomp.fortran/pr28390.f: New test.
3023 2006-07-05  Eric Christopher  <echristo@apple.com>
3025         * configure.ac: Depend addition of -pthread on host OS.
3026         * configure: Regenerate.
3028 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
3030         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
3031         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
3032         defined.
3034 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
3036         PR libgomp/26175
3037         PR libgomp/26477
3038         * configure.ac: If neither --enable-linux-futex nor
3039         --disable-linux-futex is passed, determine the default by checking
3040         for compiling and/or running against NPTL.  With --enable-linux-futex,
3041         check if SYS_gettid and SYS_futex are defined.
3042         * configure: Rebuilt.
3044 2006-06-14  Richard Henderson  <rth@redhat.com>
3046         PR libgomp/28008
3047         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
3048         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
3050 2006-06-09  Richard Henderson  <rth@redhat.com>
3052         * env.c (gomp_nthreads_var): Change to unsigned long.
3053         (gomp_run_sched_chunk): Likewise.
3054         (parse_unsigned_long): Rename from parse_num_threads and generalize.
3055         (initialize_env): Initialize gomp_thread_attr.
3056         * libgomp.h (gomp_nthreads_var): Update decl.
3057         (gomp_run_sched_chunk): Likewise.
3058         (gomp_thread_attr): Declare.
3059         * team.c (gomp_thread_attr): Export.
3060         (initialize_team): Don't initialize it.
3062 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
3064         PR fortran/27916
3065         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3066         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3068 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3070         * config/mingw32/time.c: New file.
3071         * configure.tgt: Use it.
3073 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3075         * Makefile.am: Add install-html target. Add install-html to .PHONY
3076         * Makefile.in: Regenerate.
3078 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3080         PR libgomp/27612
3081         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3082         * testsuite/libgomp.c/critical-1.c: Likewise.
3083         * testsuite/libgomp.c/loop-1.c: Likewise.
3084         * testsuite/libgomp.c/loop-2.c: Likewise.
3085         * testsuite/libgomp.c/single-1.c: Likewise.
3086         * testsuite/libgomp.c/ordered-1.c: Likewise.
3087         * testsuite/libgomp.c/ordered-2.c: Likewise.
3089 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3091         PR middle-end/27416
3092         * libgomp.fortran/pr27416-1.f90: New test.
3094 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
3096         PR fortran/27395
3097         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3098         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3100 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3102         PR c++/26943
3103         * testsuite/libgomp.c/pr26943-1.c: New test.
3104         * testsuite/libgomp.c/pr26943-2.c: New test.
3105         * testsuite/libgomp.c/pr26943-3.c: New test.
3106         * testsuite/libgomp.c/pr26943-4.c: New test.
3107         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3108         * testsuite/libgomp.c++/pr26943.C: New test.
3110 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3112         PR middle-end/27337
3113         * testsuite/libgomp.c++/pr27337.C: New test.
3115 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3117         PR c/26171
3118         * testsuite/libgomp.c/pr26171.c: New test.
3120 2006-04-25  Richard Henderson  <rth@redhat.com>
3122         PR libgomp/25865
3123         * configure.ac: Use GCC_CHECK_TLS.
3124         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3125         * Makefile.in, aclocal.m4, configure: Regenerate.
3127 2006-04-10  Matthias Klose  <doko@debian.org>
3129         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3130         directory names containing underscores.
3132 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
3134         PR c++/26691
3135         * testsuite/libgomp.c++/pr26691.C: New test.
3137 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3139         * testsuite/libgomp.fortran/retval2.f90: New test.
3141 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3143         * testsuite/libgomp.c++: New directory.
3145 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
3147         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3148         * config/posix/sem.c: Implement the above.
3150 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
3152         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3153         define HAVE_BROKEN_POSIX_SEMAPHORES.
3154         * configure: Rebuilt.
3155         * config.h.in: Rebuilt.
3157 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3159         PR bootstrap/26161
3160         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3161         for the other pthread check.
3162         * configure: Regenerate.
3163         * config.h.in: Regenerate.
3165 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3167         PR libgomp/25938
3168         PR libgomp/25984
3169         * Makefile.am (fincludedir): New variable.
3170         (nodist_include_HEADERS): Remove Fortran files.
3171         (nodist_finclude_HEADERS): New variable.
3172         * Makefile.in: Regenerated.
3174 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3176         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3177         Remove tests for returning assumed character length arrays.
3179 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3180             John David Anglin  <dave@hiauly1.hia.nrc.ca>
3182         PR libgomp/25936
3183         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3185 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
3187         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3189 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3191         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3192         part of LD_LIBRARY_PATH manually.
3194 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3196         PR libgomp/25852
3197         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3198         libgomp_init.
3200 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3202         PR libgomp/25884
3203         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3204         * configure.ac (PERL): Don't set.
3205         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3206         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3207         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3208         * omp.h.in: Wrap the new configure substitutions with @ characters.
3209         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3210         * aclocal.m4, configure, Makefile.in: Regenerate.
3211         * mkomp_h.pl: Delete.
3213 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3215         PR libgomp/25259
3216         * configure.ac: Use GCC_HEADER_STDINT.
3217         * libgomp.h: Include gstdint.h.
3218         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3219         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3221 2006-01-24  Richard Henderson  <rth@redhat.com>
3223         PR libgomp/25942
3224         * configure.ac: Add AM_MAINTAINER_MODE.
3225         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3227 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
3229         * Makefile.in: Regenerate.
3230         * testsuite/Makefile.in: Regenerate.
3231         * aclocal.m4: Regenerate.
3233 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
3235         * config/posix/proc.c: Conditional include of sys/loadavg.h for
3236         Solaris.
3237         * configure.ac: Add check for loadavg.h.
3238         (link_gomp): Adjust comment.
3239         * configure: Regenerate.
3240         * config.h.in: Regenerate.
3242 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
3244         PR libgomp/25877
3245         * configure.ac: Remove check for alloca.h.
3246         * configure: Regenerate.
3247         * config.h.in: Regenerate.
3248         * libgomp.h: define gomp_alloca to be __builtin_alloca.
3249         * team.c: Remove use of alloca.h.
3250         Call gomp_alloca instead of alloca.
3252 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
3254         PR libgomp/25877
3255         * team.c: Add include of alloca.h.
3256         * configure.ac: Add check for alloca.h.
3257         * configure: Regenerate.
3258         * config.h.in: Regenerate.
3260 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3262         PR fortran/25219
3263         * testsuite/libgomp.fortran/pr25219.f90: New test.
3265 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
3267         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3268         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3269         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3270         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3271         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3272         testsuite/libgomp.fortran/threadprivate1.f90,
3273         testsuite/libgomp.fortran/threadprivate2.f90,
3274         testsuite/libgomp.fortran/threadprivate3.f90,
3275         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3276         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3277         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3278         effective-target to TLS runtime.
3280         * testsuite/libgomp.fortran/pr25162.f: Require
3281         effective-target TLS runtime.
3283 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3285         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3286         * testsuite/libgomp.c/nestedfn-3.c: New test.
3288 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3290         PR fortran/25162
3291         * testsuite/libgomp.fortran/pr25162.f: New test.
3293 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3295         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3296         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3298 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3300         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3301         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3302         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3303         single.c, team.c, work.c, config/linux/alpha/futex.h,
3304         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3305         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3306         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3307         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3308         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3309         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3310         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3311         FSF address.
3313 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3315         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3316         to nodist_noinst_HEADERS.
3317         * Makefile.in: Rebuilt.
3319         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3320         add integer count field.
3321         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3322         omp_nest_lock_t type change.
3323         (omp_init_nest_lock): Likewise.  Initialize count to 0.
3324         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3325         Increment count.
3326         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3327         Decrement count.
3328         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3329         Increment count if successful and return the new nesting level.
3330         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3331         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3332         * testsuite/libgomp.c/lib-1.c: New test.
3333         * testsuite/libgomp.fortran/lib1.f90: New test.
3334         * testsuite/libgomp.fortran/lib2.f: New test.
3335         * testsuite/libgomp.fortran/lib3.f: New test.
3337 2005-11-17  Richard Henderson  <rth@redhat.com>
3339         PR 24845
3340         * Makefile.am (nodist_toolexeclib_HEADERS): New.
3341         * configure.ac (link_gomp): New.  Substitute it.
3342         (AC_CONFIG_FILES): Add libgomp.spec.
3343         * libgomp.spec.in: New file.
3344         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3345         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3347 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3349         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3350         reduction(-:var) behaving the same as reduction(+:var).
3351         * testsuite/libgomp.c/reduction-4.c: New test.
3353 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
3355         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3356         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3357         testsuite/libgomp.c/copyin-3.c,
3358         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3359         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3360         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3361         testsuite/libgomp.c++/pr24455.C,
3362         testsuite/libgomp.fortran/threadprivate1.f90,
3363         testsuite/libgomp.fortran/threadprivate2.f90,
3364         testsuite/libgomp.fortran/threadprivate3.f90,
3365         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3366         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3367         testsuite/libgomp.fortran/omp_parse3.f90: Require
3368         effective-target TLS.
3370 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3372         * HEADER: Remove.
3374 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
3376         PR libgomp/24797
3377         * team.c (initialize_team): Pass NULL rather than free as
3378         pthread_key_create destructor.  Initialize thread specific data
3379         pointer in initial thread to a static local variable rather than
3380         malloced memory.
3382 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
3384         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3385         its location to ld_library_path.
3387 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3389         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3391 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3393         * testsuite/libgomp.c: Rename from libgomp.dg.
3395 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
3397         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3398         threadprivate variable 'i'.
3400 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3402         * config/linux/s390/futex.h: New file.
3403         * configure.tgt: Use it.
3405         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3406         before the parallel.
3408 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3410         PR c++/24734
3411         * testsuite/libgomp.c++/master-1.C: New test.
3413 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3415         * testsuite/libgomp.dg/copyin-3.c: New test.
3417 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3419         * testsuite/libgomp.fortran/retval1.f90: New test.
3420         * testsuite/libgomp.fortran/vla7.f90: New test.
3422 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
3424         * testsuite/libgomp.fortran/vla2.f90: New test.
3425         * testsuite/libgomp.fortran/vla3.f90: New test.
3426         * testsuite/libgomp.fortran/vla4.f90: New test.
3427         * testsuite/libgomp.fortran/vla5.f90: New test.
3428         * testsuite/libgomp.fortran/vla6.f90: New test.
3430 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
3432         * config/linux/sparc/futex.h: New file.
3433         * configure.tgt: Use it.
3434         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3436         * critical.c: Include stdlib.h.
3437         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3438         ignoring return value.
3439         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3440         LIBGOMP_CHECK_SYNC_BUILTINS check.
3441         * configure: Rebuilt.
3443 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3445         * testsuite/libgomp.fortran/vla1.f90: New test.
3447 2005-10-31  Richard Henderson  <rth@redhat.com>
3449         * testsuite/libgomp.fortran/character2.f90: Fix race condition
3450         setting 's' in different threads.
3452 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3454         * libgomp.h (attribute_hidden, ialias): Define.
3455         * config/posix/proc.c (omp_get_num_procs): Add ialias.
3456         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3457         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3458         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3459         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3460         omp_test_lock, omp_test_nest_lock): Likewise.
3461         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3462         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3463         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3464         omp_test_lock, omp_test_nest_lock): Likewise.
3465         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3466         omp_get_dynamic, omp_get_nested): Likewise.
3467         * parallel.c (omp_get_num_threads, omp_get_max_threads,
3468         omp_get_thread_num, omp_in_parallel): Likewise.
3469         * fortran.c (ialias_redirect): Define.
3470         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3471         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3472         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3473         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3474         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3475         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3476         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3477         omp_get_wtime): Add ialias_redirect.
3479 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
3481         * fortran.c: Include stdlib.h.
3483 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
3485         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3486         * Makefile.in: Regenerated.
3488 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
3490         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3491         * libgomp_f.h.in (omp_check_defines): New function.
3492         * env.c: Include libgomp_f.h.
3493         (initialize_env): Call omp_check_defines.
3495         * testsuite/libgomp.dg/copyin-2.c: New test.
3496         * testsuite/libgomp.c++/copyin-2.C: New test.
3497         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3499         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3500         * testsuite/libgomp.fortran/sharing2.f90: New test.
3502         * testsuite/libgomp.dg/copyin-1.c: New test.
3503         * testsuite/libgomp.c++/copyin-1.C: New test.
3505 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
3507         * testsuite/libgomp.fortran/crayptr1.f90: New test.
3509         * testsuite/libgomp.fortran/workshare1.f90: New test.
3511         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3512         only test.
3513         * libgomp.fortran/sharing1.f90: New test.
3515 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
3517         PR c++/24502
3518         * testsuite/libgomp.c++/loop-7.C: New test.
3520         * testsuite/libgomp.dg/nestedfn-2.c: New test.
3522         * testsuite/libgomp.dg/nestedfn-1.c: New test.
3523         * testsuite/libgomp.fortran/reduction6.f90: New test.
3524         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3526 2005-10-23  Richard Henderson  <rth@redhat.com>
3528         * testsuite/libgomp.c++/ctor-1.C: New.
3529         * testsuite/libgomp.c++/ctor-2.C: New.
3530         * testsuite/libgomp.c++/ctor-3.C: New.
3531         * testsuite/libgomp.c++/ctor-4.C: New.
3532         * testsuite/libgomp.c++/ctor-5.C: New.
3533         * testsuite/libgomp.c++/ctor-6.C: New.
3534         * testsuite/libgomp.c++/ctor-7.C: New.
3535         * testsuite/libgomp.c++/ctor-8.C: New.
3536         * testsuite/libgomp.c++/ctor-9.C: New.
3538 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
3540         PR 24455
3541         * testsuite/libgomp.c++/pr24455-1.C: New test.
3542         * testsuite/libgomp.c++/pr24455.C: New test.
3543         * testsuite/libgomp.dg/pr24455-1.c: New test.
3544         * testsuite/libgomp.dg/pr24455.c: New test.
3546 2005-10-20  Richard Henderson  <rth@redhat.com>
3548         * testsuite/libgomp.c++/loop-6.C: New.
3549         * testsuite/libgomp.dg/loop-3.c: New.
3551 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
3553         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3554         explicitly private.
3555         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3556         explicitly shared.
3558 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
3560         * testsuite/libgomp.fortran/jacobi.f: New test.
3562 2005-10-19  Richard Henderson  <rth@redhat.com>
3564         * configure.tgt (i?86-linux): Default to with_arch instead of
3565         CFLAGS.  Add -mtune to match target_cpu.
3566         (x86_64-linux): Tune to i686.
3568         * fortran.c (omp_test_nest_lock_): Fix typo.
3570 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
3572         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3573         gomp_ordered_sync): Do nothing if team->nthreads == 1.
3574         * testsuite/libgomp.dg/ordered-3.c: New test.
3576         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3577         Remove volatile keyword.
3579         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3580         in COMMON block to avoid warnings on 64-bit targets.
3582 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
3584         * testsuite/libgomp.dg/shared-3.c: New test.
3586 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3588         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3589         * testsuite/libgomp.fortran/reduction5.f90: New test.
3591 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3593         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3594         dg-options.
3595         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
3596         flush loop now that __sync_synchronize has proper memory barrier.
3597         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3598         Add -ffixed-form to dg-options.
3600 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3602         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3603         from subdirectories.
3604         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3605         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3606         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3607         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3608         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3609         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3610         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3611         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3612         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3613         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3614         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3615         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3616         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3617         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3618         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3619         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3620         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3621         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3622         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3623         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3624         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3625         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3626         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3627         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3628         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3630 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
3632         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3633         lang_library_path exists.  Use find instead of glob to gather tests.
3634         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3636 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3638         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3639         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3640         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3641         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3642         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3643         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3644         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3645         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3646         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3647         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3648         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3649         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3650         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3652 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
3654         * testsuite/libgomp.dg/vla-1.c: New test.
3656         * testsuite/libgomp.fortran/reference2.f90: New test.
3658         * testsuite/libgomp.fortran/character2.f90: Remove explicit
3659         declaration of omp_get_thread_num.
3660         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
3661         use omp_lib.
3663         * testsuite/libgomp.fortran/reduction1.f90: New test.
3664         * testsuite/libgomp.fortran/reduction2.f90: New test.
3665         * testsuite/libgomp.fortran/reduction3.f90: New test.
3666         * testsuite/libgomp.fortran/reduction4.f90: New test.
3668 2005-10-13  Richard Henderson  <rth@redhat.com>
3670         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3671         * Makefile.in: Regenerate.
3672         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3673         * libgomp.h: Include bar.h.
3674         (struct gomp_barrier): Remove.
3675         (struct gomp_team): Add barrier.  Replace master_barrier with
3676         master_release.  Replace threads with ordered_release.
3677         (struct gomp_thread): Replace barrier with release.
3678         * ordered.c (gomp_ordered_first): Update for ordered_release change.
3679         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3680         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3681         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3682         (GOMP_single_copy_end): Likewise.
3683         * team.c (gomp_threads_dock): New.
3684         (gomp_barrier_init, gomp_barrier_destroy): Remove.
3685         (gomp_thread_start): Use gomp_barrier_wait.
3686         (new_team, free_team): Update for gomp_team changes.
3687         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3688         (gomp_team_end): Use gomp_barrier_wait.
3689         (initialize_team): Update for gomp_thread changes.
3690         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3691         (gomp_work_share_end_nowait): Use atomic ops when available.
3692         * config/linux/bar.c, config/linux/bar.h: New files.
3693         * config/posix/bar.c, config/posix/bar.h: New files.
3695 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
3697         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3698         * testsuite/libgomp.dg/single-2.c: New test.
3700         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3701         lang_link_flags): Unset, so that they aren't inherited from previously
3702         sourced *.exp.
3704         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3706 2005-10-12  Richard Henderson  <rth@redhat.com>
3708         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3709         (libgomp_init): Use lang_test_file, lang_library_path, and
3710         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
3712         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3713         (lang_test_file, lang_link_flags): New.
3714         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3716         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3717         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3718         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3719         testsuite/libgomp.c++/parallel-1.C,
3720         testsuite/libgomp.c++/reduction-1.C,
3721         testsuite/libgomp.c++/reduction-2.C,
3722         testsuite/libgomp.c++/reduction-3.C,
3723         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3724         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3725         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3726         New files, largely cribbed from the C testsuite.
3728 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
3730         * testsuite/libgomp.fortran/character1.f90: New test.
3731         * testsuite/libgomp.fortran/character2.f90: New test.
3733         * testsuite/libgomp.dg/nested-1.c: New test.
3734         * testsuite/libgomp.dg/nested-2.c: New test.
3735         * testsuite/libgomp.fortran/do1.f90: New test.
3736         * testsuite/libgomp.fortran/do2.f90: New test.
3738         * testsuite/libgomp.fortran/reference1.f90: New test.
3740 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3742         * testsuite/libgomp.dg/reduction-1.c: New test.
3743         * testsuite/libgomp.dg/reduction-2.c: New test.
3744         * testsuite/libgomp.dg/reduction-3.c: New test.
3746 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
3748         * testsuite/libgomp.dg/atomic-1.c: New test.
3749         * testsuite/libgomp.dg/atomic-2.c: New test.
3751 2005-10-09  Richard Henderson  <rth@redhat.com>
3753         * critical.c (atomic_lock): New.
3754         (initialize_critical): Initialize it.
3755         (GOMP_atomic_start, GOMP_atomic_end): New.
3756         * libgomp.map: Export them.
3757         * libgomp_g.h: Declare them.
3759         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
3761 2005-10-02  Richard Henderson  <rth@redhat.com>
3763         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
3764         to XCFLAGS instead of CFLAGS.
3766 2005-09-30  Richard Henderson  <rth@redhat.com>
3768         * configure.ac: Determine whether -pthread or -lpthread is needed.
3769         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
3770         * Makefine.in, configure: Rebuild.
3772 2005-09-28  Richard Henderson  <rth@redhat.com>
3774         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
3775         * testsuite/libgomp.dg/omp-single-3.c: New test.
3777 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
3779         * testsuite/libgomp.dg/omp-single-2.c: New test.
3780         * testsuite/libgomp.dg/shared-2.c: Fix return code.
3782 2005-09-27  Richard Henderson  <rth@redhat.com>
3784         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
3785         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
3787 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
3789         * testsuite/libgomp.dg/omp-loop03.c: New test.
3791 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3793         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
3795 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3797         * testsuite/libgomp.dg/omp-single-1.c: New test.
3798         * testsuite/libgomp.dg/shared-1.c: Return 0.
3799         Add prototype for abort.
3800         * testsuite/libgomp.dg/shared-2.c: Likewise.
3802 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
3804         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
3805         constructs.
3807 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
3809         * testsuite/libgomp.dg/shared-1.c: New test.
3810         * testsuite/libgomp.dg/shared-2.c: New test.
3812 2005-09-24  Richard Henderson  <rth@redhat.com>
3814         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
3816 2005-09-24  Richard Henderson  <rth@redhat.com>
3818         * iter.c (gomp_iter_static_next): Round up when computing number
3819         of iterations.  Don't bother distributing a remainder equally.
3821         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
3822         Don't call srand.  Zero b before testing.
3823         (main): New.
3825 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
3827         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
3828         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
3830 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
3832         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
3833         without !$omp end do, followed immediately by subroutine end.
3835 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
3837         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
3839 2005-09-22  Richard Henderson  <rth@redhat.com>
3841         * critical.c (GOMP_critical_name_start): Change argument to void**.
3842         Reuse the pointer space if the mutex fits.
3843         (GOMP_critical_name_end): Likewise.
3844         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
3845         * libgomp_g.h (GOMP_critical_name_start): Update decl.
3846         (GOMP_critical_name_end): Likewise.
3847         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
3848         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
3850 2005-09-20  Richard Henderson  <rth@redhat.com>
3852         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
3853         (create_lock_lock): New.
3854         (initialize_critical): Initialize it.
3855         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
3856         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
3858 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3860         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
3862 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3864         * testsuite/libgomp.dg/omp-loop01.c: New test.
3865         * testsuite/libgomp.dg/omp-loop02.c: New test.
3867 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
3869         * configure.ac (AC_PROG_FC): Add.
3870         (USE_FORTRAN): New automake conditional.
3871         * configure: Rebuilt.
3872         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
3873         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
3874         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
3875         Add rules to build them.
3876         * Makefile.in: Rebuilt.
3877         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
3878         OMP_NEST_LOCK_KIND.
3879         * libgomp.map: Add Fortran wrappers.
3880         * libgomp_f.h.in: New file.
3881         * omp_lib.h.in: New file.
3882         * omp_lib.f90.in: New file.
3883         * fortran.c: New file.
3884         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
3885         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
3886         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
3887         libgfortran has been built.
3888         * testsuite/libgomp.fortran/fortran.exp: New file.
3889         * testsuite/libgomp.fortran/omp_cond1.f: New test.
3890         * testsuite/libgomp.fortran/omp_cond2.f: New test.
3891         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
3892         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
3893         * testsuite/libgomp.fortran/omp_hello.f: New test.
3894         * testsuite/libgomp.fortran/omp_orphan.f: New test.
3895         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
3896         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
3897         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
3898         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
3899         * testsuite/libgomp.fortran/omp_reduction.f: New test.
3900         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
3901         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
3903 2005-08-30  Richard Henderson  <rth@redhat.com>
3905         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
3906         function for when aliases are not usable.
3907         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
3908         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3909         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
3910         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
3911         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
3912         GOMP_loop_ordered_guided_next): Likewise.
3913         * ordered.c (GOMP_ordered_start): Likewise.
3915 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
3917         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
3918         * testsuite/libgomp.dg/omp_hello.c: Fix return code
3919         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
3920         * testsuite/libgomp.dg/omp_orphan.c: Likewise
3921         * testsuite/libgomp.dg/omp_reduction.c: Likewise
3922         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
3923         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
3924         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
3925         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
3927 2005-07-07  Eric Christopher  <echristo@redhat.com>
3928             Diego Novillo  <dnovillo@redhat.com>
3930         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
3931         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
3932         up code.
3933         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
3934         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
3935         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
3936         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
3937         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
3938         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
3939         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
3941 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
3943         * TOPLEVEL.patch: Remove.
3945 2005-05-16  Richard Henderson  <rth@redhat.com>
3947         * configure.ac: Test for clock_gettime.
3948         * config.h.in, configure: Rebuild.
3949         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
3950         (omp_get_wtime): Use clock_gettime if available.
3951         (omp_get_wtick): Use clock_getres if available.
3953 2005-05-11  Richard Henderson  <rth@redhat.com>
3955         * config/linux/ia64/futex.h: New file.
3956         * configure.tgt: Use it.
3958         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
3960 2005-05-07  Richard Henderson  <rth@redhat.com>
3962         * config/linux/powerpc/futex.h: New file.
3963         * configure.tgt: Use it.
3965         * config/linux/i486/futex.h: Merge ...
3966         * config/linux/x86_64/futex.h: ... into ...
3967         * config/linux/x86/futex.h: ... here.
3968         * configure.tgt: Update to match.
3970 2005-05-06  Richard Henderson  <rth@redhat.com>
3972         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
3973         * config/linux/i486/futex.h: Likewise.
3974         * config/linux/x86_64/futex.h: Likewise.
3976         * config/linux/lock.c: New file.
3977         * config/linux/omp-lock.h: New file.
3979         * critical.c, env.h: Don't include omp.h
3980         * config/posix/lock.c: Include libgomp.h instead of omp.h.
3981         * config/posix/time.c: Likewise.
3982         * config/posix/omp-lock.h: New file.
3983         * libgomp.h: Include omp-lock.h and omp.h.
3984         * Makefile.am (nodist_include_HEADERS): New.
3985         (omp.h): New rule.
3986         * configure.ac (PERL): New.
3987         * mkomp_h.pl: New file.
3988         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
3989         with templates.
3990         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
3992         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
3993         build directory.  Re-add -march=i486 hack.
3995         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
3996         (libgomp_link_flags): Remove.
3997         (libgomp_initialized): Remove.
3998         (libgomp_init): Don't protect from reinitialization.  Copy code
3999         from libstdc++ for getting the multilib set correctly.
4001 2005-05-05  Richard Henderson  <rth@redhat.com>
4003         * config/linux/alpha/futex.h: New file.
4004         * configure.tgt (alpha*-*-linux*): Use it.
4006         * config/posix/mutex.c: New file.
4007         * config/posix/sem.c: Use libgomp.h.
4009         * configure.tgt (x86_64-linux): Also test CC for -m32.
4010         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
4012         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
4013         after $gccpath.
4015         * Makefile.am (SUBDIRS): New.
4016         (libgomp_la_LDFLAGS): Add -lpthread.
4017         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
4018         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
4020         * libgomp_g.h: New file.
4021         * libgomp.h: Split out all public declarations to libgomp_g.h.
4022         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
4023         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
4024         * config/linux/sem.h: Likewise.
4025         * config/posix/sem.h: Likewise.
4027         * Makefile.am (AM_LDFLAGS): New.
4028         (libgomp_version_script): Split out from ...
4029         (libgomp_la_LDFLAGS): ... here.
4030         (libgomp_version_info): New.
4031         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
4032         (LIBGOMP_ENABLE): New.
4033         (LIBGOMP_CHECK_LINKER_FEATURES): New.
4034         (LIBGOMP_ENABLE_SYMVERS): New.
4035         * configure.ac (AC_INIT): Version 1.0.
4036         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
4037         (enable-linux-futex): Likewise.  Rename from enable-futex.
4038         (libtool_VERSION): New.
4039         (LIBGOMP_ENABLE_SYMVERS): Use it.
4040         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
4041         * Makefile.in, aclocal.m4, configure: Rebuild.
4043         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
4044         (gomp_mutex_unlock_slow): Fix typo.
4045         * config/linux/sem.c: Similarly.
4046         (gomp_sem_post_slow): Fix typo.
4047         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
4048         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
4049         [__PIC__] (sys_futex0): Don't use tmp output in asm.
4051         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
4052         (libgomp_la_LDFLAGS): Add top_srcdir to path.
4053         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
4054         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
4055         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
4056         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
4057         LDFLAGS.  Pull enable_futex check to top-level.
4058         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
4059         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
4061         First attempt at real configury.
4062         * Makefile, config.h: Remove file.
4063         * Makefile.am, Makefile.in: New file.
4064         * acinclude.m4 aclocal.m4: New file.
4065         * configure.ac, configure.tgt, configure: New file.
4067         * config/posix/lock.c: Rename from sys-lock.c.
4068         * config/posix/mutex.h: Rename from sys-mutex.h.
4069         * config/posix/sem.c: Rename from sys-sem.c.
4070         * config/posix/sem.h: Rename from sys-sem.h.
4071         * config/posix/proc.c: Rename from sys-proc.c.
4072         * config/posix/time.c: Rename from sys-proc.c.
4074         * config/linux/mutex.c: New file.
4075         * config/linux/mutex.h: New file.
4076         * config/linux/sem.c: New file.
4077         * config/linux/sem.h: New file.
4078         * config/linux/i486/futex.h: New file.
4079         * config/linux/x86_64/futex.h: New file.
4081 2005-05-04  Richard Henderson  <rth@redhat.com>
4083         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4084         * libgomp.h: Declare them.
4085         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4086         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4088 2005-05-04  Richard Henderson  <rth@redhat.com>
4090         * libgomp-1 code drop
4092 2005-05-04  Richard Henderson  <rth@redhat.com>
4094         * iter.c (gomp_iter_static_next): Return tri-state on 0.
4095         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4096         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4097         (gomp_iter_static_next): Update.
4098         (gomp_ordered_static_next): Update.
4099         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4100         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
4101         totally empty range.
4102         (gomp_loop_ordered_static_next): Refine test for calling
4103         gomp_ordered_static_next.
4104         * testsuite/ordered-1.c: Add case for more threads than iterations.
4106         * iter.c (gomp_iter_runtime_next_locked): Remove.
4107         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4108         gomp_loop_guided_start, gomp_loop_ordered_static_start,
4109         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4110         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4111         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4112         gomp_loop_ordered_guided_next): Downcase name, make static, add
4113         an external alias with the old name.
4114         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4115         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4116         switch and call one of the above static functions.
4117         * libgomp.h: Update.
4119         * work.c (gomp_work_share_start): Lock the mutex for !first too.
4120         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4121         GOMP_loop_guided_start, GOMP_loop_runtime_start,
4122         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4123         GOMP_loop_ordered_guided_start): Update to match.
4124         * sections.c (GOMP_sections_start): Likewise.
4125         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4127         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4128         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4129         Use bounds check instead of modulus.
4130         (gomp_ordered_sync): Split out of GOMP_ordered_start.
4131         (gomp_ordered_last): Don't sync with ordered_owner here.
4132         (gomp_ordered_next): Likewise.
4133         (gomp_ordered_static_loop_next): Likewise.
4134         * loop.c, libgomp.h: Update to match.
4136         * libgomp.h (GOMP_barrier): Declare.
4138         * testsuite/barrier-1.c: New file.
4139         * testsuite/critical-1.c: New file.
4140         * testsuite/ordered-2.c: New file.
4141         * testsuite/ordered-1.c: New file.
4142         * testsuite/sections-1.c: New file.
4143         * testsuite/single-1.c: New file.
4144         * testsuite/Makefile (TESTS): Add them.
4146 2005-05-04  Richard Henderson  <rth@redhat.com>
4148         * libgomp.h (struct gomp_work_share): Add ordered_owner.
4149         * loop.c (GOMP_loop_static_start): If not the startup thread,
4150         acquire the mutex to wait for initialization complete.
4151         (GOMP_loop_ordered_static_start): Likewise.
4152         (GOMP_loop_ordered_runtime_start): Likewise.
4153         (GOMP_loop_ordered_static_first): Remove.
4154         (GOMP_loop_ordered_dynamic_first): Remove.
4155         (GOMP_loop_ordered_guided_first): Remove.
4156         (GOMP_loop_ordered_runtime_first): Remove.
4157         * ordered.c (gomp_ordered_loop_first): Post to own release when
4158         we're the first thread.
4159         (gomp_ordered_loop_last): Wait on release if not owner.
4160         (gomp_ordered_loop_next): Likewise.
4161         (gomp_ordered_static_loop_init): New.
4162         (gomp_ordered_static_loop_next): Use ordered_owner.
4163         (GOMP_ordered_start): Likewise.
4164         * work.c (gomp_new_work_share): Initialize ordered_owner.
4166 2005-05-03  Richard Henderson  <rth@redhat.com>
4168         * Makefile (OPT): New.
4169         (CFLAGS): Use it.
4171         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4172         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4173         * libgomp.h, libgomp.map, NOTES: Update to match.
4175         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4176         Add initialized and thr members.
4177         (gomp_thread_start): Pause when initially spawned to wait for
4178         the whole team to be created.
4179         (gomp_team_start): Release team members at the end.
4181         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
4182         (f_foo_1): Use GOMP_loop_end.
4183         (f_foo_2): Use GOMP_loop_end_nowait.
4185         * testsuite/loop-2.c: New file.
4186         * testsuite/Makefile (TESTS): Add it.
4188 2005-05-03  Richard Henderson  <rth@redhat.com>
4190         * iter.c (gomp_iter_static_next): Fix overflow check typo.
4191         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4192         * team.c (new_team): Initialize oldest_live_gen to 1 if no
4193         initial work_share.
4195         * testsuite/Makefile: New file.
4196         * testsuite/loop-1.c: New file.
4198 2005-05-03  Richard Henderson  <rth@redhat.com>
4200         Initial implementation and checkin.