Adjust the comment in contrib/download_prerequisties.
[official-gcc.git] / libgomp / ChangeLog
blob8d8b8d8d6ec215c39d7de181a04fdd42d231a468
1 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
3         * testsuite/libgomp.c/target-9.c: New test.
5 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
7         * config.h.in: Regenerate.
8         * configure: Regenerate.
9         * configure.ac: Add GCC_CHECK_EMUTLS.
10         * libgomp.h: Add check for USE_EMUTLS: this case
11         is equal to HAVE_TLS.
12         * team.c: Likewise.
14 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
16         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
18 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
19             Ilya Verbin  <ilya.verbin@intel.com>
21         * testsuite/libgomp.c/target-critical-1.c: New test.
23 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
25         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
26         to dg-options unless expensive testing is on.
27         (TESTITERS): Define to N if not defined.
28         (main): Use TESTITERS instead of N.
29         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
30         dg-additional-options depending on whether expensive testing is on.
31         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
32         Decrease N to 100000 and CHUNKSZ to 10000.
34 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
36         PR fortran/63938
37         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
38         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
40 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
42         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
44 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
46         PR bootstrap/63784
47         * configure: Regenerated.
49 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
51         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
52         vect_simd_clones effective target.
53         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
55 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
57         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
58         of 32 as block_size.
59         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
60         instead of 32 as block_size.
62 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
63             Ilya Verbin  <ilya.verbin@intel.com>
65         * Makefile.in: Regenerate.
66         * configure: Regenerate.
67         * configure.ac: Set up offload_additional_options,
68         offload_additional_lib_paths and offload_targets.
69         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
70         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
71         * testsuite/Makefile.in: Regenerate.
72         * testsuite/lib/libgomp.exp (libgomp_init): Append
73         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
74         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
75         build directory to LD_LIBRARY_PATH for intelmic offload targets.
77 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
78             Ilya Verbin  <ilya.verbin@intel.com>
79             Kirill Yukhin  <kirill.yukhin@intel.com>
80             Ilya Tocar  <ilya.tocar@intel.com>
82         * testsuite/lib/libgomp.exp
83         (check_effective_target_offload_device): New.
84         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
85         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
86         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
87         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
88         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
89         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
90         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
91         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
92         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
93         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
94         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
95         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
96         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
97         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
98         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
99         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
100         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
101         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
102         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
103         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
104         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
105         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
106         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
107         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
108         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
109         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
110         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
111         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
112         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
113         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
114         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
115         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
116         * testsuite/libgomp.c/target-7.c: Fix test.
117         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
118         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
119         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
120         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
121         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
122         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
123         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
124         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
125         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
126         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
127         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
128         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
129         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
130         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
131         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
132         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
133         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
134         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
135         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
136         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
137         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
138         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
139         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
140         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
141         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
142         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
143         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
144         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
145         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
146         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
147         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
149 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
150             Ilya Verbin  <ilya.verbin@intel.com>
151             Thomas Schwinge  <thomas@codesourcery.com>
152             Andrey Turetskiy  <andrey.turetskiy@intel.com>
154         * libgomp.map (GOMP_4.0.1): New symbol version.
155         Add GOMP_offload_register.
156         * libgomp_target.h: New file.
157         * splay-tree.h: New file.
158         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
159         (gomp_target_init): New forward declaration.
160         (gomp_is_initialized): New static variable.
161         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
162         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
163         New structures.
164         (offload_images, num_offload_images, devices, num_devices): New static
165         variables.
166         (splay_compare): New static function.
167         (struct gomp_device_descr): New structure.
168         (gomp_get_num_devices): Call gomp_target_init.
169         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
170         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
171         (GOMP_offload_register): New function.
172         (GOMP_target): Arrange for host callback to be performed in a separate
173         initial thread and contention group, inheriting ICVs from
174         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
175         Add device initialization and lookup for target function in splay tree.
176         (GOMP_target_data): Add device initialization and call gomp_map_vars.
177         (GOMP_target_end_data): Call gomp_unmap_vars.
178         (GOMP_target_update): Add device initialization and call gomp_update.
179         (gomp_load_plugin_for_device, gomp_register_images_for_device)
180         (gomp_target_init): New static functions.
182 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
183             Thomas Schwinge  <thomas@codesourcery.com>
184             Ilya Verbin  <ilya.verbin@intel.com>
185             Andrey Turetskiy  <andrey.turetskiy@intel.com>
187         * config.h.in: Regenerate.
188         * configure: Regenerate.
189         * configure.ac: Check for libdl, required for plugin support.
190         (PLUGIN_SUPPORT): Define if plugins are supported.
191         (enable_offload_targets): Support Intel MIC targets.
192         (OFFLOAD_TARGETS): List of target names suitable for offloading.
194 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
196         PR target/63610
197         * configure: Regenerate.
199 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
201         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
203 2014-10-06  Marek Polacek  <polacek@redhat.com>
205         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
206         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
207         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
208         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
210 2014-10-06  Marek Polacek  <polacek@redhat.com>
212         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
213         * testsuite/libgomp.c/nqueens-1.c: Likewise.
214         * testsuite/libgomp.c/pr26943-3.c: Likewise.
215         * testsuite/libgomp.c/pr26943-4.c: Likewise.
216         * testsuite/libgomp.c/pr36802-2.c: Likewise.
217         * testsuite/libgomp.c/pr36802-3.c: Likewise.
218         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
219         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
220         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
221         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
222         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
223         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
224         * testsuite/libgomp.c/omp-single-1.c: Likewise.
225         * testsuite/libgomp.c/omp-single-2.c: Likewise.
226         * testsuite/libgomp.c/omp_matvec.c: Likewise.
227         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
228         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
229         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
230         declarations.
232 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
234         PR libgomp/61200
235         * testsuite/libgomp.c/pr61200.c: New test.
237 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
239         PR c++/63248
240         * testsuite/libgomp.c++/pr63248.C: New test.
242 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
244         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
245         is not zero, but taskgroup->children is NULL and there are
246         any task->children, schedule those instead of waiting.
247         * testsuite/libgomp.c/depend-6.c: New test.
248         * testsuite/libgomp.c/depend-7.c: New test.
249         * testsuite/libgomp.c/depend-8.c: New test.
250         * testsuite/libgomp.c/depend-9.c: New test.
251         * testsuite/libgomp.c/depend-10.c: New test.
253 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
255         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
256         (struct gomp_taskwait): New type.
257         (struct gomp_task): Add taskwait and parent_depends_on, remove
258         in_taskwait and taskwait_sem fields.
259         (gomp_finish_task): Don't destroy taskwait_sem.
260         * task.c (gomp_init_task): Don't init in_taskwait, instead init
261         taskwait and parent_depends_on.
262         (GOMP_task): For if (0) tasks with depend clause that depend on
263         earlier tasks don't defer them, instead call
264         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
265         Initialize redundant_out field, for redundant out entries just
266         move them at the end of linked list instead of removing them
267         completely, and set redundant_out flag instead of redundant.
268         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
269         that task.
270         (gomp_task_run_post_handle_dependers): If parent is in
271         gomp_task_maybe_wait_for_dependencies and newly runnable task
272         is not parent_depends_on, queue it in parent->children linked
273         list after all runnable tasks with parent_depends_on set.
274         Adjust for addition of taskwait indirection.
275         (gomp_task_run_post_remove_parent): If parent is in
276         gomp_task_maybe_wait_for_dependencies and task to be removed
277         is parent_depends_on, decrement n_depend and if needed awake
278         parent.  Adjust for addition of taskwait indirection.
279         (GOMP_taskwait): Adjust for addition of taskwait indirection.
280         (gomp_task_maybe_wait_for_dependencies): New function.
281         * testsuite/libgomp.c/depend-5.c: New test.
283 2014-07-13  Tobias Burnus  <burnus@net-b.de>
285         * testsuite/libgomp.fortran/pr34020.f90: Make compile
286         with TS 18508/Fortran 2015.
288 2014-07-06  Marek Polacek  <polacek@redhat.com>
290         PR c/6940
291         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
293 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
295         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
296         matches regex $lang_source_re, add $lang_include_flags to options.
297         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
298         * testsuite/libgomp.c++/c++.exp: Likewise.
299         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
300         and lang_include_flags instead of adding -fintrinsic-modules-path= to
301         ALWAYS_CFLAGS.
302         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
304 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
306         * testsuite/libgomp.fortran/fortran.exp: Explain
307         gfortran-dg-runtest usage.
309 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
311         * testsuite/libgomp.fortran/simd5.f90: New test.
312         * testsuite/libgomp.fortran/simd6.f90: New test.
313         * testsuite/libgomp.fortran/simd7.f90: New test.
315 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
317         * testsuite/libgomp.c/for-2.c: Define SC to static for
318         #pragma omp for simd testing.
319         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
320         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
321         SC macro.
322         * testsuite/libgomp.c/simd-14.c: New test.
323         * testsuite/libgomp.c/simd-15.c: New test.
324         * testsuite/libgomp.c/simd-16.c: New test.
325         * testsuite/libgomp.c/simd-17.c: New test.
326         * testsuite/libgomp.c++/for-10.C: Define SC to static for
327         #pragma omp for simd testing.
328         * testsuite/libgomp.c++/simd10.C: New test.
329         * testsuite/libgomp.c++/simd11.C: New test.
330         * testsuite/libgomp.c++/simd12.C: New test.
331         * testsuite/libgomp.c++/simd13.C: New test.
333         * testsuite/libgomp.fortran/aligned1.f03: New test.
334         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
335         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
336         tasks with !$omp parallel !$omp single.
337         * testsuite/libgomp.fortran/target8.f90: New test.
338         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
339         not to use trim in the combiner, instead call elemental function.
340         (fn): New elemental function.
341         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
342         Make elemental.
343         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
344         omp_in): Likewise.
345         * testsuite/libgomp.fortran/udr12.f90: New test.
346         * testsuite/libgomp.fortran/udr13.f90: New test.
347         * testsuite/libgomp.fortran/udr14.f90: New test.
348         * testsuite/libgomp.fortran/udr15.f90: New test.
350 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
352         * omp_lib.f90.in (openmp_version): Set to 201307.
353         * omp_lib.h.in (openmp_version): Likewise.
354         * testsuite/libgomp.c/target-8.c: New test.
355         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
356         and inbranch clauses.
357         * testsuite/libgomp.fortran/depend-3.f90: New test.
358         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
359         openmp_version.
360         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
361         * testsuite/libgomp.fortran/target1.f90: New test.
362         * testsuite/libgomp.fortran/target2.f90: New test.
363         * testsuite/libgomp.fortran/target3.f90: New test.
364         * testsuite/libgomp.fortran/target4.f90: New test.
365         * testsuite/libgomp.fortran/target5.f90: New test.
366         * testsuite/libgomp.fortran/target6.f90: New test.
367         * testsuite/libgomp.fortran/target7.f90: New test.
369 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
371         PR fortran/60928
372         * testsuite/libgomp.fortran/allocatable9.f90: New test.
373         * testsuite/libgomp.fortran/allocatable10.f90: New test.
374         * testsuite/libgomp.fortran/allocatable11.f90: New test.
375         * testsuite/libgomp.fortran/allocatable12.f90: New test.
376         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
377         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
378         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
379         * testsuite/libgomp.fortran/associate1.f90: New test.
380         * testsuite/libgomp.fortran/associate2.f90: New test.
381         * testsuite/libgomp.fortran/procptr1.f90: New test.
383 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
385         * testsuite/libgomp.fortran/simd1.f90: New test.
386         * testsuite/libgomp.fortran/udr1.f90: New test.
387         * testsuite/libgomp.fortran/udr2.f90: New test.
388         * testsuite/libgomp.fortran/udr3.f90: New test.
389         * testsuite/libgomp.fortran/udr4.f90: New test.
390         * testsuite/libgomp.fortran/udr5.f90: New test.
391         * testsuite/libgomp.fortran/udr6.f90: New test.
392         * testsuite/libgomp.fortran/udr7.f90: New test.
393         * testsuite/libgomp.fortran/udr8.f90: New test.
394         * testsuite/libgomp.fortran/udr9.f90: New test.
395         * testsuite/libgomp.fortran/udr10.f90: New test.
396         * testsuite/libgomp.fortran/udr11.f90: New test.
398 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
400         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
401         vect_simd_clones effective target.
402         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
404 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
406         PR middle-end/61252
407         * testsuite/libgomp.c++/simd-9.C: New test.
409 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
411         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
412         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
413         texts according to their @menu entry positions.
415 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
417         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
418         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
419         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
420         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
421         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
422         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
423         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
424         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
425         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
426         * testsuite/libgomp.fortran/depend-1.f90: New test.
427         * testsuite/libgomp.fortran/depend-2.f90: New test.
428         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
429         * testsuite/libgomp.fortran/simd1.f90: New test.
430         * testsuite/libgomp.fortran/simd2.f90: New test.
431         * testsuite/libgomp.fortran/simd3.f90: New test.
432         * testsuite/libgomp.fortran/simd4.f90: New test.
433         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
435 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
437         * testsuite/libgomp.c/simd-10.c: New test.
438         * testsuite/libgomp.c/simd-11.c: New test.
439         * testsuite/libgomp.c/simd-12.c: New test.
440         * testsuite/libgomp.c/simd-13.c: New test.
442 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
444         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
445         atomic type clauses in any order and optional comma in between.
446         * testsuite/libgomp.c++/atomic-15.C: Likewise.
447         * testsuite/libgomp.c/atomic-17.c: Likewise.
449         * testsuite/libgomp.c/simd-7.c: New test.
450         * testsuite/libgomp.c/simd-8.c: New test.
451         * testsuite/libgomp.c/simd-9.c: New test.
452         * testsuite/libgomp.c/loop-16.c: New test.
454 2014-04-02  Richard Henderson  <rth@redhat.com>
456         * config/linux/futex.h (futex_wait): Get error value from errno.
457         (futex_wake): Likewise.
459 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
461         PR c++/60331
462         * testsuite/libgomp.c++/udr-11.C: New test.
463         * testsuite/libgomp.c++/udr-12.C: New test.
464         * testsuite/libgomp.c++/udr-13.C: New test.
465         * testsuite/libgomp.c++/udr-14.C: New test.
466         * testsuite/libgomp.c++/udr-15.C: New test.
467         * testsuite/libgomp.c++/udr-16.C: New test.
468         * testsuite/libgomp.c++/udr-17.C: New test.
469         * testsuite/libgomp.c++/udr-18.C: New test.
470         * testsuite/libgomp.c++/udr-19.C: New test.
472 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
474         Update copyright years
476 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
478         * hashtab.h: Use the standard form for the copyright notice.
480 2014-01-02  Tobias Burnus  <burnus@net-b.de>
482         * libgomp.texi: Bump @copying's copyright year.
484 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
486         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
487         alloca () with __builtin_alloca ().
488         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
489         * testsuite/libgomp.c/lock-3.c: Likewise.
490         * testsuite/libgomp.c/pr48591.c: Likewise.
492 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
494         PR testsuite/59534
495         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
496         comparisons.
498 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
500         PR libgomp/58756
501         * testsuite/libgomp.c/pr58756.c: New test.
503 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
505         PR libgomp/59467
506         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
507         !$omp parallel.
509 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
511         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
512         ALWAYS_CFLAGS.
513         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
514         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
515         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
516         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
517         Likewise.
519         * libgomp_g.h: Include <stddef.h> for size_t.
521         * libgomp.spec.in: Update comment about libgomp's dependencies.
522         * configure.ac: Likewise.
523         * configure: Regenerate.
525 2013-10-16  Tobias Burnus  <burnus@net-b.de>
527         * libgomp.texi: (Runtime Library Routines): Update references for
528         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
529         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
530         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
531         (Environment Variables): Update references for OpenMP 4.0. Add
532         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
533         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
534         order.
536 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
538         * env.c (parse_bind_var): Initialize value to avoid
539         (false positive) warning.
541 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
543         PR libgomp/58691
544         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
545         to check variable.
546         (gomp_init_num_threads): Move i variable declaration into
547         #ifdef CPU_ALLOC_SIZE block.
548         * config/linux/affinity.c (gomp_affinity_init_level): Test
549         gomp_places_list_len == 0 rather than gomp_places_list == 0
550         when checking for topology reading error.
551         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
552         * env.c (parse_affinity): Add ignore argument, if true, don't populate
553         gomp_places_list, only parse env var and always return false.
554         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
555         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
556         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
557         and either of these variables were parsed correctly into a places
558         list.
560 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
561             Jakub Jelinek  <jakub@redhat.com>
563         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
564         of 5 loopfn matches.
565         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
566         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
567         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
568         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
569         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
570         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
571         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
572         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
574 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
576         * Makefile.am (omp_lib.mod): Streamline rule.
577         * Makefile.in: Regenerate.
579         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
580         exceptions.
582         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
583         * testsuite/libgomp.fortran/lib1.f90: Likewise.
584         * testsuite/libgomp.fortran/lib2.f: Likewise.
585         * testsuite/libgomp.fortran/lib3.f: Likewise.
587         * configure.ac: Typo fix.
588         * configure: Regenerate.
590         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
591         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
593         * omp.h.in: Don't touch the user's namespace.
595 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
596             Tobias Burnus  <burnus@net-b.de>
597             Richard Henderson  <rth@redhat.com>
599         * target.c: New file.
600         * Makefile.am (libgomp_la_SOURCES): Add target.c.
601         * Makefile.in: Regenerated.
602         * libgomp_g.h (GOMP_task): Add depend argument.
603         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
604         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
605         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
606         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
607         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
608         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
609         GOMP_taskgroup_start, GOMP_taskgroup_end,
610         GOMP_parallel_sections): New prototypes.
611         * fortran.c (omp_is_initial_device): Add ialias_redirect.
612         (omp_is_initial_device_): New function.
613         (ULP, STR1, STR2, ialias_redirect): Removed.
614         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
615         omp_set_default_device_8_, omp_get_default_device_,
616         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
617         functions.
618         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
619         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
620         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
621         @@GOMP_4.0.
622         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
623         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
624         omp_set_default_device, omp_set_default_device_,
625         omp_set_default_device_8_, omp_get_default_device,
626         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
627         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
628         omp_get_team_num_): Export @@OMP_4.0.
629         * team.c (struct gomp_thread_start_data): Add place field.
630         (gomp_thread_start): Clear thr->thread_pool and
631         thr->task before returning.  Use gomp_team_barrier_wait_final
632         instead of gomp_team_barrier_wait.  Initialize thr->place.
633         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
634         team_cancelled and task_queued_count fields.
635         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
636         before calling pthread_exit.
637         (gomp_free_thread): No longer static.  Use
638         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
639         (gomp_team_start): Add flags argument.  Set
640         thr->thread_pool->threads_busy to nthreads immediately after creating
641         new pool.  Use gomp_managed_threads_lock instead of
642         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
643         (gomp_team_end): Use gomp_managed_threads_lock instead of
644         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
645         of gomp_team_barrier_wait.  If team->team_cancelled, call
646         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
647         rather than thr->ts.work_share.
648         (initialize_team): Don't call gomp_sem_init here.
649         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
650         caller.
651         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
652         * env.c (gomp_global_icv): Add default_device_var, target_data and
653         bind_var initializers.
654         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
655         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
656         gomp_places_list_len): New variables.
657         (parse_bind_var, parse_one_place, parse_places_var): New functions.
658         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
659         sized places.
660         (gomp_cancel_var): New global variable.
661         (parse_int): New function.
662         (handle_omp_display_env): New function.
663         (initialize_env): Use it.  Initialize default_device_var.
664         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
665         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
666         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
667         been successfully parsed (and call gomp_init_affinity in that case).
668         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
669         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
670         omp_get_team_num, omp_is_initial_device): New functions.
671         * libgomp.h: Include stdlib.h.
672         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
673         Define.
674         (struct target_mem_desc): Forward declare.
675         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
676         and thread_limit_var fields.
677         (gomp_get_num_devices): New prototype.
678         (gomp_cancel_var): New extern decl.
679         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
680         team_cancelled and task_queued_count fields.  Add comments about
681         task_{,queued_,running_}count.
682         (gomp_cancel_kind): New enum.
683         (gomp_work_share_end_cancel): New prototype.
684         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
685         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
686         and depend fields.
687         (struct gomp_taskgroup): New type.
688         (struct gomp_task_depend_entry,
689         struct gomp_dependers_vec): New types.
690         (gomp_finish_task): Free depend_hash if non-NULL.
691         (struct gomp_team_state): Add place_partition_off
692         and place_partition_len fields.
693         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
694         gomp_places_list_len): New extern decls.
695         (struct gomp_thread): Add place field.
696         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
697         (gomp_init_thread_affinity): Add place argument.
698         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
699         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
700         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
701         gomp_affinity_init_level, gomp_affinity_print_place): New
702         prototypes.
703         (gomp_team_start): Add flags argument.
704         (gomp_thread_limit_var, gomp_remaining_threads_count,
705         gomp_remaining_threads_lock): Remove.
706         (gomp_managed_threads_lock): New variable.
707         (struct gomp_thread_pool): Add threads_busy field.
708         (gomp_free_thread): New prototype.
709         * task.c: Include hashtab.h.
710         (hash_entry_type): New typedef.
711         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
712         (gomp_init_task): Clear dependers, depend_hash, depend_count,
713         copy_ctors_done and taskgroup fields.
714         (GOMP_task): Add depend argument, handle depend clauses.  If
715         gomp_team_barrier_cancelled or if it's taskgroup has been
716         cancelled, don't queue or start new tasks.  Set copy_ctors_done
717         field if needed.  Initialize taskgroup field.  If copy_ctors_done
718         and already cancelled, don't discard the task.  If taskgroup is
719         non-NULL, enqueue the task into taskgroup queue.  Increment
720         num_children field in taskgroup.  Increment task_queued_count.
721         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
722         gomp_task_run_post_remove_taskgroup): New inline functions.
723         (gomp_task_run_post_handle_depend_hash,
724         gomp_task_run_post_handle_dependers,
725         gomp_task_run_post_handle_depend): New functions.
726         (GOMP_taskwait): Use them.  If more than one new tasks
727         have been queued, wake other threads if needed.
728         (gomp_barrier_handle_tasks): Likewise.  If
729         gomp_team_barrier_cancelled, don't start any new tasks, just free
730         all tasks.
731         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
732         * omp_lib.f90.in
733         (omp_proc_bind_kind, omp_proc_bind_false,
734         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
735         omp_proc_bind_spread): New params.
736         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
737         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
738         omp_get_team_num, omp_is_initial_device): New interfaces.
739         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
740         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
741         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
742         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
743         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
744         useless use omp_lib_kinds.
745         * omp.h.in (omp_proc_bind_t): New typedef.
746         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
747         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
748         omp_get_team_num, omp_is_initial_device): New prototypes.
749         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
750         through to gomp_team_start.
751         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
752         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
753         Adjust gomp_parallel_loop_start callers.
754         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
755         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
756         GOMP_loop_end_cancel): New functions.
757         (GOMP_parallel_end): Add ialias_redirect.
758         * hashtab.h: New file.
759         * libgomp.texi (Environment Variables): Minor cleanup,
760         update section refs to OpenMP 4.0rc2.
761         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
762         environment variables.
763         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
764         team->work_shares_to_free to thr->ts.work_share before calling
765         free_work_share.
766         (gomp_work_share_end_cancel): New function.
767         * config/linux/proc.c: Include errno.h.
768         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
769         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
770         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
771         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
772         gomp_cpuset_size is sizeof (cpu_set_t).
773         (gomp_init_num_threads): Initialize gomp_cpuset_size,
774         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
775         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
776         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
777         contain any logical CPUs.
778         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
779         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
780         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
781         pthread_getaffinity_np.  Check gomp_places_list instead of
782         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
783         * config/linux/bar.c (gomp_barrier_wait_end,
784         gomp_barrier_wait_last): Use BAR_* defines.
785         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
786         from state where needed.  Set work_share_cancelled to 0 on last
787         thread.
788         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
789         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
790         functions.
791         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
792         Add cpusetsize argument.
793         (gomp_cpuset_size, gomp_cpusetp): Declare.
794         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
795         (affinity_counter): Remove.
796         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
797         if CPU_ALLOC_SIZE isn't defined.
798         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
799         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
800         bind current thread to the first place.
801         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
802         pthread_setaffinity_np to gomp_places_list[place].
803         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
804         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
805         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
806         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
807         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
808         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
809         (gomp_barrier_t): Add awaited_final field.
810         (gomp_barrier_init): Initialize awaited_final field.
811         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
812         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
813         prototypes.
814         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
815         defines.
816         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
817         gomp_team_barrier_cancelled): New inline functions.
818         (gomp_barrier_last_thread,
819         gomp_team_barrier_set_task_pending,
820         gomp_team_barrier_clear_task_pending,
821         gomp_team_barrier_set_waiting_for_tasks,
822         gomp_team_barrier_waiting_for_tasks,
823         gomp_team_barrier_done): Use BAR_* defines.
824         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
825         (gomp_barrier_wait_end): Use BAR_* defines.
826         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
827         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
828         Use BAR_* defines.
829         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
830         gomp_team_barrier_cancel): New functions.
831         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
832         argument.
833         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
834         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
835         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
836         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
837         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
838         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
839         (gomp_barrier_t): Add cancellable field.
840         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
841         gomp_team_barrier_cancel): New prototypes.
842         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
843         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
844         gomp_team_barrier_cancelled): New inline functions.
845         (gomp_barrier_wait_start, gomp_barrier_last_thread,
846         gomp_team_barrier_set_task_pending,
847         gomp_team_barrier_clear_task_pending,
848         gomp_team_barrier_set_waiting_for_tasks,
849         gomp_team_barrier_waiting_for_tasks,
850         gomp_team_barrier_done): Use BAR_* defines.
851         * barrier.c (GOMP_barrier_cancel): New function.
852         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
853         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
854         omp_proc_bind_spread): New params.
855         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
856         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
857         omp_get_team_num, omp_is_initial_device): New externals.
858         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
859         New functions.
860         (gomp_resolve_num_threads): Adjust for thread_limit now being in
861         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
862         infinity.  If not nested, just return minimum of max_num_threads
863         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
864         to the returned value.  Otherwise, don't update atomically
865         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
866         (GOMP_parallel_end): Adjust for thread_limit now being in
867         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
868         infinity.  Adjust threads_busy in the pool rather than
869         gomp_remaining_threads_count.  Remember team->nthreads and call
870         gomp_team_end before adjusting threads_busy, if not nested
871         afterwards, just set it to 1 non-atomically.  Add ialias.
872         (GOMP_parallel_start): Adjust gomp_team_start caller.
873         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
874         * testsuite/libgomp.c/affinity-1.c: New test.
875         * testsuite/libgomp.c/atomic-15.c: New test.
876         * testsuite/libgomp.c/atomic-16.c: New test.
877         * testsuite/libgomp.c/atomic-17.c: New test.
878         * testsuite/libgomp.c/cancel-for-1.c: New test.
879         * testsuite/libgomp.c/cancel-for-2.c: New test.
880         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
881         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
882         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
883         * testsuite/libgomp.c/cancel-sections-1.c: New test.
884         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
885         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
886         * testsuite/libgomp.c/depend-1.c: New test.
887         * testsuite/libgomp.c/depend-2.c: New test.
888         * testsuite/libgomp.c/depend-3.c: New test.
889         * testsuite/libgomp.c/depend-4.c: New test.
890         * testsuite/libgomp.c/for-1.c: New test.
891         * testsuite/libgomp.c/for-1.h: New file.
892         * testsuite/libgomp.c/for-2.c: New test.
893         * testsuite/libgomp.c/for-2.h: New file.
894         * testsuite/libgomp.c/for-3.c: New test.
895         * testsuite/libgomp.c/pr58392.c: New test.
896         * testsuite/libgomp.c/simd-1.c: New test.
897         * testsuite/libgomp.c/simd-2.c: New test.
898         * testsuite/libgomp.c/simd-3.c: New test.
899         * testsuite/libgomp.c/simd-4.c: New test.
900         * testsuite/libgomp.c/simd-5.c: New test.
901         * testsuite/libgomp.c/simd-6.c: New test.
902         * testsuite/libgomp.c/target-1.c: New test.
903         * testsuite/libgomp.c/target-2.c: New test.
904         * testsuite/libgomp.c/target-3.c: New test.
905         * testsuite/libgomp.c/target-4.c: New test.
906         * testsuite/libgomp.c/target-5.c: New test.
907         * testsuite/libgomp.c/target-6.c: New test.
908         * testsuite/libgomp.c/target-7.c: New test.
909         * testsuite/libgomp.c/taskgroup-1.c: New test.
910         * testsuite/libgomp.c/thread-limit-1.c: New test.
911         * testsuite/libgomp.c/thread-limit-2.c: New test.
912         * testsuite/libgomp.c/thread-limit-3.c: New test.
913         * testsuite/libgomp.c/udr-1.c: New test.
914         * testsuite/libgomp.c/udr-2.c: New test.
915         * testsuite/libgomp.c/udr-3.c: New test.
916         * testsuite/libgomp.c++/affinity-1.C: New test.
917         * testsuite/libgomp.c++/atomic-10.C: New test.
918         * testsuite/libgomp.c++/atomic-11.C: New test.
919         * testsuite/libgomp.c++/atomic-12.C: New test.
920         * testsuite/libgomp.c++/atomic-13.C: New test.
921         * testsuite/libgomp.c++/atomic-14.C: New test.
922         * testsuite/libgomp.c++/atomic-15.C: New test.
923         * testsuite/libgomp.c++/cancel-for-1.C: New test.
924         * testsuite/libgomp.c++/cancel-for-2.C: New test.
925         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
926         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
927         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
928         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
929         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
930         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
931         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
932         * testsuite/libgomp.c++/cancel-test.h: New file.
933         * testsuite/libgomp.c++/for-9.C: New test.
934         * testsuite/libgomp.c++/for-10.C: New test.
935         * testsuite/libgomp.c++/for-11.C: New test.
936         * testsuite/libgomp.c++/simd-1.C: New test.
937         * testsuite/libgomp.c++/simd-2.C: New test.
938         * testsuite/libgomp.c++/simd-3.C: New test.
939         * testsuite/libgomp.c++/simd-4.C: New test.
940         * testsuite/libgomp.c++/simd-5.C: New test.
941         * testsuite/libgomp.c++/simd-6.C: New test.
942         * testsuite/libgomp.c++/simd-7.C: New test.
943         * testsuite/libgomp.c++/simd-8.C: New test.
944         * testsuite/libgomp.c++/target-1.C: New test.
945         * testsuite/libgomp.c++/target-2.C: New test.
946         * testsuite/libgomp.c++/target-2-aux.cc: New file.
947         * testsuite/libgomp.c++/target-3.C: New test.
948         * testsuite/libgomp.c++/taskgroup-1.C: New test.
949         * testsuite/libgomp.c++/udr-1.C: New test.
950         * testsuite/libgomp.c++/udr-2.C: New test.
951         * testsuite/libgomp.c++/udr-3.C: New test.
952         * testsuite/libgomp.c++/udr-4.C: New test.
953         * testsuite/libgomp.c++/udr-5.C: New test.
954         * testsuite/libgomp.c++/udr-6.C: New test.
955         * testsuite/libgomp.c++/udr-7.C: New test.
956         * testsuite/libgomp.c++/udr-8.C: New test.
957         * testsuite/libgomp.c++/udr-9.C: New test.
959 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
961         PR testsuite/57605
962         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
963         ALWAYS_CFLAGS.
965 2013-09-20  Alan Modra  <amodra@gmail.com>
967         * configure: Regenerate.
969 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
971         * testsuite/libgomp.c/sections-2.c: New test.
973 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
975         * testsuite/libgomp.fortran/strassen.f90:
976         Add dg-skip-if aarch64_tiny.
978 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
979             Cesar Philippidis  <cesar@codesourcery.com>
981         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
982         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
983         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
984         * testsuite/libgomp.fortran/fortran.exp: Likewise.
985         * testsuite/libgomp.graphite/graphite.exp: Likewise.
986         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
987         Use dg-runtest rather than gfortran-dg-runtest.
989 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
991         * testsuite/libgomp.c/icv-2.c: Extend current handling of
992         Linux-based x86 systems to cover all GNU systems.
993         * testsuite/libgomp.c/lock-3.c: Likewise.
994         * testsuite/libgomp.c/pr48591.c: Likewise.
996 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
998         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
999         GNU/Hurd, as done for Linux-based systems.
1001         * config/posix/ptrlock.h: Fix comment.
1003 2013-05-27  Tobias Burnus  <burnus@net-b.de>
1005         PR fortran/57423
1006         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
1007         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
1008         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
1009         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
1010         omp_destroy_nest_lock): Correct arguments to match the one in
1011         the OpenMP spec.
1012         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
1013         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
1014         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
1015         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
1017 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
1019         * testsuite/libgomp.c/loop-13.c: New test.
1020         * testsuite/libgomp.c/loop-14.c: New test.
1021         * testsuite/libgomp.c/loop-15.c: New test.
1022         * testsuite/libgomp.c++/loop-13.C: New test.
1023         * testsuite/libgomp.c++/loop-14.C: New test.
1024         * testsuite/libgomp.c++/loop-15.C: New test.
1026 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
1028         PR middle-end/56217
1029         * testsuite/libgomp.c++/pr56217.C: New test.
1031 2013-02-01  Alan Modra  <amodra@gmail.com>
1033         * task.c (GOMP_task, GOMP_taskwait): Comment.
1035 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
1036             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
1038         PR libgomp/55561
1039         * config/linux/wait.h (do_spin): Use atomic load for addr.
1040         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
1041         for intptr and ptrlock.
1042         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
1043         for ptrlock.
1045 2013-01-22  Alan Modra  <amodra@gmail.com>
1047         PR libgomp/51376
1048         PR libgomp/56073
1049         * task.c (GOMP_task): Revert 2011-12-09 change.
1050         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
1051         barrier to read task->children..
1052         (gomp_barrier_handle_tasks): ..and matching atomic store with
1053         release barrier here when setting parent->children to NULL.
1055 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1056             Tobias Burnus  <burnus@net-b.de>
1058         PR driver/55884
1059         * testsuite/libgomp.fortran/fortran.exp: Use
1060         -fintrinsic-modules-path= instead of
1061         -fintrinsic-modules-path.
1063 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
1065         Update copyright years.
1067 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1069         * testsuite/libgomp.fortran/fortran.exp: Set
1070         -fintrinsic-modules-path.
1072 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1074         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
1075         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
1077 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
1079         PR libgomp/55411
1080         * team.c (gomp_free_thread): Decrease gomp_managed_threads
1081         if pool had any threads_used.
1083 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
1085         * testsuite/libgomp.c++/pr24455.C: Use
1086         -Wl,-undefined,dynamic_lookup on darwin.
1088 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
1090         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
1092 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
1094         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
1096 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
1097             Jim MacArthur  <jim.macarthur@arm.com>
1098             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1099             Nigel Stephens  <nigel.stephens@arm.com>
1100             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1101             Richard Earnshaw  <rearnsha@arm.com>
1102             Sofiane Naci  <sofiane.naci@arm.com>
1103             Stephen Thomas  <stephen.thomas@arm.com>
1104             Tejas Belagod  <tejas.belagod@arm.com>
1105             Yufeng Zhang  <yufeng.zhang@arm.com>
1107         * configure.tgt: Add AArch64.
1109 2012-10-04  Jason Merrill  <jason@redhat.com>
1111         * testsuite/libgomp.c++/tls-init1.C: New.
1113 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
1115         * configure: Regenerated.
1117 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
1119         * config/linux/mips/futex.h (sys_futex0): Change to static
1120         function with noinline, nomips16 attributes under MIPS16. Adjust
1121         asm statement to place 'li v0,SYS_futex' immediately before
1122         syscall insn.
1124 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
1126         * libgomp.texi (Library Index): Renamed from "Index" to prevent
1127         conflict with index.html on case-insensitive file systems.
1129 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
1131         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
1132         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
1134 2012-07-02  Richard Guenther  <rguenther@suse.de>
1135             Michael Matz  <matz@suse.de>
1136             Tobias Grosser <tobias@grosser.es>
1137             Sebastian Pop <sebpop@gmail.com>
1139         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
1140         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1141         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1142         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1144 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
1146         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
1148 2012-06-22  Richard Guenther  <rguenther@suse.de>
1150         Merge from graphite branch
1151         2012-01-13  Tobias Grosser  <tobias@grosser.es>
1153         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1154         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1156 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
1158         PR middle-end/53580
1159         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
1160         use GOMP_barrier () call instead.
1161         * testsuite/libgomp.c/pr26943-3.c: Likewise.
1162         * testsuite/libgomp.c/pr26943-4.c: Likewise.
1163         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
1164         call GOMP_barrier instead.
1165         * testsuite/libgomp.fortran/vla5.f90: Likewise.
1167 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
1169         PR libgomp/52993
1170         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
1171         argument to memset call.
1173 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1175         * configure: Regenerated.
1177 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1179         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
1181 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1183         PR bootstrap/52812
1184         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
1186 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
1188         PR middle-end/52547
1189         * testsuite/libgomp.c/pr52547.c: New test.
1191 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1193         * testsuite/lib/libgomp.exp: load fortran-modules.exp
1195 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1197         * configure.tgt (mips-sgi-irix6*): Remove.
1199 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1201         * configure.tgt (alpha*-dec-osf*): Remove.
1203         * config/osf/sem.h: Remove.
1204         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
1206 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1208         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
1210 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1212         PR libstdc++/52188
1213         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
1214         Remove ENABLE_SYMVERS_SOL2.
1215         * configure: Regenerate.
1216         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
1217         (PREPROCESS): New variable.
1218         (libgomp.ver): New target.
1219         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
1220         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
1221         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
1222         Use libgomp.ver.
1223         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
1224         * Makefile.in: Regenerate.
1226 2012-02-14  Walter Lee  <walt@tilera.com>
1228         * configure.tgt: Handle tilegx and tilepro.
1229         * config/linux/tile/futex.h: New file.
1231 2012-02-08  Richard Guenther  <rguenther@suse.de>
1233         PR tree-optimization/46886
1234         * testsuite/libgomp.c/pr46886.c: New testcase.
1236 2012-01-25  Matthias Klose  <doko@ubuntu.com>
1238         * config/linux/arm: Remove empty directory.
1239         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
1241 2011-12-09  Alan Modra  <amodra@gmail.com>
1243         PR libgomp/51376
1244         * task.c (GOMP_taskwait): Don't access task->children outside of
1245         task_lock mutex region.
1246         (GOMP_task): Likewise.
1248 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1250         PR libgomp/51132
1251         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1252         to file scope.
1253         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1254         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1255         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1256         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1257         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1259 2011-12-02  Alan Modra  <amodra@gmail.com>
1261         * config/linux/affinity.c: Use atomic rather than sync builtin.
1262         * config/linux/lock.c: Likewise.
1263         * config/linux/ptrlock.h: Likewise.
1264         * config/linux/ptrlock.c: Likewise.
1265         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
1266         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
1267         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
1268         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
1269         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
1270         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
1271         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
1272         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
1273         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
1274         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
1276 2011-11-30  Alan Modra  <amodra@gmail.com>
1278         PR libgomp/51298
1279         * config/linux/bar.h: Use atomic rather than sync builtins.
1280         * config/linux/bar.c: Likewise.  Add missing acquire
1281         synchronisation on generation field.
1282         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
1283         double unlock.
1285 2011-11-30  Alan Modra  <amodra@gmail.com>
1287         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
1288         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
1289         * config/linux/mutex.h: Use atomic rather than sync builtins.
1290         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
1291         * config/linux/omp-lock.h: Comment fix.
1292         * config/linux/arm/mutex.h: Delete.
1293         * config/linux/powerpc/mutex.h: Delete.
1294         * config/linux/ia64/mutex.h: Delete.
1295         * config/linux/mips/mutex.h: Delete.
1297 2011-11-30  Alan Modra  <amodra@gmail.com>
1299         PR libgomp/51249
1300         * config/linux/sem.h: Rewrite.
1301         * config/linux/sem.c: Rewrite.
1303 2011-11-28  Richard Henderson  <rth@redhat.com>
1305         * libgomp.h (enum memmodel): New.
1307 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1309         * configure: Regenerate.
1311 2011-10-10  Matthias Klose  <doko@ubuntu.com>
1313         * config/posix95: Remove empty directory.
1315 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1317         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1319 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
1321         PR fortran/49792
1322         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1323         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1325 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1327         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1329 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1331         PR libgomp/49965
1332         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1334 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
1336         * config/linux/proc.h: New.
1337         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
1338         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
1339         (gomp_init_num_threads): Update call to cpuset_popcount.
1340         (get_num_procs): Ditto.
1341         * config/linux/affinity.c (gomp_init_affinity): Call
1342         gomp_cpuset_popcount.
1344 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1346         PR fortran/42041
1347         PR fortran/46752
1348         * omp.h.in (omp_in_final): New prototype.
1349         * omp_lib.f90.in (omp_in_final): New interface.
1350         (omp_integer_kind, omp_logical_kind): Remove
1351         and replace all its uses in the module with 4.
1352         (openmp_version): Change to 201107.
1353         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1354         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1355         kind for the parameters.
1356         (omp_in_final): New external.
1357         (openmp_version): Change to 201107.
1358         * task.c (omp_in_final): New function.
1359         (gomp_init_task): Initialize final_task.
1360         (GOMP_task): Remove unused attribute from flags.  Handle final
1361         tasks.
1362         (GOMP_taskyield): New function.
1363         (omp_in_final): Return true if if (false) or final (true) task
1364         or descendant of final (true).
1365         * fortran.c (omp_in_final_): New function.
1366         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1367         (GOMP_3.0): Export GOMP_taskyield.
1368         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1369         variables.
1370         (parse_unsigned_long_list): New function.
1371         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
1372         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
1373         even if parse_affinity returned false.
1374         * config/linux/affinity.c (gomp_init_affinity): Handle
1375         gomp_cpu_affinity_len == 0.
1376         * libgomp_g.h (GOMP_taskyield): New prototype.
1377         * libgomp.h (struct gomp_task): Add final_task field.
1378         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1379         * team.c (gomp_team_start): Override new task's nthreads_var icv
1380         if list form OMP_NUM_THREADS has been used and it has value for
1381         the new nesting level.
1383         * testsuite/libgomp.c/atomic-11.c: New test.
1384         * testsuite/libgomp.c/atomic-12.c: New test.
1385         * testsuite/libgomp.c/atomic-13.c: New test.
1386         * testsuite/libgomp.c/atomic-14.c: New test.
1387         * testsuite/libgomp.c/reduction-6.c: New test.
1388         * testsuite/libgomp.c/task-5.c: New test.
1389         * testsuite/libgomp.c++/atomic-2.C: New test.
1390         * testsuite/libgomp.c++/atomic-3.C: New test.
1391         * testsuite/libgomp.c++/atomic-4.C: New test.
1392         * testsuite/libgomp.c++/atomic-5.C: New test.
1393         * testsuite/libgomp.c++/atomic-6.C: New test.
1394         * testsuite/libgomp.c++/atomic-7.C: New test.
1395         * testsuite/libgomp.c++/atomic-8.C: New test.
1396         * testsuite/libgomp.c++/atomic-9.C: New test.
1397         * testsuite/libgomp.c++/task-8.C: New test.
1398         * testsuite/libgomp.c++/reduction-4.C: New test.
1399         * testsuite/libgomp.fortran/allocatable7.f90: New test.
1400         * testsuite/libgomp.fortran/allocatable8.f90: New test.
1401         * testsuite/libgomp.fortran/crayptr3.f90: New test.
1402         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1403         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1404         * testsuite/libgomp.fortran/pointer1.f90: New test.
1405         * testsuite/libgomp.fortran/pointer2.f90: New test.
1406         * testsuite/libgomp.fortran/task4.f90: New test.
1408 2011-08-02  Tobias Burnus  <burnus@net-b.de>
1410         * libgomp.texi: Update OpenMP spec references to 3.1.
1411         (omp_in_final,OMP_PROC_BIND): New sections.
1412         (OMP_NUM_THREADS): Document that the value can be now a list.
1413         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1415 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1417         * config/linux/x86/futex.h: Check __x86_64__ instead of
1418         __LP64__.
1420 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1422         PR middle-end/49897
1423         PR middle-end/49898
1424         * testsuite/libgomp.c/pr49897-1.c: New test.
1425         * testsuite/libgomp.c/pr49897-2.c: New test.
1426         * testsuite/libgomp.c/pr49898-1.c: New test.
1427         * testsuite/libgomp.c/pr49898-2.c: New test.
1429 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1431         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1432         for ia32 instead of ilp32.
1434         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1435         * testsuite/libgomp.c/atomic-6.c: Likewise.
1437 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
1439         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1440         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1442 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1444         PR libgomp/45351
1445         * config/osf/sem.h: New file.
1446         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1448 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1450         PR target/49541
1451         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1452         ldflags.
1454 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
1456         * config/linux/wait.h (do_spin): New inline, largely copied
1457         from do_wait, just don't do futex_wait here, instead return true if
1458         it should be done.
1459         (do_wait): Implement using do_spin.
1460         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1461         to prototype.
1462         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1463         __sync_bool_compare_and_swap, pass the oldval to
1464         gomp_mutex_lock_slow.
1465         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1466         If all mutex contenders are just spinning and not sleeping, don't
1467         change state to 2 unnecessarily.  Optimize the loop when state has
1468         already become 2 to use just one atomic operation per loop instead
1469         of two.
1470         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1471         to prototype.
1472         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1473         __sync_bool_compare_and_swap, pass the oldval to
1474         gomp_mutex_lock_slow.
1476 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1478         PR libgomp/49490
1479         * iter.c (gomp_iter_static_next): For chunk size 0
1480         only use n ceil/ nthreads size for the first
1481         n % nthreads threads in the team instead of
1482         all threads except for the last few ones which
1483         get less work or none at all.
1484         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1485         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1486         chunk argument, set run_sched_modifier to 0 for static
1487         resp. 1 for other kinds.  If chunk argument is 0
1488         and not static, set value to 1.
1490 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1492         PR c++/49043
1493         * testsuite/libgomp.c++/pr49043.C: New test.
1495         PR c++/48869
1496         * testsuite/libgomp.c++/pr48869.C: New test.
1498 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1500         PR fortran/48894
1501         * fortran.c: Include limits.h.
1502         (TO_INT): Define.
1503         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1504         *set.
1505         (omp_set_num_threads_8_, omp_set_schedule_8_,
1506         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1507         omp_get_team_size_8_): Use TO_INT macro.
1508         * testsuite/libgomp.fortran/pr48894.f90: New test.
1510 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1512         PR middle-end/48591
1513         * testsuite/libgomp.c/pr48591.c: New test.
1515 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1517         PR bootstrap/48135
1518         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1519         * configure: Regenerate.
1521 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1523         PR fortran/47886
1524         * testsuite/libgomp.fortran/task3.f90: New test.
1526 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1528         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1530 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1532         PR libgomp/47854
1533         * libgomp.texi (omp_get_wtime): Don't say time in the past
1534         must be Unix Epoch.
1536 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1538         PR libgomp/47804
1539         * testsuite/libgomp.fortran/fortran.exp: Check for both
1540         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1541         but $blddir != "", still append ${blddir}/${lang_library_path}
1542         to ld_library_path.
1544 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1546         PR libgomp/47758
1547         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1548         of libquadmath.a before adding its libpath to ldflags.
1550 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1552         PR libgomp/47731
1553         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1554         to FUTEX_WAIT futex syscall.
1555         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1557 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1559         * configure: Regenerate.
1561 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1563         PR libstdc++/36104
1564         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1566 2011-01-16  Gerald Pfeifer
1568         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1570 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1572         PR fortran/46874
1573         * libgomp.fortran/allocatable6.f90: New test.
1575 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1577         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1578         * configure: Regenerate.
1580 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1582         PR target/40125
1583         PR lto/46695
1584         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1585         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1586         * aclocal.m4: Regenerate.
1587         * configure: Regenerate.
1588         * Makefile.in: Regenerate.
1589         * testsuite/Makefile.in: Regenerate.
1591 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
1593         PR fortran/46753
1594         * libgomp.fortran/pr46753.f90: New test.
1596         PR libgomp/43706
1597         * env.c (initialize_env): Default to spin count 300000
1598         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1599         is specified.
1601         PR libgomp/45240
1602         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1603         at the end if sync builtins aren't supported.
1605 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1607         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1609 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1611         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1613 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
1615         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1617 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1618             Tobias Burnus  <burnus@net-b.de>
1620         PR fortran/32049
1621         * configure.ac:
1622         * configure: Regenerate.
1624 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1626         * config/linux/futex.h: New.
1627         * config/linux/arm/mutex.h: New.
1628         * configure.tgt (arm*-*-linux*): Add config path.
1630 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1632         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1634 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1636         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1637         Change Fortran datatype to LOGICAL.
1638         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1639         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1641 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1643         * configure: Regenerate.
1645 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
1647         * libgomp.texi: Add function keyword to a couple of Fortran
1648         interfaces, use integer instead of int for Fortran.
1650 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
1652         * libgomp.texi: Fix spelling and pasto problems throughout.
1653         Adjust prototypes to match code.
1655 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1657         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1658         silence -fwhole-file warning.
1660 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1662         * configure.tgt (*-*-solaris2.[56]*): Removed.
1664 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1666         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1667         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1668         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1669         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1670         targetting solaris2*.
1671         * configure: Regenerate.
1672         * config.h.in: Regenerate.
1674         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1675         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1676         Add libgomp_version_dep.
1677         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1678         versioning.
1679         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1680         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1681         * Makefile.in: Regenerate.
1683         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1684         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1685         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1686         to common block, protected by
1687         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1689 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1691         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
1693 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
1695         PR bootstrap/43170
1696         * configure: Regenerate.
1698 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1700         PR other/43620
1701         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1702         * configure: Regenerate.
1703         * Makefile.in: Regenerate.
1704         * testsuite/Makefile.in: Regenerate.
1706 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1708         PR c/43893
1709         * testsuite/libgomp.c/pr43893.c: New test.
1710         * testsuite/libgomp.c++/pr43893.C: New test.
1712 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1714         PR middle-end/43570
1715         * testsuite/libgomp.fortran/vla8.f90: New test.
1717 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1719         PR libgomp/43706
1720         * config/linux/affinity.c (gomp_init_affinity): Decrease
1721         gomp_available_cpus if affinity mask confines the process to fewer
1722         CPUs.
1723         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1724         non-NULL, just return gomp_available_cpus.
1726         PR libgomp/43569
1727         * sections.c (gomp_sections_init): Initialize ws->mode.
1729 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1731         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1732         not unused bar variable.
1733         * configure: Regenerate.
1735 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1737         * Makefile.in: Regenerate.
1738         * aclocal.m4: Regenerate.
1739         * testsuite/Makefile.in: Regenerate.
1741 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
1743         PR libgomp/42942
1744         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1745         (initialize_env): Adjust callers.
1746         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1747         when the argument is 0.
1749         * testsuite/libgomp.c/pr42942.c: New test.
1751 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
1753         PR middle-end/42644
1754         PR middle-end/42130
1755         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1756         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1758 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1760         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1761         * testsuite/libgomp.c++/task-6.C: Likewise.
1763 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
1765         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1767 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
1769         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1770         * configure: Regenerate.
1772 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
1774         PR fortran/42866
1775         * testsuite/libgomp.fortran/allocatable5.f90: New test.
1777 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
1779         * configure.ac: Test for executability of GFORTRAN.
1780         * configure: Regenerate.
1782 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1784         * configure: Regenerate.
1786 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
1788         PR libgomp/42602
1789         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1791 2010-01-03  Richard Guenther  <rguenther@suse.de>
1793         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1795 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
1797         * testsuite/libgomp.graphite/pr4118.c: New.
1799 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1801         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1802         for darwin, protect the test with require-effective-target tls_runtime.
1803         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1805 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1807         PR target/41605
1808         * testsuite/lib/libgomp.exp: Provide -B options to allow for
1809         link spec %s substitutions for static libraries.
1811 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
1813         PR testsuite/42135
1814         * libgomp.graphite/force-parallel-2.c: Reduce array size.
1816 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1818         * Makefile.in: Regenerate.
1819         * configure: Regenerate.
1820         * testsuite/Makefile.in: Regenerate.
1822 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1824         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1825         settings for LC_ALL and LANG.
1827 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1829         PR fortran/42162
1830         * testsuite/libgomp.fortran/pr42162.f90: New test.
1832 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1834         PR middle-end/42029
1835         * testsuite/libgomp.c/pr42029.c: New test.
1837 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1839         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1840         *s.  Accept ld version without text in ()s.
1841         * configure: Regenerated.
1843 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1845         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1847 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1849         PR libgomp/41418
1850         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1851         or a hyphen (happens with fortran language disabled).
1852         * configure: Regenerate.
1854 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1856         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1857         use sed script portable to Solaris /bin/sed for extracting ld
1858         version.
1859         * configure: Regenerate.
1861 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
1863         * testsuite/libgomp.graphite/bounds.c: New test.
1865 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1867         * Makefile.am (libgomp_la_LINK): New.
1868         * Makefile.in: Regenerate.
1870 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1872         * configure.ac (AC_PREREQ): Bump to 2.64.
1874 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1876         * Makefile.am (install-html, install-pdf): Remove.
1877         * Makefile.in: Regenerate.
1879         * Makefile.in: Regenerate.
1880         * aclocal.m4: Regenerate.
1881         * config.h.in: Regenerate.
1882         * configure: Regenerate.
1883         * testsuite/Makefile.in: Regenerate.
1885 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1887         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1888         * Makefile.in: Regenerate.
1890 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
1892         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1893         * Makefile.in: Regenerate.
1895 2009-08-19  Tobias Burnus  <burnus@net-b.de>
1897         PR fortran/41102
1898         omp_lib.h.in: Fix -std=f95 errors.
1901 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
1903         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1904         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1905         * testsuite/libgomp.graphite/graphite.exp: New.
1907 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
1909         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1910         only build.
1912 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1914         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1915         needed memory barrier semantics.
1916         * config/linux/mips/mutex.h: New file.
1918 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1920         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1922 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
1924         * configure: Regenerate.
1926 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1928         PR testsuite/40699
1929         PR testsuite/40707
1930         PR testsuite/40709
1931         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1932         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1933         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1935 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1937         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1938         options when choosing a multilib.
1940 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1942         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1943         ld_library_path.  Use add_path.  Add just find_libgcc_s to
1944         ld_library_path, not every libgcc multilib directory.
1945         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1946         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1947         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1948         Use add_path.
1949         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1951 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
1953         * Makefile.am (LTLDFLAGS): Define.
1954         (LINK): Define.
1955         * Makefile.in: Regenerate.
1957 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1959         PR fortran/39718
1960         * testsuite/libgomp.fortran/fortran.exp: Don't link with
1961         libgfortranbegin, check existence of libgfortran.a instead of
1962         libgfortranbegin.a.
1964 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1966         PR libgomp/40174
1967         * team.c (gomp_thread_start): Destroy thr->release semaphore.
1968         (gomp_free_pool_helper): Likewise.
1970 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
1971             Jakub Jelinek  <jakub@redhat.com>
1973         PR fortran/35423
1974         * testsuite/libgomp.fortran/workshare2.f90: New test.
1976 2009-04-09  Nick Clifton  <nickc@redhat.com>
1978         * iter.c: Change copyright header to refer to version 3 of the
1979         GNU General Public License with version 3.1 of the GCC Runtime
1980         Library Exception and to point readers at the COPYING3 and
1981         COPYING3.RUNTIME files and the FSF's license web page.
1982         * alloc.c: Likewise.
1983         * barrier.c: Likewise.
1984         * config/bsd/proc.c: Likewise.
1985         * config/linux/affinity.c: Likewise.
1986         * config/linux/alpha/futex.h: Likewise.
1987         * config/linux/bar.c: Likewise.
1988         * config/linux/bar.h: Likewise.
1989         * config/linux/ia64/futex.h: Likewise.
1990         * config/linux/ia64/mutex.h: Likewise.
1991         * config/linux/lock.c: Likewise.
1992         * config/linux/mips/futex.h: Likewise.
1993         * config/linux/mutex.c: Likewise.
1994         * config/linux/mutex.h: Likewise.
1995         * config/linux/powerpc/futex.h: Likewise.
1996         * config/linux/proc.c: Likewise.
1997         * config/linux/ptrlock.c: Likewise.
1998         * config/linux/ptrlock.h: Likewise.
1999         * config/linux/s390/futex.h: Likewise.
2000         * config/linux/sem.c: Likewise.
2001         * config/linux/sem.h: Likewise.
2002         * config/linux/sparc/futex.h: Likewise.
2003         * config/linux/wait.h: Likewise.
2004         * config/linux/x86/futex.h: Likewise.
2005         * config/mingw32/proc.c: Likewise.
2006         * config/mingw32/time.c: Likewise.
2007         * config/posix/affinity.c: Likewise.
2008         * config/posix/bar.c: Likewise.
2009         * config/posix/bar.h: Likewise.
2010         * config/posix/lock.c: Likewise.
2011         * config/posix/mutex.h: Likewise.
2012         * config/posix/proc.c: Likewise.
2013         * config/posix/ptrlock.h: Likewise.
2014         * config/posix/sem.c: Likewise.
2015         * config/posix/sem.h: Likewise.
2016         * config/posix/time.c: Likewise.
2017         * config/posix95/lock.c: Likewise.
2018         * critical.c: Likewise.
2019         * env.c: Likewise.
2020         * error.c: Likewise.
2021         * fortran.c: Likewise.
2022         * iter_ull.c: Likewise.
2023         * libgomp.h: Likewise.
2024         * libgomp_f.h.in: Likewise.
2025         * libgomp_g.h: Likewise.
2026         * loop.c: Likewise.
2027         * loop_ull.c: Likewise.
2028         * omp.h.in: Likewise.
2029         * omp_lib.f90.in: Likewise.
2030         * omp_lib.h.in: Likewise.
2031         * ordered.c: Likewise.
2032         * parallel.c: Likewise.
2033         * sections.c: Likewise.
2034         * single.c: Likewise.
2035         * task.c: Likewise.
2036         * team.c: Likewise.
2037         * work.c: Likewise.
2039 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2041         * testsuite/config/default.exp: Change copyright header to refer to
2042         version 3 of the GNU General Public License and to point readers
2043         at the COPYING3 file and the FSF's license web page.
2045 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2047         PR middle-end/39573
2048         * libgomp.c++/pr39573.C: New test.
2050 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2052         PR other/39591
2053         * testsuite/libgomp.c/pr39591-1.c: New test.
2054         * testsuite/libgomp.c/pr39591-2.c: New test.
2055         * testsuite/libgomp.c/pr39591-3.c: New test.
2057 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
2059         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
2060         * testsuite/libgomp.c/atomic-6.c: Ditto.
2062 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2064         PR c/39495
2065         * testsuite/libgomp.c/loop-12.c: New test.
2066         * testsuite/libgomp.c/loop-11.c: New test.
2067         * testsuite/libgomp.c++/loop-11.C: New test.
2068         * testsuite/libgomp.c++/loop-12.C: New test.
2069         * testsuite/libgomp.c++/for-8.C: New test.
2071 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2073         * configure: Regenerate.
2075 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2077         PR middle-end/39154
2078         * testsuite/libgomp.c/pr39154.c: New test.
2080 2009-01-30  Ian Lance Taylor  <iant@google.com>
2082         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
2083         libgomp_ld_is_gold.  Get gold version number.
2084         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
2085         * configure: Rebuild.
2087 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2089         * testsuite/lib/libgomp.exp: Add -B option for targets that
2090         use libgfortran.a%s in their specs.
2092 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
2094         PR libgomp/38086
2095         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
2096         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
2097         HAVE_AS_SYMVER_DIRECTIVE is not defined.
2098         * configure: Regenerated.
2099         * config.h.in: Likewise.
2101 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
2103         PR c++/38650
2104         * testsuite/libgomp.c/pr38650.c: New test.
2105         * testsuite/libgomp.c++/pr38650.C: New test.
2107 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
2109         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
2111 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
2113         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
2115 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2117         * configure: Regenerate.
2119 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
2121         PR middle-end/36802
2122         * testsuite/libgomp.c/pr36802-1.c: New test.
2123         * testsuite/libgomp.c/pr36802-2.c: New test.
2124         * testsuite/libgomp.c/pr36802-3.c: New test.
2126 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
2128         PR libgomp/38270
2129         * config/linux/powerpc/mutex.h: New.
2131 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
2133         PR c++/38257
2134         * testsuite/libgomp.c++/for-7.C: New test.
2136         PR c++/38348
2137         * testsuite/libgomp.c++/for-6.C: New test.
2139 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
2141         PR testsuite/28870
2142         * testsuite/lib/libgomp.exp: Include new timeout library files.
2143         (libgomp_target_compile): Set timeout value from new proc.
2145 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
2147         PR libgomp/37938
2148         * config/linux/ia64/mutex.h: New.
2150 2008-11-04  Tobias Burnus  <burnus@net-b.de>
2152         PR libgomp/37935
2153         * libgomp.texi (Runtime library routines, environment variables):
2154         Update for OpenMP version 3.0.
2156 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2157             Steve Ellcey  <sje@cup.hp.com>
2159         * configure: Regenerate for new libtool.
2160         * Makefile.in: Ditto.
2161         * testsuite/Makefile.in: Ditto.
2163 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
2164             Andreas Tobler  <a.tobler@schweiz.org>
2166         * config/bsd/proc.c: New file.
2167         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
2168         * configure.ac: Check for header <sys/sysctl.h>
2169         * configure: Regenerate.
2170         * config.h.in: Likewise.
2172 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
2174         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
2176 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2178         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
2179         * Makefile.in: Regenerated.
2180         * testsuite/Makefile.in: Regenerated.
2182 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
2184         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
2185         depend on blddir if blddir exists.
2186         (libgomp_target_compile): Likewise.
2187         * testsuite/libgomp.c++/c++.exp: Likewise.
2188         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2190 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2192         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
2193         Do not list GPL as Invariant Section.
2195 2008-07-28  Ilie Garbacea  <ilie@mips.com>
2196             Chao-ying Fu  <fu@mips.com>
2198         * configure.tgt: Enable futex for MIPS.
2199         * config/linux/mips/futex.h: New file.
2201 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
2203         * team.c (gomp_team_end): Free team immediately if it has
2204         just one thread.
2206 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
2208         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
2209         * testsuite/libgomp.fortran/fortran.exp: Same.
2210         * testsuite/libgomp.c/c.exp: Same.
2211         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
2212         directory to library path first.
2214 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
2216         * env.c (parse_stacksize): Add cast to avoid warning.
2217         (parse_spincount): Likewise.
2219 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2221         * testsuite/libgomp.c/loop-10.c: New test.
2222         * libgomp.c/loop-3.c (main): Add lastprivate clause.
2223         * libgomp.c++/loop-6.C (main): Likewise.
2225         PR debug/36617
2226         * testsuite/libgomp.c/debug-1.c: New test.
2228 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2230         * testsuite/libgomp.c/nqueens-1.c: New test.
2232         PR c++/36523
2233         * testsuite/libgomp.c++/task-7.C: New function.
2235 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2237         * configure: Regenerate.
2239 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2241         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
2242         mutex when HAVE_SYNC_BUILTINS isn't defined.
2244 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2246         * libgomp.texi (omp_test_lock): Fix typo.
2248 2008-06-12  Tobias Burnus  <burnus@net-b.de>
2250         * omp_lib.f90.in: Add "implicit none".
2252 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2254         PR middle-end/36506
2255         * testsuite/libgomp.c/reduction-5.c: New test.
2257 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
2259         * libgomp.h (struct gomp_task): Add in_tied_task field.
2260         * task.c (gomp_init_task): Initialize it.
2261         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
2262         unconditionally.  Don't call gomp_team_barrier_wake if
2263         current task is implicit or if(0) from implicit and number of
2264         running tasks is equal to nthreads - 1.
2266         PR libgomp/36471
2267         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2268         omp_get_team_size_8): Fix pastos.
2270         PR libgomp/36469
2271         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
2272         * configure: Regenerated.
2273         * config.h.in: Regenerated.
2274         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
2275         defined.
2277 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
2279         PR bootstrap/36452
2280         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
2281         (GOMP_loop_ull_dynamic_start): Likewise.
2282         (GOMP_loop_ull_guided_start): Likewise.
2283         (GOMP_loop_ull_ordered_static_start): Likewise.
2284         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
2285         (GOMP_loop_ull_ordered_guided_start): Likewise.
2287 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2288             Richard Henderson  <rth@redhat.com>
2289             Ulrich Drepper  <drepper@redhat.com>
2290             Jakob Blomer  <jakob.blomer@ira.uka.de>
2292         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
2293         Substitute also OMP_*LOCK_25*.
2294         * configure: Regenerated.
2295         * config.h.in: Regenerated.
2296         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
2297         ptrlock.c and task.c.
2298         * Makefile.in: Regenerated.
2299         * testsuite/Makefile.in: Regenerated.
2300         * task.c: New file.
2301         * loop_ull.c: New file.
2302         * iter_ull.c: New file.
2303         * libgomp.h: Include ptrlock.h.
2304         (enum gomp_task_kind): New type.
2305         (struct gomp_team): Add task_lock, task_queue, task_count,
2306         task_running_count, single_count fields.  Add
2307         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
2308         Remove work_share_lock, generation_mask,
2309         oldest_live_gen, num_live_gen and init_work_shares fields, add
2310         work work_share_list_alloc, work_share_list_free and work_share_chunk
2311         fields.  Change work_shares from pointer to pointers into an array.
2312         Change ordered_release field into gomp_sem_t ** from flexible array
2313         member.  Add implicit_task and initial_work_shares fields.
2314         Move close to the end of the struct.
2315         (struct gomp_team_state): Add single_count, last_work_share,
2316         active_level and level fields, remove work_share_generation.
2317         (gomp_barrier_handle_tasks): New prototype.
2318         (gomp_finish_task): New inline function.
2319         (struct gomp_work_share): Move chunk_size, end, incr into
2320         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2321         next_ll fields.  Reshuffle fields.  Add next_alloc,
2322         next_ws, next_free and inline_ordered_team_ids fields, change
2323         ordered_team_ids into pointer from flexible array member.
2324         Add mode field.  Put lock and next into a different cache line
2325         from most of the write-once fields.
2326         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2327         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2328         gomp_iter_ull_guided_next): New prototypes.
2329         (gomp_new_icv): New prototype.
2330         (struct gomp_thread): Add thread_pool and task fields.
2331         (struct gomp_thread_pool): New type.
2332         (gomp_new_team): New prototype.
2333         (gomp_team_start): Change type of last argument.
2334         (gomp_new_work_share): Removed.
2335         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2336         (gomp_work_share_init_done): New static inline.
2337         (gomp_throttled_spin_count_var, gomp_available_cpus,
2338         gomp_managed_threads): New extern decls.
2339         (gomp_init_task): New prototype.
2340         (gomp_spin_count_var): New extern var decl.
2341         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2342         or no alias support, or if not PIC.
2343         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2344         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2345         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2346         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2347         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2348         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2349         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2350         gomp_test_nest_lock_25): New prototypes.
2351         (omp_lock_symver, strong_alias): Define.
2352         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2353         decls.
2354         (gomp_end_task): New.
2355         (struct gomp_task_icv, gomp_global_icv): New.
2356         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2357         (struct gomp_task): New.
2358         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2359         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2360         (gomp_icv): New.
2361         (gomp_schedule_type): Reorder enum to match
2362         omp_sched_t.
2363         * team.c (struct gomp_thread_start_data): Add thread_pool and task
2364         fields.
2365         (gomp_thread_start): Add gomp_team_barrier_wait call.
2366         For non-nested case remove clearing of docked thread thr fields.
2367         Use pool fields instead of global gomp_* variables.  Use
2368         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
2369         Create tasks for each member thread.
2370         (free_team): Only destroy team barrier, task_lock here and free it.
2371         (gomp_free_thread): Free last_team if non-NULL.
2372         (gomp_team_end): Call gomp_team_barrier_wait instead of
2373         gomp_barrier_wait.  For nested case call one extra
2374         gomp_barrier_wait.  Move here some destruction from free_team.
2375         Call free_team on pool->last_team if any, rather than freeing
2376         current team.  Destroy work_share_list_free_lock ifndef
2377         HAVE_SYNC_BUILTINS.
2378         (gomp_new_icv): New function.
2379         (gomp_threads, gomp_threads_size, gomp_threads_used,
2380         gomp_threads_dock): Removed.
2381         (gomp_thread_destructor): New variable.
2382         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2383         functions.
2384         (gomp_team_start): Create new pool if current thread doesn't have
2385         one.  Use pool fields instead of global gomp_* variables.
2386         Initialize thread_pool field for new threads.  Clear single_count.
2387         Change last argument from ws to team, don't create
2388         new team, set ts.work_share to &team->work_shares[0] and clear
2389         ts.last_work_share.  Don't clear ts.work_share_generation.
2390         If number of threads changed, adjust atomically gomp_managed_threads.
2391         Use gomp_init_task instead of gomp_new_task,
2392         set thr->task to the corresponding implicit_task array entry.
2393         Create tasks for each member thread.  Initialize ts.level.
2394         (initialize_team): Call pthread_key_create on
2395         gomp_thread_destructor.
2396         (team_destructor): New function.
2397         (new_team): Removed.
2398         (gomp_new_team): New function.
2399         (free_team): Free gomp_work_share blocks chained through next_alloc,
2400         instead of freeing work_shares and destroying work_share_lock.
2401         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
2402         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
2403         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2404         of gomp_barrier_wait.
2405         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2406         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
2407         if gomp_work_share_start returned true.  Don't unlock ws->lock.
2408         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2409         of gomp_barrier_wait.
2410         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
2411         gomp_work_share_init_done if gomp_work_share_start returned true.
2412         Don't unlock ws->lock.
2413         * work.c: Include stddef.h.
2414         (free_work_share): Use work_share_list_free_lock instead
2415         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
2416         Call gomp_fini_work_share and then either free ws if orphaned, or
2417         put it into work_share_list_free list of the current team.
2418         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2419         functions.
2420         (gomp_work_share_start, gomp_work_share_end,
2421         gomp_work_share_end_nowait): Rewritten.
2422         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2423         (openmp_version): Set to 200805.
2424         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2425         omp_sched_guided, omp_sched_auto): New parameters.
2426         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2427         omp_set_max_active_levels, omp_get_max_active_levels,
2428         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2429         omp_get_active_level): New interfaces.
2430         * omp_lib.h.in (openmp_version): Set to 200805.
2431         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2432         omp_sched_guided, omp_sched_auto): New parameters.
2433         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2434         omp_set_max_active_levels, omp_get_max_active_levels,
2435         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2436         omp_get_active_level): New externals.
2437         * loop.c: Include limits.h.
2438         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2439         GFS_AUTO.
2440         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2441         Likewise.  Use gomp_icv.
2442         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2443         ts.static_trip here.
2444         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2445         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
2446         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2447         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
2448         don't unlock ws->lock, otherwise lock it.
2449         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2450         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
2451         (gomp_parallel_loop_start): Call gomp_new_team instead of
2452         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
2453         Adjust gomp_team_start caller.  Pass 0 as second argument to
2454         gomp_resolve_num_threads.
2455         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2456         If adding ws->chunk_size nthreads + 1 times after end won't
2457         overflow, set ws->mode to 1.
2458         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2459         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2460         GOMP_loop_ull_ordered_static_start,
2461         GOMP_loop_ull_ordered_dynamic_start,
2462         GOMP_loop_ull_ordered_guided_start,
2463         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2464         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2465         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2466         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2467         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2468         prototypes.
2469         * libgomp.map: Export lock routines also @@OMP_2.0.
2470         (GOMP_loop_ordered_dynamic_first,
2471         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2472         GOMP_loop_ordered_static_first): Remove.
2473         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2474         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2475         GOMP_loop_ull_ordered_dynamic_next,
2476         GOMP_loop_ull_ordered_dynamic_start,
2477         GOMP_loop_ull_ordered_guided_next,
2478         GOMP_loop_ull_ordered_guided_start,
2479         GOMP_loop_ull_ordered_runtime_next,
2480         GOMP_loop_ull_ordered_runtime_start,
2481         GOMP_loop_ull_ordered_static_next,
2482         GOMP_loop_ull_ordered_static_start,
2483         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2484         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2485         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2486         (omp_set_schedule, omp_get_schedule,
2487         omp_get_thread_limit, omp_set_max_active_levels,
2488         omp_get_max_active_levels, omp_get_level,
2489         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2490         omp_set_schedule_, omp_set_schedule_8_,
2491         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2492         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2493         omp_get_max_active_levels_, omp_get_level_,
2494         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2495         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2496         New exports @@OMP_3.0.
2497         * omp.h.in (omp_sched_t): New type.
2498         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2499         omp_set_max_active_levels, omp_get_max_active_levels,
2500         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2501         omp_get_active_level): New prototypes.
2502         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2503         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2504         gomp_thread_limit_var, gomp_remaining_threads_count,
2505         gomp_remaining_threads_lock): New variables.
2506         (parse_spincount): New function.
2507         (initialize_env): Call gomp_init_num_threads unconditionally.
2508         Initialize gomp_available_cpus.  Call parse_spincount,
2509         initialize gomp_{,throttled_}spin_count_var
2510         depending on presence and value of OMP_WAIT_POLICY and
2511         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
2512         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2513         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
2514         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
2515         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
2516         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2517         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2518         (gomp_global_icv): New.
2519         (parse_schedule): Use it.  Parse "auto".
2520         (omp_set_num_threads): Use gomp_icv.
2521         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2522         Likewise.
2523         (omp_get_max_threads): Move from parallel.c.
2524         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2525         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2526         add ialias.
2527         (parse_stacksize, parse_wait_policy): New functions.
2528         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2529         both wrappers for compatibility and new locks.
2530         (omp_set_schedule, omp_get_schedule,
2531         omp_get_thread_limit, omp_set_max_active_levels,
2532         omp_get_max_active_levels, omp_get_level,
2533         omp_get_ancestor_thread_num, omp_get_team_size,
2534         omp_get_active_level): New ialias_redirect.
2535         (omp_set_schedule_, omp_set_schedule_8_,
2536         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2537         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2538         omp_get_max_active_levels_, omp_get_level_,
2539         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2540         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2541         New functions.
2542         * parallel.c: Include limits.h.
2543         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2544         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2545         argument to gomp_team_start.  Pass 0 as second argument to
2546         gomp_resolve_num_threads.
2547         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2548         if gomp_thread_limit_var != ULONG_MAX.
2549         (omp_in_parallel): Implement using ts.active_level.
2550         (omp_get_max_threads): Move to env.c.
2551         (omp_get_level, omp_get_ancestor_thread_num,
2552         omp_get_team_size, omp_get_active_level): New functions,
2553         add ialias.
2554         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2555         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2556         gomp_iter_dynamic_next instead of the _locked variant and don't take
2557         lock around it, otherwise acquire it before calling
2558         gomp_iter_dynamic_next_locked.
2559         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2560         gomp_iter_dynamic_next instead of the _locked variant and don't take
2561         lock around it.
2562         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2563         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2564         Adjust gomp_team_start caller.  Pass count as second argument to
2565         gomp_resolve_num_threads, don't adjust num_threads after the call.
2566         Use gomp_icv.
2567         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2568         ws->chunk_size by incr.
2569         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2570         code.
2571         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2572         types.
2573         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2574         (omp_check_defines): Check even the compat defines.
2575         * config/linux/ptrlock.c: New file.
2576         * config/linux/ptrlock.h: New file.
2577         * config/linux/wait.h: New file.
2578         * config/posix/ptrlock.c: New file.
2579         * config/posix/ptrlock.h: New file.
2580         * config/linux/bar.h (gomp_team_barrier_wait,
2581         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2582         (gomp_team_barrier_set_task_pending,
2583         gomp_team_barrier_clear_task_pending,
2584         gomp_team_barrier_set_waiting_for_tasks,
2585         gomp_team_barrier_waiting_for_tasks,
2586         gomp_team_barrier_done): New inlines.
2587         (gomp_barrier_t): Rewritten.
2588         (gomp_barrier_state_t): New typedef.
2589         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2590         gomp_barrier_wait_start): Rewritten.
2591         (gomp_barrier_wait_end): Change second argument to
2592         gomp_barrier_state_t.
2593         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2594         inlines.
2595         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2596         futex.h.
2597         (gomp_barrier_wait_end): Rewritten.
2598         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2599         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2600         * config/posix/bar.h (gomp_barrier_t): Add generation field.
2601         (gomp_barrier_state_t): New typedef.
2602         (gomp_team_barrier_wait,
2603         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2604         (gomp_barrier_wait_start): Or all but low 2 bits from generation
2605         into the return value.  Return gomp_barrier_state_t.
2606         (gomp_team_barrier_set_task_pending,
2607         gomp_team_barrier_clear_task_pending,
2608         gomp_team_barrier_set_waiting_for_tasks,
2609         gomp_team_barrier_waiting_for_tasks,
2610         gomp_team_barrier_done): New inlines.
2611         (gomp_barrier_wait_end): Change second argument to
2612         gomp_barrier_state_t.
2613         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2614         inlines.
2615         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2616         (gomp_barrier_wait_end): Change second argument to
2617         gomp_barrier_state_t.
2618         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2619         gomp_team_barrier_wake): New functions.
2620         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2621         futex.h.
2622         (gomp_futex_wake, gomp_futex_wait): New variables.
2623         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2624         * config/linux/lock.c: Rewrite to make locks task owned,
2625         for backwards compatibility provide the old entrypoints
2626         if symbol versioning.  Include wait.h instead of libgomp.h and
2627         futex.h.
2628         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2629         * config/posix95/lock.c: Rewrite to make locks task owned,
2630         for backwards compatibility provide the old entrypoints
2631         if symbol versioning.
2632         * config/posix/lock.c: Rewrite to make locks task owned,
2633         for backwards compatibility provide the old entrypoints
2634         if symbol versioning.
2635         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2636         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2637         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2638         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2639         (sys_futex0): Return error code.
2640         (futex_wake, futex_wait): If ENOSYS was returned, clear
2641         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2642         (cpu_relax, atomic_write_barrier): New static inlines.
2643         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2644         (futex_wake, futex_wait): If ENOSYS was returned, clear
2645         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2646         (cpu_relax, atomic_write_barrier): New static inlines.
2647         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2648         (sys_futex0): Return error code.
2649         (futex_wake, futex_wait): If ENOSYS was returned, clear
2650         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2651         (cpu_relax, atomic_write_barrier): New static inlines.
2652         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2653         (sys_futex0): Return error code.
2654         (futex_wake, futex_wait): If ENOSYS was returned, clear
2655         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2656         (cpu_relax, atomic_write_barrier): New static inlines.
2657         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2658         (sys_futex0): Return error code.
2659         (futex_wake, futex_wait): If ENOSYS was returned, clear
2660         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2661         (cpu_relax, atomic_write_barrier): New static inlines.
2662         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2663         (sys_futex0): Return error code.
2664         (futex_wake, futex_wait): If ENOSYS was returned, clear
2665         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2666         (cpu_relax, atomic_write_barrier): New static inlines.
2667         * config/linux/sem.c: Include wait.h instead of libgomp.h and
2668         futex.h.
2669         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2670         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2671         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2672         types.
2673         (omp_nest_lock_t): Change owner into void *, add lock field.
2674         * config/posix95/omp-lock.h: Include semaphore.h.
2675         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2676         (omp_lock_t): Use sem_t instead of mutex if semaphores
2677         aren't broken.
2678         (omp_nest_lock_t): Likewise.  Change owner to void *.
2679         * config/posix/omp-lock.h: Include semaphore.h.
2680         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2681         (omp_lock_t): Use sem_t instead of mutex if semaphores
2682         aren't broken.
2683         (omp_nest_lock_t): Likewise.  Add owner field.
2685 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2687         * testsuite/libgomp.c/collapse-1.c: New test.
2688         * testsuite/libgomp.c/collapse-2.c: New test.
2689         * testsuite/libgomp.c/collapse-3.c: New test.
2690         * testsuite/libgomp.c/icv-1.c: New test.
2691         * testsuite/libgomp.c/icv-2.c: New test.
2692         * testsuite/libgomp.c/lib-2.c: New test.
2693         * testsuite/libgomp.c/lock-1.c: New test.
2694         * testsuite/libgomp.c/lock-2.c: New test.
2695         * testsuite/libgomp.c/lock-3.c: New test.
2696         * testsuite/libgomp.c/loop-4.c: New test.
2697         * testsuite/libgomp.c/loop-5.c: New test.
2698         * testsuite/libgomp.c/loop-6.c: New test.
2699         * testsuite/libgomp.c/loop-7.c: New test.
2700         * testsuite/libgomp.c/loop-8.c: New test.
2701         * testsuite/libgomp.c/loop-9.c: New test.
2702         * testsuite/libgomp.c/nested-3.c: New test.
2703         * testsuite/libgomp.c/nestedfn-6.c: New test.
2704         * testsuite/libgomp.c/sort-1.c: New test.
2705         * testsuite/libgomp.c/task-1.c: New test.
2706         * testsuite/libgomp.c/task-2.c: New test.
2707         * testsuite/libgomp.c/task-3.c: New test.
2708         * testsuite/libgomp.c/task-4.c: New test.
2709         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2710         to C++ testsuite default compiler options.
2711         * testsuite/libgomp.c++/collapse-1.C: New test.
2712         * testsuite/libgomp.c++/collapse-2.C: New test.
2713         * testsuite/libgomp.c++/ctor-10.C: New test.
2714         * testsuite/libgomp.c++/for-1.C: New test.
2715         * testsuite/libgomp.c++/for-2.C: New test.
2716         * testsuite/libgomp.c++/for-3.C: New test.
2717         * testsuite/libgomp.c++/for-4.C: New test.
2718         * testsuite/libgomp.c++/for-5.C: New test.
2719         * testsuite/libgomp.c++/loop-8.C: New test.
2720         * testsuite/libgomp.c++/loop-9.C: New test.
2721         * testsuite/libgomp.c++/loop-10.C: New test.
2722         * testsuite/libgomp.c++/task-1.C: New test.
2723         * testsuite/libgomp.c++/task-2.C: New test.
2724         * testsuite/libgomp.c++/task-3.C: New test.
2725         * testsuite/libgomp.c++/task-4.C: New test.
2726         * testsuite/libgomp.c++/task-5.C: New test.
2727         * testsuite/libgomp.c++/task-6.C: New test.
2728         * testsuite/libgomp.fortran/allocatable1.f90: New test.
2729         * testsuite/libgomp.fortran/allocatable2.f90: New test.
2730         * testsuite/libgomp.fortran/allocatable3.f90: New test.
2731         * testsuite/libgomp.fortran/allocatable4.f90: New test.
2732         * testsuite/libgomp.fortran/collapse1.f90: New test.
2733         * testsuite/libgomp.fortran/collapse2.f90: New test.
2734         * testsuite/libgomp.fortran/collapse3.f90: New test.
2735         * testsuite/libgomp.fortran/collapse4.f90: New test.
2736         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2737         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2738         * testsuite/libgomp.fortran/lib4.f90: New test.
2739         * testsuite/libgomp.fortran/lock-1.f90: New test.
2740         * testsuite/libgomp.fortran/lock-2.f90: New test.
2741         * testsuite/libgomp.fortran/nested1.f90: New test.
2742         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2743         * testsuite/libgomp.fortran/strassen.f90: New test.
2744         * testsuite/libgomp.fortran/tabs1.f90: New test.
2745         * testsuite/libgomp.fortran/tabs2.f: New test.
2746         * testsuite/libgomp.fortran/task1.f90: New test.
2747         * testsuite/libgomp.fortran/task2.f90: New test.
2748         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2749         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2750         * testsuite/libgomp.c/pr26943-2.c: Likewise.
2751         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2752         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2754 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
2756         PR c++/36308
2757         * testsuite/libgomp.c++/ctor-11.C: New test.
2758         * testsuite/libgomp.c++/ctor-12.C: New test.
2760 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2762         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2764 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2766         PR middle-end/36106
2767         * testsuite/libgomp.c/atomic-5.c: New test.
2768         * testsuite/libgomp.c/atomic-6.c: New test.
2769         * testsuite/libgomp.c/autopar-1.c: New test.
2771 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2773         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2774         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2775         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2776         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2777         * configure: Regenerate.
2778         * Makefile.in, testsuite/Makefile.in: Likewise.
2780 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2782         PR bootstrap/35457
2783         * aclocal.m4: Regenerate.
2784         * configure: Regenerate.
2786 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2788         PR middle-end/35611
2789         * testsuite/libgomp.c/atomic-4.c: New test.
2791         PR libgomp/35625
2792         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2793         (gomp_iter_guided_next): Likewise.
2794         * testsuite/libgomp.c/pr35625.c: New test.
2796 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2798         * aclocal.m4: Regenerate.
2799         * configure: Likewise.
2800         * Makefile.in: Likewise.
2801         * testsuite/Makefile.in: Likewise.
2803 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
2805         PR middle-end/35185
2806         * testsuite/libgomp.c++/pr35185.C: New test.
2808 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2810         PR middle-end/35549
2811         * testsuite/libgomp.c/pr35549.c: New test.
2813 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2815         * testsuite/libgomp.c/atomic-3.c: New test.
2817 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2819         PR fortran/33197
2820         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2821         .F08 file suffixes.
2823 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
2825         PR libgomp/33131
2826         * configure.ac: Add ACX_HEADER_STRING.
2827         * env.c: Include strings.h.
2828         * aclocal.m4: Regenerate.
2829         * config.h.in: Regenerate.
2830         * configure: Regenerate.
2831         * Makefile.in: Regenerate.
2832         * testsuite/Makefile.in: Regenerate.
2834 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2836         PR middle-end/35196
2837         * testsuite/libgomp.c/pr35196.c: New test.
2839         PR middle-end/35130
2840         * testsuite/libgomp.fortran/pr35130.f90: New test.
2841         * testsuite/libgomp.c/pr35130.c: New test.
2843 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
2845         PR middle-end/33880
2846         * testsuite/libgomp.c/pr33880.c: New test.
2847         * testsuite/libgomp.fortran/pr33880.f90: New test.
2849 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2851         * configure: Regenerate.
2853 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
2855         * configure.ac: Move futex checking into ../config/futex.m4.
2856         * configure: Rebuilt.
2857         * aclocal.m4: Rebuilt.
2858         * Makefile.in: Rebuilt.
2860         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2861         2007-10-15 ../config/tls.m4 change.
2863 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
2865         PR c++/34513
2866         * testsuite/libgomp.c/pr34513.c: New test.
2867         * testsuite/libgomp.c++/pr34513.C: New test.
2869 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
2871         PR target/32765
2872         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2874 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
2876         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
2878 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
2880         * testsuite/libgomp.c/private-1.c: New test.
2882 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
2883             Paolo Bonzini  <bonzini@gnu.org>
2885         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
2886         instead of 'VPATH ='.
2887         * Makefile.in: Regenerate.
2889 2007-11-23  Matthias Klose  <doko@ubuntu.com>
2891         * configure.ac: Adjust makeinfo version check.
2892         * configure: Regenerate.
2894 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2896         PR fortran/34020
2897         * testsuite/libgomp.fortran/pr34020.f90: New test.
2899 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2901         PR c++/33894
2902         * testsuite/libgomp.c++/atomic-1.C: New test.
2904 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
2906         PR libgomp/33275
2907         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2908         Make x and y integers rather than (implicit) reals.  Add private (j)
2909         clause to the last omp parallel.
2911 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
2913         * configure: Regenerate following changes to ../config/tls.m4.
2915 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
2917         * testsuite/libgomp.fortran/stack.f90: New test.
2919 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
2921         * config/mingw32/proc.c: New file.
2923 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2925         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2926         (main): Use __get_cpuid to get i386 target fetaures.
2927         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2928         (main): Use __get_cpuid to get x86_64 target fetaures.
2930 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
2932         PR target/32765
2933         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2934         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2936 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2938         PR fortran/32550
2939         * testsuite/libgomp.fortran/pr32550.f90: New test.
2940         * testsuite/libgomp.fortran/crayptr2.f90: New test.
2942 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2944         * aclocal.m4: Regenerated.
2946 2007-07-05  Tobias Burnus  <burnus@net-b.de>
2948         PR fortran/32359
2949         * testsuite/libgomp.fortran/pr32359.f90: New.
2951 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2953         PR libgomp/32468
2954         * sections.c (GOMP_parallel_sections_start): Only decrease
2955         number of threads to COUNT if dyn_var is true.
2956         * testsuite/libgomp.c/pr32468.c: New test.
2958 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2960         PR libgomp/26308
2961         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2963 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2965         PR middle-end/32362
2966         * testsuite/libgomp.c/pr32362-1.c: New test.
2967         * testsuite/libgomp.c/pr32362-2.c: New test.
2968         * testsuite/libgomp.c/pr32362-3.c: New test.
2970 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
2972         * team.c (gomp_team_start): Fix setting up thread_attr
2973         stack size.
2975 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2977         * configure: Regenerate.
2979 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2981         * Makefile.in: Regenerate.
2982         * configure: Regenerate.
2983         * aclocal.m4: Regenerate.
2984         * testsuite/Makefile.in: Regenerate.
2986 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
2988         * config/linux/proc.c: New file.
2990         PR libgomp/28482
2991         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2993 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
2995         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2997 2007-04-16  Matthias Klose  <doko@debian.org>
2999         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
3000         flags if not building with -m64.
3001         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
3002         flag for i?86-*-* targets, if current target matches -m64.
3004 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
3006         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
3007         * Makefile.in: Regenerate.
3009 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3011         PR testsuite/31369
3012         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
3013         ld_library_path.
3014         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3016 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
3018         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
3019         decls.
3020         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
3021         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
3022         (parse_affinity): New function.
3023         (initialize_env): Call it and gomp_init_affinity.
3024         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
3025         create new pthread_attr_t and call gomp_init_thread_affinity
3026         on it for each thread before passing the attribute to pthread_create.
3027         * config/linux/affinity.c: New file.
3028         * config/posix/affinity.c: New file.
3029         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
3030         * configure: Rebuilt.
3031         * config.h.in: Rebuilt.
3032         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
3033         * Makefile.in: Rebuilt.
3035 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
3037         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
3038         *-*-darwin*.
3039         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
3040         and use it if found.
3042 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
3044         * testsuite/config/default.exp: New file.
3045         * testsuite/lib/libgomp.exp: New file.
3046         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
3047         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
3048         load_lib *, load_gcc_lib *): Move to libgomp.exp.
3049         (libgomp_load): Remove.
3050         * testsuite/lib/libgomp.exp (libgomp_init): Compute
3051         always_ld_library_path, not ld_library_path.  Set additional_flags
3052         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
3053         (target_compile): Do not call libgomp_init.  Append lang_library_path
3054         and lang_link_flags to options.
3055         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
3056         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
3057         here.
3058         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
3059         always_ld_library_path.  Set LD_LIBRARY_PATH here.
3060         * testsuite/libgomp.fortran/fortran.exp: Ditto.
3061         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
3062         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
3063         CX8 flag.
3064         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
3065         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
3066         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
3067         * testsuite/libgomp.c/pr29947-1.c: Ditto.
3068         * testsuite/libgomp.c/atomic-10.c: Ditto.
3070 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
3072         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
3073         dg-final cleanup-modules line.
3074         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
3075         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
3076         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
3077         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
3078         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
3079         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
3080         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
3082 2007-03-18  Andreas Schwab  <schwab@suse.de>
3084         * acinclude.m4: Adjust regular expression for ld version
3085         extraction.
3086         * configure: Regenerate.
3088 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3090         * Makefile.am: Add install-pdf target as copied from
3091         automake v1.10 rules.
3092         * Makefile.in: Regenerate
3094 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
3096         PR libgomp/28486
3097         * configure: Regenerate.
3099         PR c++/30703
3100         * testsuite/libgomp.c++/pr30703.C: New test.
3102 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
3104         Revert:
3105         2006-07-05  Eric Christopher  <echristo@apple.com>
3106         * configure.ac: Depend addition of -pthread on host OS.
3107         * configure: Regenerate.
3109 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3111         * libgomp.texi: Fix spacing after abbreviations.
3113 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
3115         PR libgomp/30546
3116         * configure.ac: Add check for makeinfo
3117         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
3118         if an appropiate version of makeinfo is found.
3119         * aclocal.m4: Regenerated.
3120         * configure: Regenerated.
3121         * Makefile.in: Regenerated.
3122         * testsuite/Makefile.in: Regenerated.
3124 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
3126         PR libgomp/30540
3127         * libgomp.texi: More about implementation-dependent settings.
3129 2007-01-26  Tobias Burnus  <burnus@net-b.de>
3131         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
3133 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
3135         PR middle-end/30494
3136         * testsuite/libgomp.c/pr30494.c: New test.
3138 2007-01-15  Tom Tromey  <tromey@redhat.com>
3140         * configure: Rebuilt.
3141         * configure.ac: Fixed comment.
3143 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
3145         * libgomp.texi: Document implementation specific default values of
3146         environment variables.
3148 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
3150         PR libgomp/28209
3151         * libgomp.texi: New file.
3152         * configure.ac: Add --enable-generated-files-in-srcdir option.
3153         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
3154         files to srcdir.
3155         * Makefile.in: Regenerated.
3156         * config.h.in: Regenerated.
3157         * testsuite/Makefile.in: Regenerated.
3158         * NOTES: Removed.
3160 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
3162         PR libgomp/29949
3163         * env.c (omp_set_num_threads): Set illegal thread count to 1.
3165 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3167         * configure: Regenerate.
3169 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
3171         PR libgomp/29947
3172         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
3173         start if there shouldn't be any loop iterations.
3174         (gomp_loop_ordered_static_start): Remove start == end test.
3175         * testsuite/libgomp.c/pr29947-1.c: New test.
3176         * testsuite/libgomp.c/pr29947-2.c: New test.
3178 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
3180         * configure.tgt: Force initial-exec TLS model on Linux only.
3182 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
3184         * configure: Regenerated.
3186 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
3188         * env.c (parse_schedule): Reject out of range values.
3189         (parse_unsigned_long): Reject out of range, negative or zero values.
3191 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
3193         PR fortran/29629
3194         * testsuite/libgomp.fortran/pr29629.f90: New test.
3196 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3198         PR libgomp/29494
3199         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
3200         * config/posix95: New directory.
3201         * config/posix95/omp-lock.h: New file.
3202         * config/posix95/lock.c: Likewise.
3204 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
3206         * aclocal.m4: Regenerate.
3207         * configure: Regenerate.
3209 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3211         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
3212         '<' to '<='.
3214 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3216         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
3217         test.
3218         * configure: Regenerate.
3219         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
3221 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
3223         PR middle-end/25261
3224         PR middle-end/28790
3225         * testsuite/libgomp.c/nestedfn-4.c: New test.
3226         * testsuite/libgomp.c/nestedfn-5.c: New test.
3227         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
3229         PR fortran/29097
3230         * testsuite/libgomp.fortran/condinc1.f: New test.
3231         * testsuite/libgomp.fortran/condinc2.f: New test.
3232         * testsuite/libgomp.fortran/condinc3.f90: New test.
3233         * testsuite/libgomp.fortran/condinc4.f90: New test.
3234         * testsuite/libgomp.fortran/condinc1.inc: New file.
3236 2006-09-18  Tom Tromey  <tromey@redhat.com>
3238         * configure: Rebuilt.
3240 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
3242         PR c/28768
3243         PR preprocessor/14634
3244         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
3245         to AC_DEFINE.
3246         * configure: Regenerate.
3248 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
3250         * testsuite/libgomp.fortran/reduction3.f90: Change
3251         -2147483648 to -huge(i)-1 to avoid overflow.
3252         * testsuite/libgomp.fortran/reduction4.f90: Change
3253         Z'ffffffff' to not(0) to avoid overflow.
3255 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3257         PR libgomp/25938
3258         * Makefile.am (libsubincludedir): New.
3259         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
3260         * Makefile.in: Regenerate.
3262 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
3264         PR libgomp/28725
3265         * env.c: Include ctype.h.
3266         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
3267         leading and/or trailing whitespace and compare strings case
3268         insensitively.
3270 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
3272         PR fortran/28390
3273         * testsuite/libgomp.fortran/pr28390.f: New test.
3275 2006-07-05  Eric Christopher  <echristo@apple.com>
3277         * configure.ac: Depend addition of -pthread on host OS.
3278         * configure: Regenerate.
3280 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
3282         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
3283         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
3284         defined.
3286 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
3288         PR libgomp/26175
3289         PR libgomp/26477
3290         * configure.ac: If neither --enable-linux-futex nor
3291         --disable-linux-futex is passed, determine the default by checking
3292         for compiling and/or running against NPTL.  With --enable-linux-futex,
3293         check if SYS_gettid and SYS_futex are defined.
3294         * configure: Rebuilt.
3296 2006-06-14  Richard Henderson  <rth@redhat.com>
3298         PR libgomp/28008
3299         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
3300         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
3302 2006-06-09  Richard Henderson  <rth@redhat.com>
3304         * env.c (gomp_nthreads_var): Change to unsigned long.
3305         (gomp_run_sched_chunk): Likewise.
3306         (parse_unsigned_long): Rename from parse_num_threads and generalize.
3307         (initialize_env): Initialize gomp_thread_attr.
3308         * libgomp.h (gomp_nthreads_var): Update decl.
3309         (gomp_run_sched_chunk): Likewise.
3310         (gomp_thread_attr): Declare.
3311         * team.c (gomp_thread_attr): Export.
3312         (initialize_team): Don't initialize it.
3314 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
3316         PR fortran/27916
3317         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3318         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3320 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3322         * config/mingw32/time.c: New file.
3323         * configure.tgt: Use it.
3325 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3327         * Makefile.am: Add install-html target. Add install-html to .PHONY
3328         * Makefile.in: Regenerate.
3330 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3332         PR libgomp/27612
3333         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3334         * testsuite/libgomp.c/critical-1.c: Likewise.
3335         * testsuite/libgomp.c/loop-1.c: Likewise.
3336         * testsuite/libgomp.c/loop-2.c: Likewise.
3337         * testsuite/libgomp.c/single-1.c: Likewise.
3338         * testsuite/libgomp.c/ordered-1.c: Likewise.
3339         * testsuite/libgomp.c/ordered-2.c: Likewise.
3341 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3343         PR middle-end/27416
3344         * libgomp.fortran/pr27416-1.f90: New test.
3346 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
3348         PR fortran/27395
3349         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3350         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3352 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3354         PR c++/26943
3355         * testsuite/libgomp.c/pr26943-1.c: New test.
3356         * testsuite/libgomp.c/pr26943-2.c: New test.
3357         * testsuite/libgomp.c/pr26943-3.c: New test.
3358         * testsuite/libgomp.c/pr26943-4.c: New test.
3359         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3360         * testsuite/libgomp.c++/pr26943.C: New test.
3362 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3364         PR middle-end/27337
3365         * testsuite/libgomp.c++/pr27337.C: New test.
3367 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3369         PR c/26171
3370         * testsuite/libgomp.c/pr26171.c: New test.
3372 2006-04-25  Richard Henderson  <rth@redhat.com>
3374         PR libgomp/25865
3375         * configure.ac: Use GCC_CHECK_TLS.
3376         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3377         * Makefile.in, aclocal.m4, configure: Regenerate.
3379 2006-04-10  Matthias Klose  <doko@debian.org>
3381         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3382         directory names containing underscores.
3384 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
3386         PR c++/26691
3387         * testsuite/libgomp.c++/pr26691.C: New test.
3389 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3391         * testsuite/libgomp.fortran/retval2.f90: New test.
3393 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3395         * testsuite/libgomp.c++: New directory.
3397 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
3399         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3400         * config/posix/sem.c: Implement the above.
3402 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
3404         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3405         define HAVE_BROKEN_POSIX_SEMAPHORES.
3406         * configure: Rebuilt.
3407         * config.h.in: Rebuilt.
3409 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3411         PR bootstrap/26161
3412         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3413         for the other pthread check.
3414         * configure: Regenerate.
3415         * config.h.in: Regenerate.
3417 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3419         PR libgomp/25938
3420         PR libgomp/25984
3421         * Makefile.am (fincludedir): New variable.
3422         (nodist_include_HEADERS): Remove Fortran files.
3423         (nodist_finclude_HEADERS): New variable.
3424         * Makefile.in: Regenerated.
3426 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3428         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3429         Remove tests for returning assumed character length arrays.
3431 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3432             John David Anglin  <dave@hiauly1.hia.nrc.ca>
3434         PR libgomp/25936
3435         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3437 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
3439         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3441 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3443         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3444         part of LD_LIBRARY_PATH manually.
3446 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3448         PR libgomp/25852
3449         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3450         libgomp_init.
3452 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3454         PR libgomp/25884
3455         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3456         * configure.ac (PERL): Don't set.
3457         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3458         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3459         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3460         * omp.h.in: Wrap the new configure substitutions with @ characters.
3461         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3462         * aclocal.m4, configure, Makefile.in: Regenerate.
3463         * mkomp_h.pl: Delete.
3465 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3467         PR libgomp/25259
3468         * configure.ac: Use GCC_HEADER_STDINT.
3469         * libgomp.h: Include gstdint.h.
3470         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3471         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3473 2006-01-24  Richard Henderson  <rth@redhat.com>
3475         PR libgomp/25942
3476         * configure.ac: Add AM_MAINTAINER_MODE.
3477         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3479 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
3481         * Makefile.in: Regenerate.
3482         * testsuite/Makefile.in: Regenerate.
3483         * aclocal.m4: Regenerate.
3485 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
3487         * config/posix/proc.c: Conditional include of sys/loadavg.h for
3488         Solaris.
3489         * configure.ac: Add check for loadavg.h.
3490         (link_gomp): Adjust comment.
3491         * configure: Regenerate.
3492         * config.h.in: Regenerate.
3494 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
3496         PR libgomp/25877
3497         * configure.ac: Remove check for alloca.h.
3498         * configure: Regenerate.
3499         * config.h.in: Regenerate.
3500         * libgomp.h: define gomp_alloca to be __builtin_alloca.
3501         * team.c: Remove use of alloca.h.
3502         Call gomp_alloca instead of alloca.
3504 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
3506         PR libgomp/25877
3507         * team.c: Add include of alloca.h.
3508         * configure.ac: Add check for alloca.h.
3509         * configure: Regenerate.
3510         * config.h.in: Regenerate.
3512 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3514         PR fortran/25219
3515         * testsuite/libgomp.fortran/pr25219.f90: New test.
3517 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
3519         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3520         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3521         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3522         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3523         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3524         testsuite/libgomp.fortran/threadprivate1.f90,
3525         testsuite/libgomp.fortran/threadprivate2.f90,
3526         testsuite/libgomp.fortran/threadprivate3.f90,
3527         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3528         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3529         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3530         effective-target to TLS runtime.
3532         * testsuite/libgomp.fortran/pr25162.f: Require
3533         effective-target TLS runtime.
3535 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3537         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3538         * testsuite/libgomp.c/nestedfn-3.c: New test.
3540 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3542         PR fortran/25162
3543         * testsuite/libgomp.fortran/pr25162.f: New test.
3545 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3547         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3548         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3550 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3552         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3553         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3554         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3555         single.c, team.c, work.c, config/linux/alpha/futex.h,
3556         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3557         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3558         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3559         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3560         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3561         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3562         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3563         FSF address.
3565 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3567         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3568         to nodist_noinst_HEADERS.
3569         * Makefile.in: Rebuilt.
3571         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3572         add integer count field.
3573         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3574         omp_nest_lock_t type change.
3575         (omp_init_nest_lock): Likewise.  Initialize count to 0.
3576         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3577         Increment count.
3578         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3579         Decrement count.
3580         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3581         Increment count if successful and return the new nesting level.
3582         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3583         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3584         * testsuite/libgomp.c/lib-1.c: New test.
3585         * testsuite/libgomp.fortran/lib1.f90: New test.
3586         * testsuite/libgomp.fortran/lib2.f: New test.
3587         * testsuite/libgomp.fortran/lib3.f: New test.
3589 2005-11-17  Richard Henderson  <rth@redhat.com>
3591         PR 24845
3592         * Makefile.am (nodist_toolexeclib_HEADERS): New.
3593         * configure.ac (link_gomp): New.  Substitute it.
3594         (AC_CONFIG_FILES): Add libgomp.spec.
3595         * libgomp.spec.in: New file.
3596         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3597         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3599 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3601         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3602         reduction(-:var) behaving the same as reduction(+:var).
3603         * testsuite/libgomp.c/reduction-4.c: New test.
3605 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
3607         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3608         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3609         testsuite/libgomp.c/copyin-3.c,
3610         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3611         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3612         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3613         testsuite/libgomp.c++/pr24455.C,
3614         testsuite/libgomp.fortran/threadprivate1.f90,
3615         testsuite/libgomp.fortran/threadprivate2.f90,
3616         testsuite/libgomp.fortran/threadprivate3.f90,
3617         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3618         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3619         testsuite/libgomp.fortran/omp_parse3.f90: Require
3620         effective-target TLS.
3622 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3624         * HEADER: Remove.
3626 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
3628         PR libgomp/24797
3629         * team.c (initialize_team): Pass NULL rather than free as
3630         pthread_key_create destructor.  Initialize thread specific data
3631         pointer in initial thread to a static local variable rather than
3632         malloced memory.
3634 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
3636         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3637         its location to ld_library_path.
3639 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3641         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3643 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3645         * testsuite/libgomp.c: Rename from libgomp.dg.
3647 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
3649         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3650         threadprivate variable 'i'.
3652 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3654         * config/linux/s390/futex.h: New file.
3655         * configure.tgt: Use it.
3657         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3658         before the parallel.
3660 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3662         PR c++/24734
3663         * testsuite/libgomp.c++/master-1.C: New test.
3665 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3667         * testsuite/libgomp.dg/copyin-3.c: New test.
3669 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3671         * testsuite/libgomp.fortran/retval1.f90: New test.
3672         * testsuite/libgomp.fortran/vla7.f90: New test.
3674 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
3676         * testsuite/libgomp.fortran/vla2.f90: New test.
3677         * testsuite/libgomp.fortran/vla3.f90: New test.
3678         * testsuite/libgomp.fortran/vla4.f90: New test.
3679         * testsuite/libgomp.fortran/vla5.f90: New test.
3680         * testsuite/libgomp.fortran/vla6.f90: New test.
3682 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
3684         * config/linux/sparc/futex.h: New file.
3685         * configure.tgt: Use it.
3686         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3688         * critical.c: Include stdlib.h.
3689         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3690         ignoring return value.
3691         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3692         LIBGOMP_CHECK_SYNC_BUILTINS check.
3693         * configure: Rebuilt.
3695 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3697         * testsuite/libgomp.fortran/vla1.f90: New test.
3699 2005-10-31  Richard Henderson  <rth@redhat.com>
3701         * testsuite/libgomp.fortran/character2.f90: Fix race condition
3702         setting 's' in different threads.
3704 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3706         * libgomp.h (attribute_hidden, ialias): Define.
3707         * config/posix/proc.c (omp_get_num_procs): Add ialias.
3708         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3709         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3710         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3711         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3712         omp_test_lock, omp_test_nest_lock): Likewise.
3713         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3714         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3715         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3716         omp_test_lock, omp_test_nest_lock): Likewise.
3717         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3718         omp_get_dynamic, omp_get_nested): Likewise.
3719         * parallel.c (omp_get_num_threads, omp_get_max_threads,
3720         omp_get_thread_num, omp_in_parallel): Likewise.
3721         * fortran.c (ialias_redirect): Define.
3722         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3723         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3724         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3725         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3726         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3727         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3728         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3729         omp_get_wtime): Add ialias_redirect.
3731 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
3733         * fortran.c: Include stdlib.h.
3735 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
3737         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3738         * Makefile.in: Regenerated.
3740 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
3742         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3743         * libgomp_f.h.in (omp_check_defines): New function.
3744         * env.c: Include libgomp_f.h.
3745         (initialize_env): Call omp_check_defines.
3747         * testsuite/libgomp.dg/copyin-2.c: New test.
3748         * testsuite/libgomp.c++/copyin-2.C: New test.
3749         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3751         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3752         * testsuite/libgomp.fortran/sharing2.f90: New test.
3754         * testsuite/libgomp.dg/copyin-1.c: New test.
3755         * testsuite/libgomp.c++/copyin-1.C: New test.
3757 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
3759         * testsuite/libgomp.fortran/crayptr1.f90: New test.
3761         * testsuite/libgomp.fortran/workshare1.f90: New test.
3763         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3764         only test.
3765         * libgomp.fortran/sharing1.f90: New test.
3767 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
3769         PR c++/24502
3770         * testsuite/libgomp.c++/loop-7.C: New test.
3772         * testsuite/libgomp.dg/nestedfn-2.c: New test.
3774         * testsuite/libgomp.dg/nestedfn-1.c: New test.
3775         * testsuite/libgomp.fortran/reduction6.f90: New test.
3776         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3778 2005-10-23  Richard Henderson  <rth@redhat.com>
3780         * testsuite/libgomp.c++/ctor-1.C: New.
3781         * testsuite/libgomp.c++/ctor-2.C: New.
3782         * testsuite/libgomp.c++/ctor-3.C: New.
3783         * testsuite/libgomp.c++/ctor-4.C: New.
3784         * testsuite/libgomp.c++/ctor-5.C: New.
3785         * testsuite/libgomp.c++/ctor-6.C: New.
3786         * testsuite/libgomp.c++/ctor-7.C: New.
3787         * testsuite/libgomp.c++/ctor-8.C: New.
3788         * testsuite/libgomp.c++/ctor-9.C: New.
3790 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
3792         PR 24455
3793         * testsuite/libgomp.c++/pr24455-1.C: New test.
3794         * testsuite/libgomp.c++/pr24455.C: New test.
3795         * testsuite/libgomp.dg/pr24455-1.c: New test.
3796         * testsuite/libgomp.dg/pr24455.c: New test.
3798 2005-10-20  Richard Henderson  <rth@redhat.com>
3800         * testsuite/libgomp.c++/loop-6.C: New.
3801         * testsuite/libgomp.dg/loop-3.c: New.
3803 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
3805         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3806         explicitly private.
3807         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3808         explicitly shared.
3810 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
3812         * testsuite/libgomp.fortran/jacobi.f: New test.
3814 2005-10-19  Richard Henderson  <rth@redhat.com>
3816         * configure.tgt (i?86-linux): Default to with_arch instead of
3817         CFLAGS.  Add -mtune to match target_cpu.
3818         (x86_64-linux): Tune to i686.
3820         * fortran.c (omp_test_nest_lock_): Fix typo.
3822 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
3824         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3825         gomp_ordered_sync): Do nothing if team->nthreads == 1.
3826         * testsuite/libgomp.dg/ordered-3.c: New test.
3828         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3829         Remove volatile keyword.
3831         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3832         in COMMON block to avoid warnings on 64-bit targets.
3834 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
3836         * testsuite/libgomp.dg/shared-3.c: New test.
3838 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3840         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3841         * testsuite/libgomp.fortran/reduction5.f90: New test.
3843 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3845         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3846         dg-options.
3847         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
3848         flush loop now that __sync_synchronize has proper memory barrier.
3849         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3850         Add -ffixed-form to dg-options.
3852 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3854         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3855         from subdirectories.
3856         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3857         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3858         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3859         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3860         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3861         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3862         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3863         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3864         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3865         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3866         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3867         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3868         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3869         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3870         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3871         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3872         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3873         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3874         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3875         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3876         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3877         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3878         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3879         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3880         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3882 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
3884         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3885         lang_library_path exists.  Use find instead of glob to gather tests.
3886         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3888 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3890         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3891         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3892         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3893         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3894         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3895         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3896         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3897         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3898         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3899         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3900         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3901         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3902         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3904 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
3906         * testsuite/libgomp.dg/vla-1.c: New test.
3908         * testsuite/libgomp.fortran/reference2.f90: New test.
3910         * testsuite/libgomp.fortran/character2.f90: Remove explicit
3911         declaration of omp_get_thread_num.
3912         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
3913         use omp_lib.
3915         * testsuite/libgomp.fortran/reduction1.f90: New test.
3916         * testsuite/libgomp.fortran/reduction2.f90: New test.
3917         * testsuite/libgomp.fortran/reduction3.f90: New test.
3918         * testsuite/libgomp.fortran/reduction4.f90: New test.
3920 2005-10-13  Richard Henderson  <rth@redhat.com>
3922         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3923         * Makefile.in: Regenerate.
3924         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3925         * libgomp.h: Include bar.h.
3926         (struct gomp_barrier): Remove.
3927         (struct gomp_team): Add barrier.  Replace master_barrier with
3928         master_release.  Replace threads with ordered_release.
3929         (struct gomp_thread): Replace barrier with release.
3930         * ordered.c (gomp_ordered_first): Update for ordered_release change.
3931         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3932         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3933         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3934         (GOMP_single_copy_end): Likewise.
3935         * team.c (gomp_threads_dock): New.
3936         (gomp_barrier_init, gomp_barrier_destroy): Remove.
3937         (gomp_thread_start): Use gomp_barrier_wait.
3938         (new_team, free_team): Update for gomp_team changes.
3939         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3940         (gomp_team_end): Use gomp_barrier_wait.
3941         (initialize_team): Update for gomp_thread changes.
3942         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3943         (gomp_work_share_end_nowait): Use atomic ops when available.
3944         * config/linux/bar.c, config/linux/bar.h: New files.
3945         * config/posix/bar.c, config/posix/bar.h: New files.
3947 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
3949         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3950         * testsuite/libgomp.dg/single-2.c: New test.
3952         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3953         lang_link_flags): Unset, so that they aren't inherited from previously
3954         sourced *.exp.
3956         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3958 2005-10-12  Richard Henderson  <rth@redhat.com>
3960         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3961         (libgomp_init): Use lang_test_file, lang_library_path, and
3962         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
3964         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3965         (lang_test_file, lang_link_flags): New.
3966         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3968         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3969         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3970         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3971         testsuite/libgomp.c++/parallel-1.C,
3972         testsuite/libgomp.c++/reduction-1.C,
3973         testsuite/libgomp.c++/reduction-2.C,
3974         testsuite/libgomp.c++/reduction-3.C,
3975         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3976         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3977         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3978         New files, largely cribbed from the C testsuite.
3980 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
3982         * testsuite/libgomp.fortran/character1.f90: New test.
3983         * testsuite/libgomp.fortran/character2.f90: New test.
3985         * testsuite/libgomp.dg/nested-1.c: New test.
3986         * testsuite/libgomp.dg/nested-2.c: New test.
3987         * testsuite/libgomp.fortran/do1.f90: New test.
3988         * testsuite/libgomp.fortran/do2.f90: New test.
3990         * testsuite/libgomp.fortran/reference1.f90: New test.
3992 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3994         * testsuite/libgomp.dg/reduction-1.c: New test.
3995         * testsuite/libgomp.dg/reduction-2.c: New test.
3996         * testsuite/libgomp.dg/reduction-3.c: New test.
3998 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
4000         * testsuite/libgomp.dg/atomic-1.c: New test.
4001         * testsuite/libgomp.dg/atomic-2.c: New test.
4003 2005-10-09  Richard Henderson  <rth@redhat.com>
4005         * critical.c (atomic_lock): New.
4006         (initialize_critical): Initialize it.
4007         (GOMP_atomic_start, GOMP_atomic_end): New.
4008         * libgomp.map: Export them.
4009         * libgomp_g.h: Declare them.
4011         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
4013 2005-10-02  Richard Henderson  <rth@redhat.com>
4015         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
4016         to XCFLAGS instead of CFLAGS.
4018 2005-09-30  Richard Henderson  <rth@redhat.com>
4020         * configure.ac: Determine whether -pthread or -lpthread is needed.
4021         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
4022         * Makefine.in, configure: Rebuild.
4024 2005-09-28  Richard Henderson  <rth@redhat.com>
4026         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
4027         * testsuite/libgomp.dg/omp-single-3.c: New test.
4029 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
4031         * testsuite/libgomp.dg/omp-single-2.c: New test.
4032         * testsuite/libgomp.dg/shared-2.c: Fix return code.
4034 2005-09-27  Richard Henderson  <rth@redhat.com>
4036         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
4037         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
4039 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
4041         * testsuite/libgomp.dg/omp-loop03.c: New test.
4043 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4045         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
4047 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4049         * testsuite/libgomp.dg/omp-single-1.c: New test.
4050         * testsuite/libgomp.dg/shared-1.c: Return 0.
4051         Add prototype for abort.
4052         * testsuite/libgomp.dg/shared-2.c: Likewise.
4054 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
4056         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
4057         constructs.
4059 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
4061         * testsuite/libgomp.dg/shared-1.c: New test.
4062         * testsuite/libgomp.dg/shared-2.c: New test.
4064 2005-09-24  Richard Henderson  <rth@redhat.com>
4066         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
4068 2005-09-24  Richard Henderson  <rth@redhat.com>
4070         * iter.c (gomp_iter_static_next): Round up when computing number
4071         of iterations.  Don't bother distributing a remainder equally.
4073         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
4074         Don't call srand.  Zero b before testing.
4075         (main): New.
4077 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
4079         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
4080         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
4082 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
4084         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
4085         without !$omp end do, followed immediately by subroutine end.
4087 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
4089         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
4091 2005-09-22  Richard Henderson  <rth@redhat.com>
4093         * critical.c (GOMP_critical_name_start): Change argument to void**.
4094         Reuse the pointer space if the mutex fits.
4095         (GOMP_critical_name_end): Likewise.
4096         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
4097         * libgomp_g.h (GOMP_critical_name_start): Update decl.
4098         (GOMP_critical_name_end): Likewise.
4099         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
4100         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
4102 2005-09-20  Richard Henderson  <rth@redhat.com>
4104         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
4105         (create_lock_lock): New.
4106         (initialize_critical): Initialize it.
4107         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
4108         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
4110 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
4112         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
4114 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
4116         * testsuite/libgomp.dg/omp-loop01.c: New test.
4117         * testsuite/libgomp.dg/omp-loop02.c: New test.
4119 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
4121         * configure.ac (AC_PROG_FC): Add.
4122         (USE_FORTRAN): New automake conditional.
4123         * configure: Rebuilt.
4124         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
4125         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
4126         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
4127         Add rules to build them.
4128         * Makefile.in: Rebuilt.
4129         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
4130         OMP_NEST_LOCK_KIND.
4131         * libgomp.map: Add Fortran wrappers.
4132         * libgomp_f.h.in: New file.
4133         * omp_lib.h.in: New file.
4134         * omp_lib.f90.in: New file.
4135         * fortran.c: New file.
4136         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
4137         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
4138         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
4139         libgfortran has been built.
4140         * testsuite/libgomp.fortran/fortran.exp: New file.
4141         * testsuite/libgomp.fortran/omp_cond1.f: New test.
4142         * testsuite/libgomp.fortran/omp_cond2.f: New test.
4143         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
4144         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
4145         * testsuite/libgomp.fortran/omp_hello.f: New test.
4146         * testsuite/libgomp.fortran/omp_orphan.f: New test.
4147         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
4148         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
4149         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
4150         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
4151         * testsuite/libgomp.fortran/omp_reduction.f: New test.
4152         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
4153         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
4155 2005-08-30  Richard Henderson  <rth@redhat.com>
4157         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
4158         function for when aliases are not usable.
4159         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
4160         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4161         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
4162         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
4163         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
4164         GOMP_loop_ordered_guided_next): Likewise.
4165         * ordered.c (GOMP_ordered_start): Likewise.
4167 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
4169         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
4170         * testsuite/libgomp.dg/omp_hello.c: Fix return code
4171         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
4172         * testsuite/libgomp.dg/omp_orphan.c: Likewise
4173         * testsuite/libgomp.dg/omp_reduction.c: Likewise
4174         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
4175         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
4176         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
4177         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
4179 2005-07-07  Eric Christopher  <echristo@redhat.com>
4180             Diego Novillo  <dnovillo@redhat.com>
4182         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
4183         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
4184         up code.
4185         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
4186         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
4187         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
4188         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
4189         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
4190         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
4191         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
4193 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
4195         * TOPLEVEL.patch: Remove.
4197 2005-05-16  Richard Henderson  <rth@redhat.com>
4199         * configure.ac: Test for clock_gettime.
4200         * config.h.in, configure: Rebuild.
4201         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
4202         (omp_get_wtime): Use clock_gettime if available.
4203         (omp_get_wtick): Use clock_getres if available.
4205 2005-05-11  Richard Henderson  <rth@redhat.com>
4207         * config/linux/ia64/futex.h: New file.
4208         * configure.tgt: Use it.
4210         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
4212 2005-05-07  Richard Henderson  <rth@redhat.com>
4214         * config/linux/powerpc/futex.h: New file.
4215         * configure.tgt: Use it.
4217         * config/linux/i486/futex.h: Merge ...
4218         * config/linux/x86_64/futex.h: ... into ...
4219         * config/linux/x86/futex.h: ... here.
4220         * configure.tgt: Update to match.
4222 2005-05-06  Richard Henderson  <rth@redhat.com>
4224         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
4225         * config/linux/i486/futex.h: Likewise.
4226         * config/linux/x86_64/futex.h: Likewise.
4228         * config/linux/lock.c: New file.
4229         * config/linux/omp-lock.h: New file.
4231         * critical.c, env.h: Don't include omp.h
4232         * config/posix/lock.c: Include libgomp.h instead of omp.h.
4233         * config/posix/time.c: Likewise.
4234         * config/posix/omp-lock.h: New file.
4235         * libgomp.h: Include omp-lock.h and omp.h.
4236         * Makefile.am (nodist_include_HEADERS): New.
4237         (omp.h): New rule.
4238         * configure.ac (PERL): New.
4239         * mkomp_h.pl: New file.
4240         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
4241         with templates.
4242         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
4244         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
4245         build directory.  Re-add -march=i486 hack.
4247         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
4248         (libgomp_link_flags): Remove.
4249         (libgomp_initialized): Remove.
4250         (libgomp_init): Don't protect from reinitialization.  Copy code
4251         from libstdc++ for getting the multilib set correctly.
4253 2005-05-05  Richard Henderson  <rth@redhat.com>
4255         * config/linux/alpha/futex.h: New file.
4256         * configure.tgt (alpha*-*-linux*): Use it.
4258         * config/posix/mutex.c: New file.
4259         * config/posix/sem.c: Use libgomp.h.
4261         * configure.tgt (x86_64-linux): Also test CC for -m32.
4262         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
4264         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
4265         after $gccpath.
4267         * Makefile.am (SUBDIRS): New.
4268         (libgomp_la_LDFLAGS): Add -lpthread.
4269         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
4270         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
4272         * libgomp_g.h: New file.
4273         * libgomp.h: Split out all public declarations to libgomp_g.h.
4274         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
4275         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
4276         * config/linux/sem.h: Likewise.
4277         * config/posix/sem.h: Likewise.
4279         * Makefile.am (AM_LDFLAGS): New.
4280         (libgomp_version_script): Split out from ...
4281         (libgomp_la_LDFLAGS): ... here.
4282         (libgomp_version_info): New.
4283         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
4284         (LIBGOMP_ENABLE): New.
4285         (LIBGOMP_CHECK_LINKER_FEATURES): New.
4286         (LIBGOMP_ENABLE_SYMVERS): New.
4287         * configure.ac (AC_INIT): Version 1.0.
4288         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
4289         (enable-linux-futex): Likewise.  Rename from enable-futex.
4290         (libtool_VERSION): New.
4291         (LIBGOMP_ENABLE_SYMVERS): Use it.
4292         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
4293         * Makefile.in, aclocal.m4, configure: Rebuild.
4295         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
4296         (gomp_mutex_unlock_slow): Fix typo.
4297         * config/linux/sem.c: Similarly.
4298         (gomp_sem_post_slow): Fix typo.
4299         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
4300         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
4301         [__PIC__] (sys_futex0): Don't use tmp output in asm.
4303         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
4304         (libgomp_la_LDFLAGS): Add top_srcdir to path.
4305         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
4306         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
4307         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
4308         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
4309         LDFLAGS.  Pull enable_futex check to top-level.
4310         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
4311         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
4313         First attempt at real configury.
4314         * Makefile, config.h: Remove file.
4315         * Makefile.am, Makefile.in: New file.
4316         * acinclude.m4 aclocal.m4: New file.
4317         * configure.ac, configure.tgt, configure: New file.
4319         * config/posix/lock.c: Rename from sys-lock.c.
4320         * config/posix/mutex.h: Rename from sys-mutex.h.
4321         * config/posix/sem.c: Rename from sys-sem.c.
4322         * config/posix/sem.h: Rename from sys-sem.h.
4323         * config/posix/proc.c: Rename from sys-proc.c.
4324         * config/posix/time.c: Rename from sys-proc.c.
4326         * config/linux/mutex.c: New file.
4327         * config/linux/mutex.h: New file.
4328         * config/linux/sem.c: New file.
4329         * config/linux/sem.h: New file.
4330         * config/linux/i486/futex.h: New file.
4331         * config/linux/x86_64/futex.h: New file.
4333 2005-05-04  Richard Henderson  <rth@redhat.com>
4335         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4336         * libgomp.h: Declare them.
4337         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4338         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4340 2005-05-04  Richard Henderson  <rth@redhat.com>
4342         * libgomp-1 code drop
4344 2005-05-04  Richard Henderson  <rth@redhat.com>
4346         * iter.c (gomp_iter_static_next): Return tri-state on 0.
4347         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4348         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4349         (gomp_iter_static_next): Update.
4350         (gomp_ordered_static_next): Update.
4351         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4352         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
4353         totally empty range.
4354         (gomp_loop_ordered_static_next): Refine test for calling
4355         gomp_ordered_static_next.
4356         * testsuite/ordered-1.c: Add case for more threads than iterations.
4358         * iter.c (gomp_iter_runtime_next_locked): Remove.
4359         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4360         gomp_loop_guided_start, gomp_loop_ordered_static_start,
4361         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4362         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4363         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4364         gomp_loop_ordered_guided_next): Downcase name, make static, add
4365         an external alias with the old name.
4366         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4367         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4368         switch and call one of the above static functions.
4369         * libgomp.h: Update.
4371         * work.c (gomp_work_share_start): Lock the mutex for !first too.
4372         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4373         GOMP_loop_guided_start, GOMP_loop_runtime_start,
4374         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4375         GOMP_loop_ordered_guided_start): Update to match.
4376         * sections.c (GOMP_sections_start): Likewise.
4377         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4379         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4380         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4381         Use bounds check instead of modulus.
4382         (gomp_ordered_sync): Split out of GOMP_ordered_start.
4383         (gomp_ordered_last): Don't sync with ordered_owner here.
4384         (gomp_ordered_next): Likewise.
4385         (gomp_ordered_static_loop_next): Likewise.
4386         * loop.c, libgomp.h: Update to match.
4388         * libgomp.h (GOMP_barrier): Declare.
4390         * testsuite/barrier-1.c: New file.
4391         * testsuite/critical-1.c: New file.
4392         * testsuite/ordered-2.c: New file.
4393         * testsuite/ordered-1.c: New file.
4394         * testsuite/sections-1.c: New file.
4395         * testsuite/single-1.c: New file.
4396         * testsuite/Makefile (TESTS): Add them.
4398 2005-05-04  Richard Henderson  <rth@redhat.com>
4400         * libgomp.h (struct gomp_work_share): Add ordered_owner.
4401         * loop.c (GOMP_loop_static_start): If not the startup thread,
4402         acquire the mutex to wait for initialization complete.
4403         (GOMP_loop_ordered_static_start): Likewise.
4404         (GOMP_loop_ordered_runtime_start): Likewise.
4405         (GOMP_loop_ordered_static_first): Remove.
4406         (GOMP_loop_ordered_dynamic_first): Remove.
4407         (GOMP_loop_ordered_guided_first): Remove.
4408         (GOMP_loop_ordered_runtime_first): Remove.
4409         * ordered.c (gomp_ordered_loop_first): Post to own release when
4410         we're the first thread.
4411         (gomp_ordered_loop_last): Wait on release if not owner.
4412         (gomp_ordered_loop_next): Likewise.
4413         (gomp_ordered_static_loop_init): New.
4414         (gomp_ordered_static_loop_next): Use ordered_owner.
4415         (GOMP_ordered_start): Likewise.
4416         * work.c (gomp_new_work_share): Initialize ordered_owner.
4418 2005-05-03  Richard Henderson  <rth@redhat.com>
4420         * Makefile (OPT): New.
4421         (CFLAGS): Use it.
4423         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4424         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4425         * libgomp.h, libgomp.map, NOTES: Update to match.
4427         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4428         Add initialized and thr members.
4429         (gomp_thread_start): Pause when initially spawned to wait for
4430         the whole team to be created.
4431         (gomp_team_start): Release team members at the end.
4433         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
4434         (f_foo_1): Use GOMP_loop_end.
4435         (f_foo_2): Use GOMP_loop_end_nowait.
4437         * testsuite/loop-2.c: New file.
4438         * testsuite/Makefile (TESTS): Add it.
4440 2005-05-03  Richard Henderson  <rth@redhat.com>
4442         * iter.c (gomp_iter_static_next): Fix overflow check typo.
4443         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4444         * team.c (new_team): Initialize oldest_live_gen to 1 if no
4445         initial work_share.
4447         * testsuite/Makefile: New file.
4448         * testsuite/loop-1.c: New file.
4450 2005-05-03  Richard Henderson  <rth@redhat.com>
4452         Initial implementation and checkin.