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