* fixincl.c (fix_applies) <case TT_CKSUM:>: Change C++ style comments.
[official-gcc.git] / libgomp / ChangeLog
blob7e7c36ba55b632bd89a9d0a3b055baf9dd40f27e
1 2015-01-28  Jack Howarth  <howarth.at.gcc@gmail.com>
3         PR libgomp/64635
4         * configure.tgt (*-*-aix*): Use config_path "aix posix".
5         (*-*-darwin*): Use config_path "bsd darwin posix".
6         (*-*-hpux*): Use config_path "hpux posix".
7         * target.c: Add include of plugin-suffix.h and use
8         SONAME_SUFFIX macro.
9         * config/aix/plugin-suffix.h: New file.
10         * config/darwin/plugin-suffix.h: New file.
11         * config/hpux/plugin-suffix.h: New file.
12         * config/posix/plugin-suffix.h: New file.
14 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
16         PR middle-end/64734
17         * libgomp.c/pr64734.c: New test.
19 2015-01-23  Tom de Vries  <tom@codesourcery.com>
21         PR libgomp/64672
22         * testsuite/libgomp.oacc-c-c++-common/abort-5.c: New test.
24 2015-01-23  Tom de Vries  <tom@codesourcery.com>
26         PR libgomp/64707
27         * testsuite/libgomp.c/target-9.c: Add -ftree-parallelize-loops=0 to
28         dg-options.
30 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
32         PR libgomp/64625
33         * libgomp_g.h (GOACC_data_start, GOACC_enter_exit_data)
34         (GOACC_parallel, GOACC_update): Remove const_void *offload_table
35         formal parameter.  Update all users.
36         * target.c (GOMP_target, GOMP_target_data, GOMP_target_update):
37         Document unused formal parameter.
39 2015-01-16  Thomas Schwinge  <thomas@codesourcery.com>
41         * oacc-parallel.c: Don't include <alloca.h>.
42         (GOACC_parallel): Use gomp_alloca instead of alloca.
44 2015-01-16  Gerald Pfeifer  <gerald@pfeifer.com>
46         * target.c (num_devices): Guard with PLUGIN_SUPPORT.
48 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
49             James Norris  <jnorris@codesourcery.com>
50             Tom de Vries  <tom@codesourcery.com>
51             Julian Brown  <julian@codesourcery.com>
52             Cesar Philippidis  <cesar@codesourcery.com>
53             Nathan Sidwell  <nathan@codesourcery.com>
54             Tobias Burnus  <burnus@net-b.de>
56         * Makefile.am (search_path): Add $(top_srcdir)/../include.
57         (libgomp_la_SOURCES): Add splay-tree.c, libgomp-plugin.c,
58         oacc-parallel.c, oacc-host.c, oacc-init.c, oacc-mem.c,
59         oacc-async.c, oacc-plugin.c, oacc-cuda.c.
60         [USE_FORTRAN] (libgomp_la_SOURCES): Add openacc.f90.
61         Include $(top_srcdir)/plugin/Makefrag.am.
62         (nodist_libsubinclude_HEADERS): Add openacc.h.
63         [USE_FORTRAN] (nodist_finclude_HEADERS): Add openacc_lib.h,
64         openacc.f90, openacc.mod, openacc_kinds.mod.
65         (omp_lib.mod): Generalize into...
66         (%.mod): ... this new rule.
67         (openacc_kinds.mod, openacc.mod): New rules.
68         * plugin/configfrag.ac: New file.
69         * configure.ac: Move plugin/offloading support into it.  Include
70         it.  Instantiate testsuite/libgomp-test-support.pt.exp.
71         * plugin/Makefrag.am: New file.
72         * testsuite/Makefile.am (OFFLOAD_TARGETS)
73         (OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS): Don't
74         export.
75         (libgomp-test-support.exp): New rule.
76         (all-local): Depend on it.
77         * Makefile.in: Regenerate.
78         * testsuite/Makefile.in: Regenerate.
79         * config.h.in: Likewise.
80         * configure: Likewise.
81         * configure.tgt: Harden shell syntax.
82         * env.c: Include "oacc-int.h".
83         (parse_acc_device_type): New function.
84         (gomp_debug_var, goacc_device_type, goacc_device_num): New
85         variables.
86         (initialize_env): Initialize those.  Call
87         goacc_runtime_initialize.
88         * error.c (gomp_vdebug, gomp_debug, gomp_vfatal): New functions.
89         (gomp_fatal): Call gomp_vfatal.
90         * libgomp.h: Include "libgomp-plugin.h" and <stdarg.h>.
91         (gomp_debug_var, goacc_device_type, goacc_device_num, gomp_vdebug)
92         (gomp_debug, gomp_verror, gomp_vfatal, gomp_init_targets_once)
93         (splay_tree_node, splay_tree, splay_tree_key)
94         (struct target_mem_desc, struct splay_tree_key_s)
95         (struct gomp_memory_mapping, struct acc_dispatch_t)
96         (struct gomp_device_descr, gomp_acc_insert_pointer)
97         (gomp_acc_remove_pointer, target_mem_desc, gomp_copy_from_async)
98         (gomp_unmap_vars, gomp_init_device, gomp_init_tables)
99         (gomp_free_memmap, gomp_fini_device): New declarations.
100         (gomp_vdebug, gomp_debug): New macros.
101         Include "splay-tree.h".
102         * libgomp.map (OACC_2.0): New symbol version.  Use for
103         acc_get_num_devices, acc_get_num_devices_h_, acc_set_device_type,
104         acc_set_device_type_h_, acc_get_device_type,
105         acc_get_device_type_h_, acc_set_device_num, acc_set_device_num_h_,
106         acc_get_device_num, acc_get_device_num_h_, acc_async_test,
107         acc_async_test_h_, acc_async_test_all, acc_async_test_all_h_,
108         acc_wait, acc_wait_h_, acc_wait_async, acc_wait_async_h_,
109         acc_wait_all, acc_wait_all_h_, acc_wait_all_async,
110         acc_wait_all_async_h_, acc_init, acc_init_h_, acc_shutdown,
111         acc_shutdown_h_, acc_on_device, acc_on_device_h_, acc_malloc,
112         acc_free, acc_copyin, acc_copyin_32_h_, acc_copyin_64_h_,
113         acc_copyin_array_h_, acc_present_or_copyin,
114         acc_present_or_copyin_32_h_, acc_present_or_copyin_64_h_,
115         acc_present_or_copyin_array_h_, acc_create, acc_create_32_h_,
116         acc_create_64_h_, acc_create_array_h_, acc_present_or_create,
117         acc_present_or_create_32_h_, acc_present_or_create_64_h_,
118         acc_present_or_create_array_h_, acc_copyout, acc_copyout_32_h_,
119         acc_copyout_64_h_, acc_copyout_array_h_, acc_delete,
120         acc_delete_32_h_, acc_delete_64_h_, acc_delete_array_h_,
121         acc_update_device, acc_update_device_32_h_,
122         acc_update_device_64_h_, acc_update_device_array_h_,
123         acc_update_self, acc_update_self_32_h_, acc_update_self_64_h_,
124         acc_update_self_array_h_, acc_map_data, acc_unmap_data,
125         acc_deviceptr, acc_hostptr, acc_is_present, acc_is_present_32_h_,
126         acc_is_present_64_h_, acc_is_present_array_h_,
127         acc_memcpy_to_device, acc_memcpy_from_device,
128         acc_get_current_cuda_device, acc_get_current_cuda_context,
129         acc_get_cuda_stream, acc_set_cuda_stream.
130         (GOACC_2.0): New symbol version.  Use for GOACC_data_end,
131         GOACC_data_start, GOACC_enter_exit_data, GOACC_parallel,
132         GOACC_update, GOACC_wait, GOACC_get_thread_num,
133         GOACC_get_num_threads.
134         (GOMP_PLUGIN_1.0): New symbol version.  Use for
135         GOMP_PLUGIN_malloc, GOMP_PLUGIN_malloc_cleared,
136         GOMP_PLUGIN_realloc, GOMP_PLUGIN_debug, GOMP_PLUGIN_error,
137         GOMP_PLUGIN_fatal, GOMP_PLUGIN_async_unmap_vars,
138         GOMP_PLUGIN_acc_thread.
139         * libgomp.texi: Update for OpenACC changes, and GOMP_DEBUG
140         environment variable.
141         * libgomp_g.h (GOACC_data_start, GOACC_data_end)
142         (GOACC_enter_exit_data, GOACC_parallel, GOACC_update, GOACC_wait)
143         (GOACC_get_num_threads, GOACC_get_thread_num): New declarations.
144         * splay-tree.h (splay_tree_lookup, splay_tree_insert)
145         (splay_tree_remove): New declarations.
146         (rotate_left, rotate_right, splay_tree_splay, splay_tree_insert)
147         (splay_tree_remove, splay_tree_lookup): Move into...
148         * splay-tree.c: ... this new file.
149         * target.c: Include "oacc-plugin.h", "oacc-int.h", <assert.h>.
150         (splay_tree_node, splay_tree, splay_tree_key)
151         (struct target_mem_desc, struct splay_tree_key_s)
152         (struct gomp_device_descr): Don't declare.
153         (num_devices_openmp): New variable.
154         (gomp_get_num_devices ): Use it.
155         (gomp_init_targets_once): New function.
156         (gomp_get_num_devices ): Use it.
157         (get_kind, gomp_copy_from_async, gomp_free_memmap)
158         (gomp_fini_device, gomp_register_image_for_device): New functions.
159         (gomp_map_vars): Add devaddrs parameter.
160         (gomp_update): Add mm parameter.
161         (gomp_init_device): Move most of it into...
162         (gomp_init_tables): ... this new function.
163         (gomp_register_images_for_device): Remove function.
164         (splay_compare, gomp_map_vars, gomp_unmap_vars, gomp_init_device):
165         Make them hidden instead of static.
166         (gomp_map_vars_existing, gomp_map_vars, gomp_unmap_vars)
167         (gomp_update, gomp_init_device, GOMP_target, GOMP_target_data)
168         (GOMP_target_end_data, GOMP_target_update)
169         (gomp_load_plugin_for_device, gomp_target_init): Update for
170         OpenACC changes.
171         * oacc-async.c: New file.
172         * oacc-cuda.c: Likewise.
173         * oacc-host.c: Likewise.
174         * oacc-init.c: Likewise.
175         * oacc-int.h: Likewise.
176         * oacc-mem.c: Likewise.
177         * oacc-parallel.c: Likewise.
178         * oacc-plugin.c: Likewise.
179         * oacc-plugin.h: Likewise.
180         * oacc-ptx.h: Likewise.
181         * openacc.f90: Likewise.
182         * openacc.h: Likewise.
183         * openacc_lib.h: Likewise.
184         * plugin/plugin-host.c: Likewise.
185         * plugin/plugin-nvptx.c: Likewise.
186         * libgomp-plugin.c: Likewise.
187         * libgomp-plugin.h: Likewise.
188         * libgomp_target.h: Remove file after merging content into the
189         former file.  Update all users.
190         * testsuite/lib/libgomp.exp: Load libgomp-test-support.exp.
191         (offload_targets_s, offload_targets_s_openacc): New variables.
192         (check_effective_target_openacc_nvidia_accel_present)
193         (check_effective_target_openacc_nvidia_accel_selected): New
194         procedures.
195         (libgomp_init): Update for OpenACC changes.
196         * testsuite/libgomp-test-support.exp.in: New file.
197         * testsuite/libgomp.oacc-c++/c++.exp: Likewise.
198         * testsuite/libgomp.oacc-c/c.exp: Likewise.
199         * testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
200         * testsuite/libgomp.oacc-c-c++-common/abort-1.c: Likewise.
201         * testsuite/libgomp.oacc-c-c++-common/abort-2.c: Likewise.
202         * testsuite/libgomp.oacc-c-c++-common/abort-3.c: Likewise.
203         * testsuite/libgomp.oacc-c-c++-common/abort-4.c: Likewise.
204         * testsuite/libgomp.oacc-c-c++-common/acc_on_device-1.c: Likewise.
205         * testsuite/libgomp.oacc-c-c++-common/asyncwait-1.c: Likewise.
206         * testsuite/libgomp.oacc-c-c++-common/cache-1.c: Likewise.
207         * testsuite/libgomp.oacc-c-c++-common/clauses-1.c: Likewise.
208         * testsuite/libgomp.oacc-c-c++-common/clauses-2.c: Likewise.
209         * testsuite/libgomp.oacc-c-c++-common/collapse-1.c: Likewise.
210         * testsuite/libgomp.oacc-c-c++-common/collapse-2.c: Likewise.
211         * testsuite/libgomp.oacc-c-c++-common/collapse-3.c: Likewise.
212         * testsuite/libgomp.oacc-c-c++-common/collapse-4.c: Likewise.
213         * testsuite/libgomp.oacc-c-c++-common/context-1.c: Likewise.
214         * testsuite/libgomp.oacc-c-c++-common/context-2.c: Likewise.
215         * testsuite/libgomp.oacc-c-c++-common/context-3.c: Likewise.
216         * testsuite/libgomp.oacc-c-c++-common/context-4.c: Likewise.
217         * testsuite/libgomp.oacc-c-c++-common/data-1.c: Likewise.
218         * testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
219         * testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
220         * testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Likewise.
221         * testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
222         * testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
223         * testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
224         * testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
225         * testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
226         * testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
227         * testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
228         * testsuite/libgomp.oacc-c-c++-common/deviceptr-1.c: Likewise.
229         * testsuite/libgomp.oacc-c-c++-common/if-1.c: Likewise.
230         * testsuite/libgomp.oacc-c-c++-common/kernels-1.c: Likewise.
231         * testsuite/libgomp.oacc-c-c++-common/kernels-empty.c: Likewise.
232         * testsuite/libgomp.oacc-c-c++-common/lib-1.c: Likewise.
233         * testsuite/libgomp.oacc-c-c++-common/lib-10.c: Likewise.
234         * testsuite/libgomp.oacc-c-c++-common/lib-11.c: Likewise.
235         * testsuite/libgomp.oacc-c-c++-common/lib-12.c: Likewise.
236         * testsuite/libgomp.oacc-c-c++-common/lib-13.c: Likewise.
237         * testsuite/libgomp.oacc-c-c++-common/lib-14.c: Likewise.
238         * testsuite/libgomp.oacc-c-c++-common/lib-15.c: Likewise.
239         * testsuite/libgomp.oacc-c-c++-common/lib-16.c: Likewise.
240         * testsuite/libgomp.oacc-c-c++-common/lib-17.c: Likewise.
241         * testsuite/libgomp.oacc-c-c++-common/lib-18.c: Likewise.
242         * testsuite/libgomp.oacc-c-c++-common/lib-19.c: Likewise.
243         * testsuite/libgomp.oacc-c-c++-common/lib-2.c: Likewise.
244         * testsuite/libgomp.oacc-c-c++-common/lib-20.c: Likewise.
245         * testsuite/libgomp.oacc-c-c++-common/lib-21.c: Likewise.
246         * testsuite/libgomp.oacc-c-c++-common/lib-22.c: Likewise.
247         * testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
248         * testsuite/libgomp.oacc-c-c++-common/lib-24.c: Likewise.
249         * testsuite/libgomp.oacc-c-c++-common/lib-25.c: Likewise.
250         * testsuite/libgomp.oacc-c-c++-common/lib-26.c: Likewise.
251         * testsuite/libgomp.oacc-c-c++-common/lib-27.c: Likewise.
252         * testsuite/libgomp.oacc-c-c++-common/lib-28.c: Likewise.
253         * testsuite/libgomp.oacc-c-c++-common/lib-29.c: Likewise.
254         * testsuite/libgomp.oacc-c-c++-common/lib-3.c: Likewise.
255         * testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
256         * testsuite/libgomp.oacc-c-c++-common/lib-31.c: Likewise.
257         * testsuite/libgomp.oacc-c-c++-common/lib-32.c: Likewise.
258         * testsuite/libgomp.oacc-c-c++-common/lib-33.c: Likewise.
259         * testsuite/libgomp.oacc-c-c++-common/lib-34.c: Likewise.
260         * testsuite/libgomp.oacc-c-c++-common/lib-35.c: Likewise.
261         * testsuite/libgomp.oacc-c-c++-common/lib-36.c: Likewise.
262         * testsuite/libgomp.oacc-c-c++-common/lib-37.c: Likewise.
263         * testsuite/libgomp.oacc-c-c++-common/lib-38.c: Likewise.
264         * testsuite/libgomp.oacc-c-c++-common/lib-39.c: Likewise.
265         * testsuite/libgomp.oacc-c-c++-common/lib-4.c: Likewise.
266         * testsuite/libgomp.oacc-c-c++-common/lib-40.c: Likewise.
267         * testsuite/libgomp.oacc-c-c++-common/lib-41.c: Likewise.
268         * testsuite/libgomp.oacc-c-c++-common/lib-42.c: Likewise.
269         * testsuite/libgomp.oacc-c-c++-common/lib-43.c: Likewise.
270         * testsuite/libgomp.oacc-c-c++-common/lib-44.c: Likewise.
271         * testsuite/libgomp.oacc-c-c++-common/lib-45.c: Likewise.
272         * testsuite/libgomp.oacc-c-c++-common/lib-46.c: Likewise.
273         * testsuite/libgomp.oacc-c-c++-common/lib-47.c: Likewise.
274         * testsuite/libgomp.oacc-c-c++-common/lib-48.c: Likewise.
275         * testsuite/libgomp.oacc-c-c++-common/lib-49.c: Likewise.
276         * testsuite/libgomp.oacc-c-c++-common/lib-5.c: Likewise.
277         * testsuite/libgomp.oacc-c-c++-common/lib-50.c: Likewise.
278         * testsuite/libgomp.oacc-c-c++-common/lib-51.c: Likewise.
279         * testsuite/libgomp.oacc-c-c++-common/lib-52.c: Likewise.
280         * testsuite/libgomp.oacc-c-c++-common/lib-53.c: Likewise.
281         * testsuite/libgomp.oacc-c-c++-common/lib-54.c: Likewise.
282         * testsuite/libgomp.oacc-c-c++-common/lib-55.c: Likewise.
283         * testsuite/libgomp.oacc-c-c++-common/lib-56.c: Likewise.
284         * testsuite/libgomp.oacc-c-c++-common/lib-57.c: Likewise.
285         * testsuite/libgomp.oacc-c-c++-common/lib-58.c: Likewise.
286         * testsuite/libgomp.oacc-c-c++-common/lib-59.c: Likewise.
287         * testsuite/libgomp.oacc-c-c++-common/lib-6.c: Likewise.
288         * testsuite/libgomp.oacc-c-c++-common/lib-60.c: Likewise.
289         * testsuite/libgomp.oacc-c-c++-common/lib-61.c: Likewise.
290         * testsuite/libgomp.oacc-c-c++-common/lib-62.c: Likewise.
291         * testsuite/libgomp.oacc-c-c++-common/lib-63.c: Likewise.
292         * testsuite/libgomp.oacc-c-c++-common/lib-64.c: Likewise.
293         * testsuite/libgomp.oacc-c-c++-common/lib-65.c: Likewise.
294         * testsuite/libgomp.oacc-c-c++-common/lib-66.c: Likewise.
295         * testsuite/libgomp.oacc-c-c++-common/lib-67.c: Likewise.
296         * testsuite/libgomp.oacc-c-c++-common/lib-68.c: Likewise.
297         * testsuite/libgomp.oacc-c-c++-common/lib-69.c: Likewise.
298         * testsuite/libgomp.oacc-c-c++-common/lib-7.c: Likewise.
299         * testsuite/libgomp.oacc-c-c++-common/lib-70.c: Likewise.
300         * testsuite/libgomp.oacc-c-c++-common/lib-71.c: Likewise.
301         * testsuite/libgomp.oacc-c-c++-common/lib-72.c: Likewise.
302         * testsuite/libgomp.oacc-c-c++-common/lib-73.c: Likewise.
303         * testsuite/libgomp.oacc-c-c++-common/lib-74.c: Likewise.
304         * testsuite/libgomp.oacc-c-c++-common/lib-75.c: Likewise.
305         * testsuite/libgomp.oacc-c-c++-common/lib-76.c: Likewise.
306         * testsuite/libgomp.oacc-c-c++-common/lib-77.c: Likewise.
307         * testsuite/libgomp.oacc-c-c++-common/lib-78.c: Likewise.
308         * testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
309         * testsuite/libgomp.oacc-c-c++-common/lib-80.c: Likewise.
310         * testsuite/libgomp.oacc-c-c++-common/lib-81.c: Likewise.
311         * testsuite/libgomp.oacc-c-c++-common/lib-82.c: Likewise.
312         * testsuite/libgomp.oacc-c-c++-common/lib-83.c: Likewise.
313         * testsuite/libgomp.oacc-c-c++-common/lib-84.c: Likewise.
314         * testsuite/libgomp.oacc-c-c++-common/lib-85.c: Likewise.
315         * testsuite/libgomp.oacc-c-c++-common/lib-86.c: Likewise.
316         * testsuite/libgomp.oacc-c-c++-common/lib-87.c: Likewise.
317         * testsuite/libgomp.oacc-c-c++-common/lib-88.c: Likewise.
318         * testsuite/libgomp.oacc-c-c++-common/lib-89.c: Likewise.
319         * testsuite/libgomp.oacc-c-c++-common/lib-9.c: Likewise.
320         * testsuite/libgomp.oacc-c-c++-common/lib-90.c: Likewise.
321         * testsuite/libgomp.oacc-c-c++-common/lib-91.c: Likewise.
322         * testsuite/libgomp.oacc-c-c++-common/lib-92.c: Likewise.
323         * testsuite/libgomp.oacc-c-c++-common/nested-1.c: Likewise.
324         * testsuite/libgomp.oacc-c-c++-common/nested-2.c: Likewise.
325         * testsuite/libgomp.oacc-c-c++-common/offset-1.c: Likewise.
326         * testsuite/libgomp.oacc-c-c++-common/parallel-1.c: Likewise.
327         * testsuite/libgomp.oacc-c-c++-common/parallel-empty.c: Likewise.
328         * testsuite/libgomp.oacc-c-c++-common/pointer-align-1.c: Likewise.
329         * testsuite/libgomp.oacc-c-c++-common/present-1.c: Likewise.
330         * testsuite/libgomp.oacc-c-c++-common/present-2.c: Likewise.
331         * testsuite/libgomp.oacc-c-c++-common/reduction-1.c: Likewise.
332         * testsuite/libgomp.oacc-c-c++-common/reduction-2.c: Likewise.
333         * testsuite/libgomp.oacc-c-c++-common/reduction-3.c: Likewise.
334         * testsuite/libgomp.oacc-c-c++-common/reduction-4.c: Likewise.
335         * testsuite/libgomp.oacc-c-c++-common/reduction-5.c: Likewise.
336         * testsuite/libgomp.oacc-c-c++-common/reduction-initial-1.c:
337         Likewise.
338         * testsuite/libgomp.oacc-c-c++-common/subr.h: Likewise.
339         * testsuite/libgomp.oacc-c-c++-common/subr.ptx: Likewise.
340         * testsuite/libgomp.oacc-c-c++-common/timer.h: Likewise.
341         * testsuite/libgomp.oacc-c-c++-common/update-1-2.c: Likewise.
342         * testsuite/libgomp.oacc-c-c++-common/update-1.c: Likewise.
343         * testsuite/libgomp.oacc-fortran/abort-1.f90: Likewise.
344         * testsuite/libgomp.oacc-fortran/abort-2.f90: Likewise.
345         * testsuite/libgomp.oacc-fortran/acc_on_device-1-1.f90: Likewise.
346         * testsuite/libgomp.oacc-fortran/acc_on_device-1-2.f: Likewise.
347         * testsuite/libgomp.oacc-fortran/acc_on_device-1-3.f: Likewise.
348         * testsuite/libgomp.oacc-fortran/asyncwait-1.f90: Likewise.
349         * testsuite/libgomp.oacc-fortran/asyncwait-2.f90: Likewise.
350         * testsuite/libgomp.oacc-fortran/asyncwait-3.f90: Likewise.
351         * testsuite/libgomp.oacc-fortran/collapse-1.f90: Likewise.
352         * testsuite/libgomp.oacc-fortran/collapse-2.f90: Likewise.
353         * testsuite/libgomp.oacc-fortran/collapse-3.f90: Likewise.
354         * testsuite/libgomp.oacc-fortran/collapse-4.f90: Likewise.
355         * testsuite/libgomp.oacc-fortran/collapse-5.f90: Likewise.
356         * testsuite/libgomp.oacc-fortran/collapse-6.f90: Likewise.
357         * testsuite/libgomp.oacc-fortran/collapse-7.f90: Likewise.
358         * testsuite/libgomp.oacc-fortran/collapse-8.f90: Likewise.
359         * testsuite/libgomp.oacc-fortran/data-1.f90: Likewise.
360         * testsuite/libgomp.oacc-fortran/data-2.f90: Likewise.
361         * testsuite/libgomp.oacc-fortran/data-3.f90: Likewise.
362         * testsuite/libgomp.oacc-fortran/data-4-2.f90: Likewise.
363         * testsuite/libgomp.oacc-fortran/data-4.f90: Likewise.
364         * testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
365         * testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
366         * testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
367         * testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
368         * testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
369         * testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
370         * testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
371         * testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
372         * testsuite/libgomp.oacc-fortran/lib-1.f90: Likewise.
373         * testsuite/libgomp.oacc-fortran/lib-10.f90: Likewise.
374         * testsuite/libgomp.oacc-fortran/lib-2.f: Likewise.
375         * testsuite/libgomp.oacc-fortran/lib-3.f: Likewise.
376         * testsuite/libgomp.oacc-fortran/lib-4.f90: Likewise.
377         * testsuite/libgomp.oacc-fortran/lib-5.f90: Likewise.
378         * testsuite/libgomp.oacc-fortran/lib-6.f90: Likewise.
379         * testsuite/libgomp.oacc-fortran/lib-7.f90: Likewise.
380         * testsuite/libgomp.oacc-fortran/lib-8.f90: Likewise.
381         * testsuite/libgomp.oacc-fortran/map-1.f90: Likewise.
382         * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Likewise.
383         * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
384         * testsuite/libgomp.oacc-fortran/pointer-align-1.f90: Likewise.
385         * testsuite/libgomp.oacc-fortran/pset-1.f90: Likewise.
386         * testsuite/libgomp.oacc-fortran/reduction-1.f90: Likewise.
387         * testsuite/libgomp.oacc-fortran/reduction-2.f90: Likewise.
388         * testsuite/libgomp.oacc-fortran/reduction-3.f90: Likewise.
389         * testsuite/libgomp.oacc-fortran/reduction-4.f90: Likewise.
390         * testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
391         * testsuite/libgomp.oacc-fortran/reduction-6.f90: Likewise.
392         * testsuite/libgomp.oacc-fortran/routine-1.f90: Likewise.
393         * testsuite/libgomp.oacc-fortran/routine-2.f90: Likewise.
394         * testsuite/libgomp.oacc-fortran/routine-3.f90: Likewise.
395         * testsuite/libgomp.oacc-fortran/routine-4.f90: Likewise.
396         * testsuite/libgomp.oacc-fortran/subarrays-1.f90: Likewise.
397         * testsuite/libgomp.oacc-fortran/subarrays-2.f90: Likewise.
399 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
400             Julian Brown  <julian@codesourcery.com>
401             David Malcolm  <dmalcolm@redhat.com>
403         * configure.ac: Rename libgomp from "GNU OpenMP Runtime Library"
404         to "GNU Offloading and Multi Processing Runtime Library".  Change
405         all users.
406         * configure: Regenerate.
407         * libgomp.texi: Update.
409 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
411         * configure.ac [tgt_dir] (offload_additional_lib_paths): Also add
412         "$tgt_dir/lib32".
413         * configure: Regenerate.
415         * testsuite/lib/libgomp.exp (libgomp_init): Correctly match
416         "intelmic" in $offload_targets.
418 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
420         Update copyright years.
422         * libgomp.texi: Bump @copying's copyright year.
424 2014-12-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
426         * testsuite/lib/libgomp.exp: Load target-utils.exp.
427         Move load of target-supportes.exp earlier.
429 2014-12-10  Ilya Verbin  <ilya.verbin@intel.com>
431         * testsuite/libgomp.c/target-9.c: New test.
433 2014-12-09  Varvara Rainchik  <varvara.rainchik@intel.com>
435         * config.h.in: Regenerate.
436         * configure: Regenerate.
437         * configure.ac: Add GCC_CHECK_EMUTLS.
438         * libgomp.h: Add check for USE_EMUTLS: this case
439         is equal to HAVE_TLS.
440         * team.c: Likewise.
442 2014-12-03  Uros Bizjak  <ubizjak@gmail.com>
444         * configure.tgt (x86_64-*-linux*): Tune -m32 multilib to generic.
446 2014-11-28  Andrey Turetskiy  <andrey.turetskiy@intel.com>
447             Ilya Verbin  <ilya.verbin@intel.com>
449         * testsuite/libgomp.c/target-critical-1.c: New test.
451 2014-11-26  Jakub Jelinek  <jakub@redhat.com>
453         * testsuite/libgomp.c/examples-4/e.53.4.c: Add -DITESTITERS=20
454         to dg-options unless expensive testing is on.
455         (TESTITERS): Define to N if not defined.
456         (main): Use TESTITERS instead of N.
457         * testsuite/libgomp.c/examples-4/e.55.1.c: Define CHUNKSZ from
458         dg-additional-options depending on whether expensive testing is on.
459         * testsuite/libgomp.fortran/examples-4/e.55.1.f90 (e_55_1_mod):
460         Decrease N to 100000 and CHUNKSZ to 10000.
462 2014-11-24  Jakub Jelinek  <jakub@redhat.com>
464         PR fortran/63938
465         * testsuite/libgomp.fortran/pr63938-1.f90: New test.
466         * testsuite/libgomp.fortran/pr63938-2.f90: New test.
468 2014-11-21  Steve Ellcey  <sellcey@imgtec.com>
470         * config/linux/mips/futex.h (SYS_futex): Define if not already done.
472 2014-11-21  H.J. Lu  <hongjiu.lu@intel.com>
474         PR bootstrap/63784
475         * configure: Regenerated.
477 2014-11-19  Uros Bizjak  <ubizjak@gmail.com>
479         * testsuite/libgomp.c/examples-4/e.53.5.c: Require
480         vect_simd_clones effective target.
481         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
483 2014-11-14  Jakub Jelinek  <jakub@redhat.com>
485         * libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
486         of 32 as block_size.
487         * libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
488         instead of 32 as block_size.
490 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
491             Ilya Verbin  <ilya.verbin@intel.com>
493         * Makefile.in: Regenerate.
494         * configure: Regenerate.
495         * configure.ac: Set up offload_additional_options,
496         offload_additional_lib_paths and offload_targets.
497         * testsuite/Makefile.am: Export environment variables: OFFLOAD_TARGETS,
498         OFFLOAD_ADDITIONAL_OPTIONS, OFFLOAD_ADDITIONAL_LIB_PATHS.
499         * testsuite/Makefile.in: Regenerate.
500         * testsuite/lib/libgomp.exp (libgomp_init): Append
501         offload_additional_lib_paths to LD_LIBRARY_PATH.  Append
502         offload_additional_options to ALWAYS_CFLAGS.  Append liboffloadmic
503         build directory to LD_LIBRARY_PATH for intelmic offload targets.
505 2014-11-13  Andrey Turetskiy  <andrey.turetskiy@intel.com>
506             Ilya Verbin  <ilya.verbin@intel.com>
507             Kirill Yukhin  <kirill.yukhin@intel.com>
508             Ilya Tocar  <ilya.tocar@intel.com>
510         * testsuite/lib/libgomp.exp
511         (check_effective_target_offload_device): New.
512         * testsuite/libgomp.c++/c++.exp: Include tests from subdirectories.
513         * testsuite/libgomp.c++/examples-4/e.51.5.C: New test.
514         * testsuite/libgomp.c++/examples-4/e.53.2.C: Ditto.
515         * testsuite/libgomp.c/examples-4/e.50.1.c: Ditto.
516         * testsuite/libgomp.c/examples-4/e.50.2.c: Ditto.
517         * testsuite/libgomp.c/examples-4/e.50.3.c: Ditto.
518         * testsuite/libgomp.c/examples-4/e.50.4.c: Ditto.
519         * testsuite/libgomp.c/examples-4/e.50.5.c: Ditto.
520         * testsuite/libgomp.c/examples-4/e.51.1.c: Ditto.
521         * testsuite/libgomp.c/examples-4/e.51.2.c: Ditto.
522         * testsuite/libgomp.c/examples-4/e.51.3.c: Ditto.
523         * testsuite/libgomp.c/examples-4/e.51.4.c: Ditto.
524         * testsuite/libgomp.c/examples-4/e.51.6.c: Ditto.
525         * testsuite/libgomp.c/examples-4/e.51.7.c: Ditto.
526         * testsuite/libgomp.c/examples-4/e.52.1.c: Ditto.
527         * testsuite/libgomp.c/examples-4/e.52.2.c: Ditto.
528         * testsuite/libgomp.c/examples-4/e.53.1.c: Ditto.
529         * testsuite/libgomp.c/examples-4/e.53.3.c: Ditto.
530         * testsuite/libgomp.c/examples-4/e.53.4.c: Ditto.
531         * testsuite/libgomp.c/examples-4/e.53.5.c: Ditto.
532         * testsuite/libgomp.c/examples-4/e.54.2.c: Ditto.
533         * testsuite/libgomp.c/examples-4/e.54.3.c: Ditto.
534         * testsuite/libgomp.c/examples-4/e.54.4.c: Ditto.
535         * testsuite/libgomp.c/examples-4/e.54.5.c: Ditto.
536         * testsuite/libgomp.c/examples-4/e.54.6.c: Ditto.
537         * testsuite/libgomp.c/examples-4/e.55.1.c: Ditto.
538         * testsuite/libgomp.c/examples-4/e.55.2.c: Ditto.
539         * testsuite/libgomp.c/examples-4/e.56.3.c: Ditto.
540         * testsuite/libgomp.c/examples-4/e.56.4.c: Ditto.
541         * testsuite/libgomp.c/examples-4/e.57.1.c: Ditto.
542         * testsuite/libgomp.c/examples-4/e.57.2.c: Ditto.
543         * testsuite/libgomp.c/examples-4/e.57.3.c: Ditto.
544         * testsuite/libgomp.c/target-7.c: Fix test.
545         * testsuite/libgomp.fortran/examples-4/e.50.1.f90: New test.
546         * testsuite/libgomp.fortran/examples-4/e.50.2.f90: Ditto.
547         * testsuite/libgomp.fortran/examples-4/e.50.3.f90: Ditto.
548         * testsuite/libgomp.fortran/examples-4/e.50.4.f90: Ditto.
549         * testsuite/libgomp.fortran/examples-4/e.50.5.f90: Ditto.
550         * testsuite/libgomp.fortran/examples-4/e.51.1.f90: Ditto.
551         * testsuite/libgomp.fortran/examples-4/e.51.2.f90: Ditto.
552         * testsuite/libgomp.fortran/examples-4/e.51.3.f90: Ditto.
553         * testsuite/libgomp.fortran/examples-4/e.51.4.f90: Ditto.
554         * testsuite/libgomp.fortran/examples-4/e.51.5.f90: Ditto.
555         * testsuite/libgomp.fortran/examples-4/e.51.6.f90: Ditto.
556         * testsuite/libgomp.fortran/examples-4/e.51.7.f90: Ditto.
557         * testsuite/libgomp.fortran/examples-4/e.52.1.f90: Ditto.
558         * testsuite/libgomp.fortran/examples-4/e.52.2.f90: Ditto.
559         * testsuite/libgomp.fortran/examples-4/e.53.1.f90: Ditto.
560         * testsuite/libgomp.fortran/examples-4/e.53.2.f90: Ditto.
561         * testsuite/libgomp.fortran/examples-4/e.53.3.f90: Ditto.
562         * testsuite/libgomp.fortran/examples-4/e.53.4.f90: Ditto.
563         * testsuite/libgomp.fortran/examples-4/e.53.5.f90: Ditto.
564         * testsuite/libgomp.fortran/examples-4/e.54.2.f90: Ditto.
565         * testsuite/libgomp.fortran/examples-4/e.54.3.f90: Ditto.
566         * testsuite/libgomp.fortran/examples-4/e.54.4.f90: Ditto.
567         * testsuite/libgomp.fortran/examples-4/e.54.5.f90: Ditto.
568         * testsuite/libgomp.fortran/examples-4/e.54.6.f90: Ditto.
569         * testsuite/libgomp.fortran/examples-4/e.55.1.f90: Ditto.
570         * testsuite/libgomp.fortran/examples-4/e.55.2.f90: Ditto.
571         * testsuite/libgomp.fortran/examples-4/e.56.3.f90: Ditto.
572         * testsuite/libgomp.fortran/examples-4/e.56.4.f90: Ditto.
573         * testsuite/libgomp.fortran/examples-4/e.57.1.f90: Ditto.
574         * testsuite/libgomp.fortran/examples-4/e.57.2.f90: Ditto.
575         * testsuite/libgomp.fortran/examples-4/e.57.3.f90: Ditto.
577 2014-11-13  Jakub Jelinek  <jakub@redhat.com>
578             Ilya Verbin  <ilya.verbin@intel.com>
579             Thomas Schwinge  <thomas@codesourcery.com>
580             Andrey Turetskiy  <andrey.turetskiy@intel.com>
582         * libgomp.map (GOMP_4.0.1): New symbol version.
583         Add GOMP_offload_register.
584         * libgomp_target.h: New file.
585         * splay-tree.h: New file.
586         * target.c: Include config.h, libgomp_target.h, dlfcn.h, splay-tree.h.
587         (gomp_target_init): New forward declaration.
588         (gomp_is_initialized): New static variable.
589         (splay_tree_node, splay_tree, splay_tree_key): New typedefs.
590         (struct target_mem_desc, struct splay_tree_key_s, offload_image_descr):
591         New structures.
592         (offload_images, num_offload_images, devices, num_devices): New static
593         variables.
594         (splay_compare): New static function.
595         (struct gomp_device_descr): New structure.
596         (gomp_get_num_devices): Call gomp_target_init.
597         (resolve_device, gomp_map_vars_existing, gomp_map_vars, gomp_unmap_tgt)
598         (gomp_unmap_vars, gomp_update, gomp_init_device): New static functions.
599         (GOMP_offload_register): New function.
600         (GOMP_target): Arrange for host callback to be performed in a separate
601         initial thread and contention group, inheriting ICVs from
602         gomp_global_icv etc.  Call gomp_map_vars and gomp_unmap_vars.
603         Add device initialization and lookup for target function in splay tree.
604         (GOMP_target_data): Add device initialization and call gomp_map_vars.
605         (GOMP_target_end_data): Call gomp_unmap_vars.
606         (GOMP_target_update): Add device initialization and call gomp_update.
607         (gomp_load_plugin_for_device, gomp_register_images_for_device)
608         (gomp_target_init): New static functions.
610 2014-11-13  Bernd Schmidt  <bernds@codesourcery.com>
611             Thomas Schwinge  <thomas@codesourcery.com>
612             Ilya Verbin  <ilya.verbin@intel.com>
613             Andrey Turetskiy  <andrey.turetskiy@intel.com>
615         * config.h.in: Regenerate.
616         * configure: Regenerate.
617         * configure.ac: Check for libdl, required for plugin support.
618         (PLUGIN_SUPPORT): Define if plugins are supported.
619         (enable_offload_targets): Support Intel MIC targets.
620         (OFFLOAD_TARGETS): List of target names suitable for offloading.
622 2014-11-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
624         PR target/63610
625         * configure: Regenerate.
627 2014-11-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
629         * config/posix/lock.c (_XOPEN_SOURCE) Define as 600.
631 2014-10-06  Marek Polacek  <polacek@redhat.com>
633         * testsuite/libgomp.c/affinity-1.c: Include <sys/wait.h>.
634         * testsuite/libgomp.c/nqueens-1.c: Include <stdlib.h>.
635         * testsuite/libgomp.c/thread-limit-1.c: Include <omp.h>
636         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
638 2014-10-06  Marek Polacek  <polacek@redhat.com>
640         * testsuite/libgomp.c/affinity-1.c: Fix implicit declarations.
641         * testsuite/libgomp.c/nqueens-1.c: Likewise.
642         * testsuite/libgomp.c/pr26943-3.c: Likewise.
643         * testsuite/libgomp.c/pr26943-4.c: Likewise.
644         * testsuite/libgomp.c/pr36802-2.c: Likewise.
645         * testsuite/libgomp.c/pr36802-3.c: Likewise.
646         * testsuite/libgomp.c/thread-limit-1.c: Likewise.
647         * testsuite/libgomp.c/thread-limit-2.c: Likewise.
648         * testsuite/libgomp.c/appendix-a/a.15.1.c: Include <omp.h>.
649         * testsuite/libgomp.c/omp-loop02.c: Fix defaulting to int.
650         * testsuite/libgomp.c/omp-parallel-for.c: Likewise.
651         * testsuite/libgomp.c/omp-parallel-if.c: Likewise.
652         * testsuite/libgomp.c/omp-single-1.c: Likewise.
653         * testsuite/libgomp.c/omp-single-2.c: Likewise.
654         * testsuite/libgomp.c/omp_matvec.c: Likewise.
655         * testsuite/libgomp.c/omp_workshare3.c: Likewise.
656         * testsuite/libgomp.c/omp_workshare4.c: Likewise.
657         * testsuite/libgomp.c/shared-1.c: Fix defaulting to int.  Fix implicit
658         declarations.
660 2014-10-03  Jakub Jelinek  <jakub@redhat.com>
662         PR libgomp/61200
663         * testsuite/libgomp.c/pr61200.c: New test.
665 2014-09-18  Jakub Jelinek  <jakub@redhat.com>
667         PR c++/63248
668         * testsuite/libgomp.c++/pr63248.C: New test.
670 2014-08-04  Jakub Jelinek  <jakub@redhat.com>
672         * task.c (GOMP_taskgroup_end): If taskgroup->num_children
673         is not zero, but taskgroup->children is NULL and there are
674         any task->children, schedule those instead of waiting.
675         * testsuite/libgomp.c/depend-6.c: New test.
676         * testsuite/libgomp.c/depend-7.c: New test.
677         * testsuite/libgomp.c/depend-8.c: New test.
678         * testsuite/libgomp.c/depend-9.c: New test.
679         * testsuite/libgomp.c/depend-10.c: New test.
681 2014-08-01  Jakub Jelinek  <jakub@redhat.com>
683         * libgomp.h (struct gomp_task_depend_entry): Add redundant_out field.
684         (struct gomp_taskwait): New type.
685         (struct gomp_task): Add taskwait and parent_depends_on, remove
686         in_taskwait and taskwait_sem fields.
687         (gomp_finish_task): Don't destroy taskwait_sem.
688         * task.c (gomp_init_task): Don't init in_taskwait, instead init
689         taskwait and parent_depends_on.
690         (GOMP_task): For if (0) tasks with depend clause that depend on
691         earlier tasks don't defer them, instead call
692         gomp_task_maybe_wait_for_dependencies to wait for the dependencies.
693         Initialize redundant_out field, for redundant out entries just
694         move them at the end of linked list instead of removing them
695         completely, and set redundant_out flag instead of redundant.
696         (gomp_task_run_pre): Update last_parent_depends_on if scheduling
697         that task.
698         (gomp_task_run_post_handle_dependers): If parent is in
699         gomp_task_maybe_wait_for_dependencies and newly runnable task
700         is not parent_depends_on, queue it in parent->children linked
701         list after all runnable tasks with parent_depends_on set.
702         Adjust for addition of taskwait indirection.
703         (gomp_task_run_post_remove_parent): If parent is in
704         gomp_task_maybe_wait_for_dependencies and task to be removed
705         is parent_depends_on, decrement n_depend and if needed awake
706         parent.  Adjust for addition of taskwait indirection.
707         (GOMP_taskwait): Adjust for addition of taskwait indirection.
708         (gomp_task_maybe_wait_for_dependencies): New function.
709         * testsuite/libgomp.c/depend-5.c: New test.
711 2014-07-13  Tobias Burnus  <burnus@net-b.de>
713         * testsuite/libgomp.fortran/pr34020.f90: Make compile
714         with TS 18508/Fortran 2015.
716 2014-07-06  Marek Polacek  <polacek@redhat.com>
718         PR c/6940
719         * testsuite/libgomp.c/appendix-a/a.29.1.c (f): Add dg-warnings.
721 2014-07-03  Jakub Jelinek  <jakub@redhat.com>
723         * testsuite/lib/libgomp.exp (libgomp_target_compile): If $source
724         matches regex $lang_source_re, add $lang_include_flags to options.
725         * testsuite/libgomp.c/c.exp: Unset lang_include_flags.
726         * testsuite/libgomp.c++/c++.exp: Likewise.
727         * testsuite/libgomp.fortran/fortran.exp: Likewise.  Set lang_source_re
728         and lang_include_flags instead of adding -fintrinsic-modules-path= to
729         ALWAYS_CFLAGS.
730         * testsuite/libgomp.graphite/graphite.exp: Unset lang_include_flags.
732 2014-07-03  Thomas Schwinge  <thomas@codesourcery.com>
734         * testsuite/libgomp.fortran/fortran.exp: Explain
735         gfortran-dg-runtest usage.
737 2014-06-25  Jakub Jelinek  <jakub@redhat.com>
739         * testsuite/libgomp.fortran/simd5.f90: New test.
740         * testsuite/libgomp.fortran/simd6.f90: New test.
741         * testsuite/libgomp.fortran/simd7.f90: New test.
743 2014-06-24  Jakub Jelinek  <jakub@redhat.com>
745         * testsuite/libgomp.c/for-2.c: Define SC to static for
746         #pragma omp for simd testing.
747         * testsuite/libgomp.c/for-2.h (SC): Define if not defined.
748         (N(f5), N(f6), N(f7), N(f8), N(f10), N(f12), N(f14)): Use
749         SC macro.
750         * testsuite/libgomp.c/simd-14.c: New test.
751         * testsuite/libgomp.c/simd-15.c: New test.
752         * testsuite/libgomp.c/simd-16.c: New test.
753         * testsuite/libgomp.c/simd-17.c: New test.
754         * testsuite/libgomp.c++/for-10.C: Define SC to static for
755         #pragma omp for simd testing.
756         * testsuite/libgomp.c++/simd10.C: New test.
757         * testsuite/libgomp.c++/simd11.C: New test.
758         * testsuite/libgomp.c++/simd12.C: New test.
759         * testsuite/libgomp.c++/simd13.C: New test.
761         * testsuite/libgomp.fortran/aligned1.f03: New test.
762         * testsuite/libgomp.fortran/nestedfn5.f90: New test.
763         * testsuite/libgomp.fortran/target7.f90: Surround loop spawning
764         tasks with !$omp parallel !$omp single.
765         * testsuite/libgomp.fortran/target8.f90: New test.
766         * testsuite/libgomp.fortran/udr4.f90 (foo UDR, bar UDR): Adjust
767         not to use trim in the combiner, instead call elemental function.
768         (fn): New elemental function.
769         * testsuite/libgomp.fortran/udr6.f90 (do_add, dp_add, dp_init):
770         Make elemental.
771         * testsuite/libgomp.fortran/udr7.f90 (omp_priv, omp_orig, omp_out,
772         omp_in): Likewise.
773         * testsuite/libgomp.fortran/udr12.f90: New test.
774         * testsuite/libgomp.fortran/udr13.f90: New test.
775         * testsuite/libgomp.fortran/udr14.f90: New test.
776         * testsuite/libgomp.fortran/udr15.f90: New test.
778 2014-06-18  Jakub Jelinek  <jakub@redhat.com>
780         * omp_lib.f90.in (openmp_version): Set to 201307.
781         * omp_lib.h.in (openmp_version): Likewise.
782         * testsuite/libgomp.c/target-8.c: New test.
783         * testsuite/libgomp.fortran/declare-simd-1.f90: Add notinbranch
784         and inbranch clauses.
785         * testsuite/libgomp.fortran/depend-3.f90: New test.
786         * testsuite/libgomp.fortran/openmp_version-1.f: Adjust for new
787         openmp_version.
788         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
789         * testsuite/libgomp.fortran/target1.f90: New test.
790         * testsuite/libgomp.fortran/target2.f90: New test.
791         * testsuite/libgomp.fortran/target3.f90: New test.
792         * testsuite/libgomp.fortran/target4.f90: New test.
793         * testsuite/libgomp.fortran/target5.f90: New test.
794         * testsuite/libgomp.fortran/target6.f90: New test.
795         * testsuite/libgomp.fortran/target7.f90: New test.
797 2014-06-10  Jakub Jelinek  <jakub@redhat.com>
799         PR fortran/60928
800         * testsuite/libgomp.fortran/allocatable9.f90: New test.
801         * testsuite/libgomp.fortran/allocatable10.f90: New test.
802         * testsuite/libgomp.fortran/allocatable11.f90: New test.
803         * testsuite/libgomp.fortran/allocatable12.f90: New test.
804         * testsuite/libgomp.fortran/alloc-comp-1.f90: New test.
805         * testsuite/libgomp.fortran/alloc-comp-2.f90: New test.
806         * testsuite/libgomp.fortran/alloc-comp-3.f90: New test.
807         * testsuite/libgomp.fortran/associate1.f90: New test.
808         * testsuite/libgomp.fortran/associate2.f90: New test.
809         * testsuite/libgomp.fortran/procptr1.f90: New test.
811 2014-06-06  Jakub Jelinek  <jakub@redhat.com>
813         * testsuite/libgomp.fortran/simd1.f90: New test.
814         * testsuite/libgomp.fortran/udr1.f90: New test.
815         * testsuite/libgomp.fortran/udr2.f90: New test.
816         * testsuite/libgomp.fortran/udr3.f90: New test.
817         * testsuite/libgomp.fortran/udr4.f90: New test.
818         * testsuite/libgomp.fortran/udr5.f90: New test.
819         * testsuite/libgomp.fortran/udr6.f90: New test.
820         * testsuite/libgomp.fortran/udr7.f90: New test.
821         * testsuite/libgomp.fortran/udr8.f90: New test.
822         * testsuite/libgomp.fortran/udr9.f90: New test.
823         * testsuite/libgomp.fortran/udr10.f90: New test.
824         * testsuite/libgomp.fortran/udr11.f90: New test.
826 2014-05-27  Uros Bizjak  <ubizjak@gmail.com>
828         * testsuite/libgomp.fortran/declare-simd-1.f90: Require
829         vect_simd_clones effective target.
830         * testsuite/libgomp.fortran/declare-simd-2.f90: Ditto.
832 2014-05-21  Jakub Jelinek  <jakub@redhat.com>
834         PR middle-end/61252
835         * testsuite/libgomp.c++/simd-9.C: New test.
837 2014-05-18  Uros Bizjak  <ubizjak@gmail.com>
839         * libgomp.texi (Runitme Library Routines): Remove multiple @menu.
840         (Environment Variables) Move OMP_PROC_BIND and OMP_STACKSIZE node
841         texts according to their @menu entry positions.
843 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
845         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
846         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
847         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
848         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
849         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
850         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
851         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
852         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
853         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
854         * testsuite/libgomp.fortran/depend-1.f90: New test.
855         * testsuite/libgomp.fortran/depend-2.f90: New test.
856         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
857         * testsuite/libgomp.fortran/simd1.f90: New test.
858         * testsuite/libgomp.fortran/simd2.f90: New test.
859         * testsuite/libgomp.fortran/simd3.f90: New test.
860         * testsuite/libgomp.fortran/simd4.f90: New test.
861         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
863 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
865         * testsuite/libgomp.c/simd-10.c: New test.
866         * testsuite/libgomp.c/simd-11.c: New test.
867         * testsuite/libgomp.c/simd-12.c: New test.
868         * testsuite/libgomp.c/simd-13.c: New test.
870 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
872         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
873         atomic type clauses in any order and optional comma in between.
874         * testsuite/libgomp.c++/atomic-15.C: Likewise.
875         * testsuite/libgomp.c/atomic-17.c: Likewise.
877         * testsuite/libgomp.c/simd-7.c: New test.
878         * testsuite/libgomp.c/simd-8.c: New test.
879         * testsuite/libgomp.c/simd-9.c: New test.
880         * testsuite/libgomp.c/loop-16.c: New test.
882 2014-04-02  Richard Henderson  <rth@redhat.com>
884         * config/linux/futex.h (futex_wait): Get error value from errno.
885         (futex_wake): Likewise.
887 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
889         PR c++/60331
890         * testsuite/libgomp.c++/udr-11.C: New test.
891         * testsuite/libgomp.c++/udr-12.C: New test.
892         * testsuite/libgomp.c++/udr-13.C: New test.
893         * testsuite/libgomp.c++/udr-14.C: New test.
894         * testsuite/libgomp.c++/udr-15.C: New test.
895         * testsuite/libgomp.c++/udr-16.C: New test.
896         * testsuite/libgomp.c++/udr-17.C: New test.
897         * testsuite/libgomp.c++/udr-18.C: New test.
898         * testsuite/libgomp.c++/udr-19.C: New test.
900 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
902         Update copyright years
904 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
906         * hashtab.h: Use the standard form for the copyright notice.
908 2014-01-02  Tobias Burnus  <burnus@net-b.de>
910         * libgomp.texi: Bump @copying's copyright year.
912 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
914         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
915         alloca () with __builtin_alloca ().
916         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
917         * testsuite/libgomp.c/lock-3.c: Likewise.
918         * testsuite/libgomp.c/pr48591.c: Likewise.
920 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
922         PR testsuite/59534
923         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
924         comparisons.
926 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
928         PR libgomp/58756
929         * testsuite/libgomp.c/pr58756.c: New test.
931 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
933         PR libgomp/59467
934         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
935         !$omp parallel.
937 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
939         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
940         ALWAYS_CFLAGS.
941         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
942         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
943         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
944         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
945         Likewise.
947         * libgomp_g.h: Include <stddef.h> for size_t.
949         * libgomp.spec.in: Update comment about libgomp's dependencies.
950         * configure.ac: Likewise.
951         * configure: Regenerate.
953 2013-10-16  Tobias Burnus  <burnus@net-b.de>
955         * libgomp.texi: (Runtime Library Routines): Update references for
956         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
957         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
958         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
959         (Environment Variables): Update references for OpenMP 4.0. Add
960         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
961         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
962         order.
964 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
966         * env.c (parse_bind_var): Initialize value to avoid
967         (false positive) warning.
969 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
971         PR libgomp/58691
972         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
973         to check variable.
974         (gomp_init_num_threads): Move i variable declaration into
975         #ifdef CPU_ALLOC_SIZE block.
976         * config/linux/affinity.c (gomp_affinity_init_level): Test
977         gomp_places_list_len == 0 rather than gomp_places_list == 0
978         when checking for topology reading error.
979         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
980         * env.c (parse_affinity): Add ignore argument, if true, don't populate
981         gomp_places_list, only parse env var and always return false.
982         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
983         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
984         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
985         and either of these variables were parsed correctly into a places
986         list.
988 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
989             Jakub Jelinek  <jakub@redhat.com>
991         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
992         of 5 loopfn matches.
993         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
994         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
995         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
996         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
997         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
998         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
999         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1000         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1002 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
1004         * Makefile.am (omp_lib.mod): Streamline rule.
1005         * Makefile.in: Regenerate.
1007         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
1008         exceptions.
1010         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
1011         * testsuite/libgomp.fortran/lib1.f90: Likewise.
1012         * testsuite/libgomp.fortran/lib2.f: Likewise.
1013         * testsuite/libgomp.fortran/lib3.f: Likewise.
1015         * configure.ac: Typo fix.
1016         * configure: Regenerate.
1018         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
1019         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
1021         * omp.h.in: Don't touch the user's namespace.
1023 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
1024             Tobias Burnus  <burnus@net-b.de>
1025             Richard Henderson  <rth@redhat.com>
1027         * target.c: New file.
1028         * Makefile.am (libgomp_la_SOURCES): Add target.c.
1029         * Makefile.in: Regenerated.
1030         * libgomp_g.h (GOMP_task): Add depend argument.
1031         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1032         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1033         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
1034         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1035         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1036         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
1037         GOMP_taskgroup_start, GOMP_taskgroup_end,
1038         GOMP_parallel_sections): New prototypes.
1039         * fortran.c (omp_is_initial_device): Add ialias_redirect.
1040         (omp_is_initial_device_): New function.
1041         (ULP, STR1, STR2, ialias_redirect): Removed.
1042         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
1043         omp_set_default_device_8_, omp_get_default_device_,
1044         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
1045         functions.
1046         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
1047         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
1048         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
1049         @@GOMP_4.0.
1050         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
1051         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
1052         omp_set_default_device, omp_set_default_device_,
1053         omp_set_default_device_8_, omp_get_default_device,
1054         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
1055         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
1056         omp_get_team_num_): Export @@OMP_4.0.
1057         * team.c (struct gomp_thread_start_data): Add place field.
1058         (gomp_thread_start): Clear thr->thread_pool and
1059         thr->task before returning.  Use gomp_team_barrier_wait_final
1060         instead of gomp_team_barrier_wait.  Initialize thr->place.
1061         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
1062         team_cancelled and task_queued_count fields.
1063         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
1064         before calling pthread_exit.
1065         (gomp_free_thread): No longer static.  Use
1066         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
1067         (gomp_team_start): Add flags argument.  Set
1068         thr->thread_pool->threads_busy to nthreads immediately after creating
1069         new pool.  Use gomp_managed_threads_lock instead of
1070         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
1071         (gomp_team_end): Use gomp_managed_threads_lock instead of
1072         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
1073         of gomp_team_barrier_wait.  If team->team_cancelled, call
1074         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
1075         rather than thr->ts.work_share.
1076         (initialize_team): Don't call gomp_sem_init here.
1077         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
1078         caller.
1079         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
1080         * env.c (gomp_global_icv): Add default_device_var, target_data and
1081         bind_var initializers.
1082         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1083         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1084         gomp_places_list_len): New variables.
1085         (parse_bind_var, parse_one_place, parse_places_var): New functions.
1086         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
1087         sized places.
1088         (gomp_cancel_var): New global variable.
1089         (parse_int): New function.
1090         (handle_omp_display_env): New function.
1091         (initialize_env): Use it.  Initialize default_device_var.
1092         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
1093         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
1094         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
1095         been successfully parsed (and call gomp_init_affinity in that case).
1096         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1097         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1098         omp_get_team_num, omp_is_initial_device): New functions.
1099         * libgomp.h: Include stdlib.h.
1100         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
1101         Define.
1102         (struct target_mem_desc): Forward declare.
1103         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
1104         and thread_limit_var fields.
1105         (gomp_get_num_devices): New prototype.
1106         (gomp_cancel_var): New extern decl.
1107         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
1108         team_cancelled and task_queued_count fields.  Add comments about
1109         task_{,queued_,running_}count.
1110         (gomp_cancel_kind): New enum.
1111         (gomp_work_share_end_cancel): New prototype.
1112         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
1113         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
1114         and depend fields.
1115         (struct gomp_taskgroup): New type.
1116         (struct gomp_task_depend_entry,
1117         struct gomp_dependers_vec): New types.
1118         (gomp_finish_task): Free depend_hash if non-NULL.
1119         (struct gomp_team_state): Add place_partition_off
1120         and place_partition_len fields.
1121         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
1122         gomp_places_list_len): New extern decls.
1123         (struct gomp_thread): Add place field.
1124         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
1125         (gomp_init_thread_affinity): Add place argument.
1126         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1127         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1128         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1129         gomp_affinity_init_level, gomp_affinity_print_place): New
1130         prototypes.
1131         (gomp_team_start): Add flags argument.
1132         (gomp_thread_limit_var, gomp_remaining_threads_count,
1133         gomp_remaining_threads_lock): Remove.
1134         (gomp_managed_threads_lock): New variable.
1135         (struct gomp_thread_pool): Add threads_busy field.
1136         (gomp_free_thread): New prototype.
1137         * task.c: Include hashtab.h.
1138         (hash_entry_type): New typedef.
1139         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
1140         (gomp_init_task): Clear dependers, depend_hash, depend_count,
1141         copy_ctors_done and taskgroup fields.
1142         (GOMP_task): Add depend argument, handle depend clauses.  If
1143         gomp_team_barrier_cancelled or if it's taskgroup has been
1144         cancelled, don't queue or start new tasks.  Set copy_ctors_done
1145         field if needed.  Initialize taskgroup field.  If copy_ctors_done
1146         and already cancelled, don't discard the task.  If taskgroup is
1147         non-NULL, enqueue the task into taskgroup queue.  Increment
1148         num_children field in taskgroup.  Increment task_queued_count.
1149         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
1150         gomp_task_run_post_remove_taskgroup): New inline functions.
1151         (gomp_task_run_post_handle_depend_hash,
1152         gomp_task_run_post_handle_dependers,
1153         gomp_task_run_post_handle_depend): New functions.
1154         (GOMP_taskwait): Use them.  If more than one new tasks
1155         have been queued, wake other threads if needed.
1156         (gomp_barrier_handle_tasks): Likewise.  If
1157         gomp_team_barrier_cancelled, don't start any new tasks, just free
1158         all tasks.
1159         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
1160         * omp_lib.f90.in
1161         (omp_proc_bind_kind, omp_proc_bind_false,
1162         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1163         omp_proc_bind_spread): New params.
1164         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1165         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1166         omp_get_team_num, omp_is_initial_device): New interfaces.
1167         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
1168         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
1169         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
1170         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
1171         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
1172         useless use omp_lib_kinds.
1173         * omp.h.in (omp_proc_bind_t): New typedef.
1174         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1175         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1176         omp_get_team_num, omp_is_initial_device): New prototypes.
1177         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
1178         through to gomp_team_start.
1179         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
1180         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
1181         Adjust gomp_parallel_loop_start callers.
1182         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
1183         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
1184         GOMP_loop_end_cancel): New functions.
1185         (GOMP_parallel_end): Add ialias_redirect.
1186         * hashtab.h: New file.
1187         * libgomp.texi (Environment Variables): Minor cleanup,
1188         update section refs to OpenMP 4.0rc2.
1189         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
1190         environment variables.
1191         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
1192         team->work_shares_to_free to thr->ts.work_share before calling
1193         free_work_share.
1194         (gomp_work_share_end_cancel): New function.
1195         * config/linux/proc.c: Include errno.h.
1196         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
1197         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
1198         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
1199         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
1200         gomp_cpuset_size is sizeof (cpu_set_t).
1201         (gomp_init_num_threads): Initialize gomp_cpuset_size,
1202         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
1203         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
1204         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
1205         contain any logical CPUs.
1206         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
1207         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
1208         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
1209         pthread_getaffinity_np.  Check gomp_places_list instead of
1210         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
1211         * config/linux/bar.c (gomp_barrier_wait_end,
1212         gomp_barrier_wait_last): Use BAR_* defines.
1213         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
1214         from state where needed.  Set work_share_cancelled to 0 on last
1215         thread.
1216         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
1217         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
1218         functions.
1219         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
1220         Add cpusetsize argument.
1221         (gomp_cpuset_size, gomp_cpusetp): Declare.
1222         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
1223         (affinity_counter): Remove.
1224         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
1225         if CPU_ALLOC_SIZE isn't defined.
1226         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
1227         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
1228         bind current thread to the first place.
1229         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
1230         pthread_setaffinity_np to gomp_places_list[place].
1231         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1232         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1233         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1234         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
1235         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1236         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1237         (gomp_barrier_t): Add awaited_final field.
1238         (gomp_barrier_init): Initialize awaited_final field.
1239         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
1240         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
1241         prototypes.
1242         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
1243         defines.
1244         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
1245         gomp_team_barrier_cancelled): New inline functions.
1246         (gomp_barrier_last_thread,
1247         gomp_team_barrier_set_task_pending,
1248         gomp_team_barrier_clear_task_pending,
1249         gomp_team_barrier_set_waiting_for_tasks,
1250         gomp_team_barrier_waiting_for_tasks,
1251         gomp_team_barrier_done): Use BAR_* defines.
1252         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
1253         (gomp_barrier_wait_end): Use BAR_* defines.
1254         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
1255         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
1256         Use BAR_* defines.
1257         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
1258         gomp_team_barrier_cancel): New functions.
1259         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
1260         argument.
1261         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
1262         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
1263         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
1264         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
1265         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
1266         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
1267         (gomp_barrier_t): Add cancellable field.
1268         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
1269         gomp_team_barrier_cancel): New prototypes.
1270         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
1271         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
1272         gomp_team_barrier_cancelled): New inline functions.
1273         (gomp_barrier_wait_start, gomp_barrier_last_thread,
1274         gomp_team_barrier_set_task_pending,
1275         gomp_team_barrier_clear_task_pending,
1276         gomp_team_barrier_set_waiting_for_tasks,
1277         gomp_team_barrier_waiting_for_tasks,
1278         gomp_team_barrier_done): Use BAR_* defines.
1279         * barrier.c (GOMP_barrier_cancel): New function.
1280         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
1281         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
1282         omp_proc_bind_spread): New params.
1283         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
1284         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
1285         omp_get_team_num, omp_is_initial_device): New externals.
1286         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
1287         New functions.
1288         (gomp_resolve_num_threads): Adjust for thread_limit now being in
1289         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
1290         infinity.  If not nested, just return minimum of max_num_threads
1291         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
1292         to the returned value.  Otherwise, don't update atomically
1293         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
1294         (GOMP_parallel_end): Adjust for thread_limit now being in
1295         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
1296         infinity.  Adjust threads_busy in the pool rather than
1297         gomp_remaining_threads_count.  Remember team->nthreads and call
1298         gomp_team_end before adjusting threads_busy, if not nested
1299         afterwards, just set it to 1 non-atomically.  Add ialias.
1300         (GOMP_parallel_start): Adjust gomp_team_start caller.
1301         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
1302         * testsuite/libgomp.c/affinity-1.c: New test.
1303         * testsuite/libgomp.c/atomic-15.c: New test.
1304         * testsuite/libgomp.c/atomic-16.c: New test.
1305         * testsuite/libgomp.c/atomic-17.c: New test.
1306         * testsuite/libgomp.c/cancel-for-1.c: New test.
1307         * testsuite/libgomp.c/cancel-for-2.c: New test.
1308         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
1309         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
1310         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
1311         * testsuite/libgomp.c/cancel-sections-1.c: New test.
1312         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
1313         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
1314         * testsuite/libgomp.c/depend-1.c: New test.
1315         * testsuite/libgomp.c/depend-2.c: New test.
1316         * testsuite/libgomp.c/depend-3.c: New test.
1317         * testsuite/libgomp.c/depend-4.c: New test.
1318         * testsuite/libgomp.c/for-1.c: New test.
1319         * testsuite/libgomp.c/for-1.h: New file.
1320         * testsuite/libgomp.c/for-2.c: New test.
1321         * testsuite/libgomp.c/for-2.h: New file.
1322         * testsuite/libgomp.c/for-3.c: New test.
1323         * testsuite/libgomp.c/pr58392.c: New test.
1324         * testsuite/libgomp.c/simd-1.c: New test.
1325         * testsuite/libgomp.c/simd-2.c: New test.
1326         * testsuite/libgomp.c/simd-3.c: New test.
1327         * testsuite/libgomp.c/simd-4.c: New test.
1328         * testsuite/libgomp.c/simd-5.c: New test.
1329         * testsuite/libgomp.c/simd-6.c: New test.
1330         * testsuite/libgomp.c/target-1.c: New test.
1331         * testsuite/libgomp.c/target-2.c: New test.
1332         * testsuite/libgomp.c/target-3.c: New test.
1333         * testsuite/libgomp.c/target-4.c: New test.
1334         * testsuite/libgomp.c/target-5.c: New test.
1335         * testsuite/libgomp.c/target-6.c: New test.
1336         * testsuite/libgomp.c/target-7.c: New test.
1337         * testsuite/libgomp.c/taskgroup-1.c: New test.
1338         * testsuite/libgomp.c/thread-limit-1.c: New test.
1339         * testsuite/libgomp.c/thread-limit-2.c: New test.
1340         * testsuite/libgomp.c/thread-limit-3.c: New test.
1341         * testsuite/libgomp.c/udr-1.c: New test.
1342         * testsuite/libgomp.c/udr-2.c: New test.
1343         * testsuite/libgomp.c/udr-3.c: New test.
1344         * testsuite/libgomp.c++/affinity-1.C: New test.
1345         * testsuite/libgomp.c++/atomic-10.C: New test.
1346         * testsuite/libgomp.c++/atomic-11.C: New test.
1347         * testsuite/libgomp.c++/atomic-12.C: New test.
1348         * testsuite/libgomp.c++/atomic-13.C: New test.
1349         * testsuite/libgomp.c++/atomic-14.C: New test.
1350         * testsuite/libgomp.c++/atomic-15.C: New test.
1351         * testsuite/libgomp.c++/cancel-for-1.C: New test.
1352         * testsuite/libgomp.c++/cancel-for-2.C: New test.
1353         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
1354         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
1355         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
1356         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
1357         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
1358         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
1359         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
1360         * testsuite/libgomp.c++/cancel-test.h: New file.
1361         * testsuite/libgomp.c++/for-9.C: New test.
1362         * testsuite/libgomp.c++/for-10.C: New test.
1363         * testsuite/libgomp.c++/for-11.C: New test.
1364         * testsuite/libgomp.c++/simd-1.C: New test.
1365         * testsuite/libgomp.c++/simd-2.C: New test.
1366         * testsuite/libgomp.c++/simd-3.C: New test.
1367         * testsuite/libgomp.c++/simd-4.C: New test.
1368         * testsuite/libgomp.c++/simd-5.C: New test.
1369         * testsuite/libgomp.c++/simd-6.C: New test.
1370         * testsuite/libgomp.c++/simd-7.C: New test.
1371         * testsuite/libgomp.c++/simd-8.C: New test.
1372         * testsuite/libgomp.c++/target-1.C: New test.
1373         * testsuite/libgomp.c++/target-2.C: New test.
1374         * testsuite/libgomp.c++/target-2-aux.cc: New file.
1375         * testsuite/libgomp.c++/target-3.C: New test.
1376         * testsuite/libgomp.c++/taskgroup-1.C: New test.
1377         * testsuite/libgomp.c++/udr-1.C: New test.
1378         * testsuite/libgomp.c++/udr-2.C: New test.
1379         * testsuite/libgomp.c++/udr-3.C: New test.
1380         * testsuite/libgomp.c++/udr-4.C: New test.
1381         * testsuite/libgomp.c++/udr-5.C: New test.
1382         * testsuite/libgomp.c++/udr-6.C: New test.
1383         * testsuite/libgomp.c++/udr-7.C: New test.
1384         * testsuite/libgomp.c++/udr-8.C: New test.
1385         * testsuite/libgomp.c++/udr-9.C: New test.
1387 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
1389         PR testsuite/57605
1390         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
1391         ALWAYS_CFLAGS.
1393 2013-09-20  Alan Modra  <amodra@gmail.com>
1395         * configure: Regenerate.
1397 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
1399         * testsuite/libgomp.c/sections-2.c: New test.
1401 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1403         * testsuite/libgomp.fortran/strassen.f90:
1404         Add dg-skip-if aarch64_tiny.
1406 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
1407             Cesar Philippidis  <cesar@codesourcery.com>
1409         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
1410         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
1411         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
1412         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1413         * testsuite/libgomp.graphite/graphite.exp: Likewise.
1414         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
1415         Use dg-runtest rather than gfortran-dg-runtest.
1417 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1419         * testsuite/libgomp.c/icv-2.c: Extend current handling of
1420         Linux-based x86 systems to cover all GNU systems.
1421         * testsuite/libgomp.c/lock-3.c: Likewise.
1422         * testsuite/libgomp.c/pr48591.c: Likewise.
1424 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
1426         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
1427         GNU/Hurd, as done for Linux-based systems.
1429         * config/posix/ptrlock.h: Fix comment.
1431 2013-05-27  Tobias Burnus  <burnus@net-b.de>
1433         PR fortran/57423
1434         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
1435         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
1436         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
1437         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
1438         omp_destroy_nest_lock): Correct arguments to match the one in
1439         the OpenMP spec.
1440         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
1441         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
1442         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
1443         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
1445 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
1447         * testsuite/libgomp.c/loop-13.c: New test.
1448         * testsuite/libgomp.c/loop-14.c: New test.
1449         * testsuite/libgomp.c/loop-15.c: New test.
1450         * testsuite/libgomp.c++/loop-13.C: New test.
1451         * testsuite/libgomp.c++/loop-14.C: New test.
1452         * testsuite/libgomp.c++/loop-15.C: New test.
1454 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
1456         PR middle-end/56217
1457         * testsuite/libgomp.c++/pr56217.C: New test.
1459 2013-02-01  Alan Modra  <amodra@gmail.com>
1461         * task.c (GOMP_task, GOMP_taskwait): Comment.
1463 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
1464             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
1466         PR libgomp/55561
1467         * config/linux/wait.h (do_spin): Use atomic load for addr.
1468         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
1469         for intptr and ptrlock.
1470         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
1471         for ptrlock.
1473 2013-01-22  Alan Modra  <amodra@gmail.com>
1475         PR libgomp/51376
1476         PR libgomp/56073
1477         * task.c (GOMP_task): Revert 2011-12-09 change.
1478         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
1479         barrier to read task->children..
1480         (gomp_barrier_handle_tasks): ..and matching atomic store with
1481         release barrier here when setting parent->children to NULL.
1483 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
1484             Tobias Burnus  <burnus@net-b.de>
1486         PR driver/55884
1487         * testsuite/libgomp.fortran/fortran.exp: Use
1488         -fintrinsic-modules-path= instead of
1489         -fintrinsic-modules-path.
1491 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
1493         Update copyright years.
1495 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1497         * testsuite/libgomp.fortran/fortran.exp: Set
1498         -fintrinsic-modules-path.
1500 2012-12-19  Tobias Burnus  <burnus@net-b.de>
1502         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
1503         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
1505 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
1507         PR libgomp/55411
1508         * team.c (gomp_free_thread): Decrease gomp_managed_threads
1509         if pool had any threads_used.
1511 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
1513         * testsuite/libgomp.c++/pr24455.C: Use
1514         -Wl,-undefined,dynamic_lookup on darwin.
1516 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
1518         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
1520 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
1522         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
1524 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
1525             Jim MacArthur  <jim.macarthur@arm.com>
1526             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1527             Nigel Stephens  <nigel.stephens@arm.com>
1528             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1529             Richard Earnshaw  <rearnsha@arm.com>
1530             Sofiane Naci  <sofiane.naci@arm.com>
1531             Stephen Thomas  <stephen.thomas@arm.com>
1532             Tejas Belagod  <tejas.belagod@arm.com>
1533             Yufeng Zhang  <yufeng.zhang@arm.com>
1535         * configure.tgt: Add AArch64.
1537 2012-10-04  Jason Merrill  <jason@redhat.com>
1539         * testsuite/libgomp.c++/tls-init1.C: New.
1541 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
1543         * configure: Regenerated.
1545 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
1547         * config/linux/mips/futex.h (sys_futex0): Change to static
1548         function with noinline, nomips16 attributes under MIPS16. Adjust
1549         asm statement to place 'li v0,SYS_futex' immediately before
1550         syscall insn.
1552 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
1554         * libgomp.texi (Library Index): Renamed from "Index" to prevent
1555         conflict with index.html on case-insensitive file systems.
1557 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
1559         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
1560         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
1562 2012-07-02  Richard Guenther  <rguenther@suse.de>
1563             Michael Matz  <matz@suse.de>
1564             Tobias Grosser <tobias@grosser.es>
1565             Sebastian Pop <sebpop@gmail.com>
1567         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
1568         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
1569         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1570         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1572 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
1574         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
1576 2012-06-22  Richard Guenther  <rguenther@suse.de>
1578         Merge from graphite branch
1579         2012-01-13  Tobias Grosser  <tobias@grosser.es>
1581         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1582         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
1584 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
1586         PR middle-end/53580
1587         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
1588         use GOMP_barrier () call instead.
1589         * testsuite/libgomp.c/pr26943-3.c: Likewise.
1590         * testsuite/libgomp.c/pr26943-4.c: Likewise.
1591         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
1592         call GOMP_barrier instead.
1593         * testsuite/libgomp.fortran/vla5.f90: Likewise.
1595 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
1597         PR libgomp/52993
1598         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
1599         argument to memset call.
1601 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
1603         * configure: Regenerated.
1605 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1607         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
1609 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
1611         PR bootstrap/52812
1612         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
1614 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
1616         PR middle-end/52547
1617         * testsuite/libgomp.c/pr52547.c: New test.
1619 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1621         * testsuite/lib/libgomp.exp: load fortran-modules.exp
1623 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1625         * configure.tgt (mips-sgi-irix6*): Remove.
1627 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1629         * configure.tgt (alpha*-dec-osf*): Remove.
1631         * config/osf/sem.h: Remove.
1632         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
1634 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
1636         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
1638 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1640         PR libstdc++/52188
1641         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
1642         Remove ENABLE_SYMVERS_SOL2.
1643         * configure: Regenerate.
1644         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
1645         (PREPROCESS): New variable.
1646         (libgomp.ver): New target.
1647         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
1648         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
1649         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
1650         Use libgomp.ver.
1651         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
1652         * Makefile.in: Regenerate.
1654 2012-02-14  Walter Lee  <walt@tilera.com>
1656         * configure.tgt: Handle tilegx and tilepro.
1657         * config/linux/tile/futex.h: New file.
1659 2012-02-08  Richard Guenther  <rguenther@suse.de>
1661         PR tree-optimization/46886
1662         * testsuite/libgomp.c/pr46886.c: New testcase.
1664 2012-01-25  Matthias Klose  <doko@ubuntu.com>
1666         * config/linux/arm: Remove empty directory.
1667         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
1669 2011-12-09  Alan Modra  <amodra@gmail.com>
1671         PR libgomp/51376
1672         * task.c (GOMP_taskwait): Don't access task->children outside of
1673         task_lock mutex region.
1674         (GOMP_task): Likewise.
1676 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
1678         PR libgomp/51132
1679         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
1680         to file scope.
1681         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
1682         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
1683         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
1684         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
1685         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
1687 2011-12-02  Alan Modra  <amodra@gmail.com>
1689         * config/linux/affinity.c: Use atomic rather than sync builtin.
1690         * config/linux/lock.c: Likewise.
1691         * config/linux/ptrlock.h: Likewise.
1692         * config/linux/ptrlock.c: Likewise.
1693         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
1694         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
1695         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
1696         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
1697         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
1698         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
1699         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
1700         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
1701         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
1702         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
1704 2011-11-30  Alan Modra  <amodra@gmail.com>
1706         PR libgomp/51298
1707         * config/linux/bar.h: Use atomic rather than sync builtins.
1708         * config/linux/bar.c: Likewise.  Add missing acquire
1709         synchronisation on generation field.
1710         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
1711         double unlock.
1713 2011-11-30  Alan Modra  <amodra@gmail.com>
1715         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
1716         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
1717         * config/linux/mutex.h: Use atomic rather than sync builtins.
1718         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
1719         * config/linux/omp-lock.h: Comment fix.
1720         * config/linux/arm/mutex.h: Delete.
1721         * config/linux/powerpc/mutex.h: Delete.
1722         * config/linux/ia64/mutex.h: Delete.
1723         * config/linux/mips/mutex.h: Delete.
1725 2011-11-30  Alan Modra  <amodra@gmail.com>
1727         PR libgomp/51249
1728         * config/linux/sem.h: Rewrite.
1729         * config/linux/sem.c: Rewrite.
1731 2011-11-28  Richard Henderson  <rth@redhat.com>
1733         * libgomp.h (enum memmodel): New.
1735 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
1737         * configure: Regenerate.
1739 2011-10-10  Matthias Klose  <doko@ubuntu.com>
1741         * config/posix95: Remove empty directory.
1743 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1745         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
1747 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
1749         PR fortran/49792
1750         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
1751         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
1753 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1755         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
1757 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1759         PR libgomp/49965
1760         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
1762 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
1764         * config/linux/proc.h: New.
1765         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
1766         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
1767         (gomp_init_num_threads): Update call to cpuset_popcount.
1768         (get_num_procs): Ditto.
1769         * config/linux/affinity.c (gomp_init_affinity): Call
1770         gomp_cpuset_popcount.
1772 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
1774         PR fortran/42041
1775         PR fortran/46752
1776         * omp.h.in (omp_in_final): New prototype.
1777         * omp_lib.f90.in (omp_in_final): New interface.
1778         (omp_integer_kind, omp_logical_kind): Remove
1779         and replace all its uses in the module with 4.
1780         (openmp_version): Change to 201107.
1781         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
1782         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
1783         kind for the parameters.
1784         (omp_in_final): New external.
1785         (openmp_version): Change to 201107.
1786         * task.c (omp_in_final): New function.
1787         (gomp_init_task): Initialize final_task.
1788         (GOMP_task): Remove unused attribute from flags.  Handle final
1789         tasks.
1790         (GOMP_taskyield): New function.
1791         (omp_in_final): Return true if if (false) or final (true) task
1792         or descendant of final (true).
1793         * fortran.c (omp_in_final_): New function.
1794         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
1795         (GOMP_3.0): Export GOMP_taskyield.
1796         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
1797         variables.
1798         (parse_unsigned_long_list): New function.
1799         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
1800         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
1801         even if parse_affinity returned false.
1802         * config/linux/affinity.c (gomp_init_affinity): Handle
1803         gomp_cpu_affinity_len == 0.
1804         * libgomp_g.h (GOMP_taskyield): New prototype.
1805         * libgomp.h (struct gomp_task): Add final_task field.
1806         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
1807         * team.c (gomp_team_start): Override new task's nthreads_var icv
1808         if list form OMP_NUM_THREADS has been used and it has value for
1809         the new nesting level.
1811         * testsuite/libgomp.c/atomic-11.c: New test.
1812         * testsuite/libgomp.c/atomic-12.c: New test.
1813         * testsuite/libgomp.c/atomic-13.c: New test.
1814         * testsuite/libgomp.c/atomic-14.c: New test.
1815         * testsuite/libgomp.c/reduction-6.c: New test.
1816         * testsuite/libgomp.c/task-5.c: New test.
1817         * testsuite/libgomp.c++/atomic-2.C: New test.
1818         * testsuite/libgomp.c++/atomic-3.C: New test.
1819         * testsuite/libgomp.c++/atomic-4.C: New test.
1820         * testsuite/libgomp.c++/atomic-5.C: New test.
1821         * testsuite/libgomp.c++/atomic-6.C: New test.
1822         * testsuite/libgomp.c++/atomic-7.C: New test.
1823         * testsuite/libgomp.c++/atomic-8.C: New test.
1824         * testsuite/libgomp.c++/atomic-9.C: New test.
1825         * testsuite/libgomp.c++/task-8.C: New test.
1826         * testsuite/libgomp.c++/reduction-4.C: New test.
1827         * testsuite/libgomp.fortran/allocatable7.f90: New test.
1828         * testsuite/libgomp.fortran/allocatable8.f90: New test.
1829         * testsuite/libgomp.fortran/crayptr3.f90: New test.
1830         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
1831         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
1832         * testsuite/libgomp.fortran/pointer1.f90: New test.
1833         * testsuite/libgomp.fortran/pointer2.f90: New test.
1834         * testsuite/libgomp.fortran/task4.f90: New test.
1836 2011-08-02  Tobias Burnus  <burnus@net-b.de>
1838         * libgomp.texi: Update OpenMP spec references to 3.1.
1839         (omp_in_final,OMP_PROC_BIND): New sections.
1840         (OMP_NUM_THREADS): Document that the value can be now a list.
1841         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1843 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1845         * config/linux/x86/futex.h: Check __x86_64__ instead of
1846         __LP64__.
1848 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1850         PR middle-end/49897
1851         PR middle-end/49898
1852         * testsuite/libgomp.c/pr49897-1.c: New test.
1853         * testsuite/libgomp.c/pr49897-2.c: New test.
1854         * testsuite/libgomp.c/pr49898-1.c: New test.
1855         * testsuite/libgomp.c/pr49898-2.c: New test.
1857 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1859         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1860         for ia32 instead of ilp32.
1862         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1863         * testsuite/libgomp.c/atomic-6.c: Likewise.
1865 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
1867         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1868         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1870 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1872         PR libgomp/45351
1873         * config/osf/sem.h: New file.
1874         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1876 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1878         PR target/49541
1879         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1880         ldflags.
1882 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
1884         * config/linux/wait.h (do_spin): New inline, largely copied
1885         from do_wait, just don't do futex_wait here, instead return true if
1886         it should be done.
1887         (do_wait): Implement using do_spin.
1888         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1889         to prototype.
1890         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1891         __sync_bool_compare_and_swap, pass the oldval to
1892         gomp_mutex_lock_slow.
1893         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1894         If all mutex contenders are just spinning and not sleeping, don't
1895         change state to 2 unnecessarily.  Optimize the loop when state has
1896         already become 2 to use just one atomic operation per loop instead
1897         of two.
1898         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1899         to prototype.
1900         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1901         __sync_bool_compare_and_swap, pass the oldval to
1902         gomp_mutex_lock_slow.
1904 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1906         PR libgomp/49490
1907         * iter.c (gomp_iter_static_next): For chunk size 0
1908         only use n ceil/ nthreads size for the first
1909         n % nthreads threads in the team instead of
1910         all threads except for the last few ones which
1911         get less work or none at all.
1912         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1913         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1914         chunk argument, set run_sched_modifier to 0 for static
1915         resp. 1 for other kinds.  If chunk argument is 0
1916         and not static, set value to 1.
1918 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1920         PR c++/49043
1921         * testsuite/libgomp.c++/pr49043.C: New test.
1923         PR c++/48869
1924         * testsuite/libgomp.c++/pr48869.C: New test.
1926 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1928         PR fortran/48894
1929         * fortran.c: Include limits.h.
1930         (TO_INT): Define.
1931         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1932         *set.
1933         (omp_set_num_threads_8_, omp_set_schedule_8_,
1934         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1935         omp_get_team_size_8_): Use TO_INT macro.
1936         * testsuite/libgomp.fortran/pr48894.f90: New test.
1938 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1940         PR middle-end/48591
1941         * testsuite/libgomp.c/pr48591.c: New test.
1943 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1945         PR bootstrap/48135
1946         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1947         * configure: Regenerate.
1949 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1951         PR fortran/47886
1952         * testsuite/libgomp.fortran/task3.f90: New test.
1954 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1956         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1958 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1960         PR libgomp/47854
1961         * libgomp.texi (omp_get_wtime): Don't say time in the past
1962         must be Unix Epoch.
1964 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1966         PR libgomp/47804
1967         * testsuite/libgomp.fortran/fortran.exp: Check for both
1968         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1969         but $blddir != "", still append ${blddir}/${lang_library_path}
1970         to ld_library_path.
1972 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1974         PR libgomp/47758
1975         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1976         of libquadmath.a before adding its libpath to ldflags.
1978 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1980         PR libgomp/47731
1981         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1982         to FUTEX_WAIT futex syscall.
1983         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1985 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1987         * configure: Regenerate.
1989 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1991         PR libstdc++/36104
1992         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1994 2011-01-16  Gerald Pfeifer
1996         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1998 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
2000         PR fortran/46874
2001         * libgomp.fortran/allocatable6.f90: New test.
2003 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2005         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
2006         * configure: Regenerate.
2008 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
2010         PR target/40125
2011         PR lto/46695
2012         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
2013         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
2014         * aclocal.m4: Regenerate.
2015         * configure: Regenerate.
2016         * Makefile.in: Regenerate.
2017         * testsuite/Makefile.in: Regenerate.
2019 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
2021         PR fortran/46753
2022         * libgomp.fortran/pr46753.f90: New test.
2024         PR libgomp/43706
2025         * env.c (initialize_env): Default to spin count 300000
2026         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
2027         is specified.
2029         PR libgomp/45240
2030         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
2031         at the end if sync builtins aren't supported.
2033 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2035         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
2037 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2039         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
2041 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
2043         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
2045 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2046             Tobias Burnus  <burnus@net-b.de>
2048         PR fortran/32049
2049         * configure.ac:
2050         * configure: Regenerate.
2052 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
2054         * config/linux/futex.h: New.
2055         * config/linux/arm/mutex.h: New.
2056         * configure.tgt (arm*-*-linux*): Add config path.
2058 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2060         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2062 2010-09-23  Tobias Burnus  <burnus@net-b.de>
2064         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
2065         Change Fortran datatype to LOGICAL.
2066         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
2067         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
2069 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2071         * configure: Regenerate.
2073 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
2075         * libgomp.texi: Add function keyword to a couple of Fortran
2076         interfaces, use integer instead of int for Fortran.
2078 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
2080         * libgomp.texi: Fix spelling and pasto problems throughout.
2081         Adjust prototypes to match code.
2083 2010-07-24  Tobias Burnus  <burnus@net-b.de>
2085         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
2086         silence -fwhole-file warning.
2088 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2090         * configure.tgt (*-*-solaris2.[56]*): Removed.
2092 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2094         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
2095         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
2096         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
2097         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
2098         targetting solaris2*.
2099         * configure: Regenerate.
2100         * config.h.in: Regenerate.
2102         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
2103         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
2104         Add libgomp_version_dep.
2105         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
2106         versioning.
2107         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
2108         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
2109         * Makefile.in: Regenerate.
2111         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
2112         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2113         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
2114         to common block, protected by
2115         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
2117 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
2119         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
2121 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
2123         PR bootstrap/43170
2124         * configure: Regenerate.
2126 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2128         PR other/43620
2129         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
2130         * configure: Regenerate.
2131         * Makefile.in: Regenerate.
2132         * testsuite/Makefile.in: Regenerate.
2134 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
2136         PR c/43893
2137         * testsuite/libgomp.c/pr43893.c: New test.
2138         * testsuite/libgomp.c++/pr43893.C: New test.
2140 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
2142         PR middle-end/43570
2143         * testsuite/libgomp.fortran/vla8.f90: New test.
2145 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
2147         PR libgomp/43706
2148         * config/linux/affinity.c (gomp_init_affinity): Decrease
2149         gomp_available_cpus if affinity mask confines the process to fewer
2150         CPUs.
2151         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
2152         non-NULL, just return gomp_available_cpus.
2154         PR libgomp/43569
2155         * sections.c (gomp_sections_init): Initialize ws->mode.
2157 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
2159         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
2160         not unused bar variable.
2161         * configure: Regenerate.
2163 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2165         * Makefile.in: Regenerate.
2166         * aclocal.m4: Regenerate.
2167         * testsuite/Makefile.in: Regenerate.
2169 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
2171         PR libgomp/42942
2172         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
2173         (initialize_env): Adjust callers.
2174         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
2175         when the argument is 0.
2177         * testsuite/libgomp.c/pr42942.c: New test.
2179 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
2181         PR middle-end/42644
2182         PR middle-end/42130
2183         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
2184         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
2186 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2188         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
2189         * testsuite/libgomp.c++/task-6.C: Likewise.
2191 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
2193         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
2195 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
2197         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
2198         * configure: Regenerate.
2200 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
2202         PR fortran/42866
2203         * testsuite/libgomp.fortran/allocatable5.f90: New test.
2205 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
2207         * configure.ac: Test for executability of GFORTRAN.
2208         * configure: Regenerate.
2210 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2212         * configure: Regenerate.
2214 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
2216         PR libgomp/42602
2217         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
2219 2010-01-03  Richard Guenther  <rguenther@suse.de>
2221         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
2223 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
2225         * testsuite/libgomp.graphite/pr4118.c: New.
2227 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2229         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
2230         for darwin, protect the test with require-effective-target tls_runtime.
2231         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
2233 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2235         PR target/41605
2236         * testsuite/lib/libgomp.exp: Provide -B options to allow for
2237         link spec %s substitutions for static libraries.
2239 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
2241         PR testsuite/42135
2242         * libgomp.graphite/force-parallel-2.c: Reduce array size.
2244 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2246         * Makefile.in: Regenerate.
2247         * configure: Regenerate.
2248         * testsuite/Makefile.in: Regenerate.
2250 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2252         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
2253         settings for LC_ALL and LANG.
2255 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
2257         PR fortran/42162
2258         * testsuite/libgomp.fortran/pr42162.f90: New test.
2260 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
2262         PR middle-end/42029
2263         * testsuite/libgomp.c/pr42029.c: New test.
2265 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
2267         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
2268         *s.  Accept ld version without text in ()s.
2269         * configure: Regenerated.
2271 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
2273         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
2275 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2277         PR libgomp/41418
2278         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
2279         or a hyphen (happens with fortran language disabled).
2280         * configure: Regenerate.
2282 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2284         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
2285         use sed script portable to Solaris /bin/sed for extracting ld
2286         version.
2287         * configure: Regenerate.
2289 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
2291         * testsuite/libgomp.graphite/bounds.c: New test.
2293 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2295         * Makefile.am (libgomp_la_LINK): New.
2296         * Makefile.in: Regenerate.
2298 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2300         * configure.ac (AC_PREREQ): Bump to 2.64.
2302 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2304         * Makefile.am (install-html, install-pdf): Remove.
2305         * Makefile.in: Regenerate.
2307         * Makefile.in: Regenerate.
2308         * aclocal.m4: Regenerate.
2309         * config.h.in: Regenerate.
2310         * configure: Regenerate.
2311         * testsuite/Makefile.in: Regenerate.
2313 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2315         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
2316         * Makefile.in: Regenerate.
2318 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
2320         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
2321         * Makefile.in: Regenerate.
2323 2009-08-19  Tobias Burnus  <burnus@net-b.de>
2325         PR fortran/41102
2326         omp_lib.h.in: Fix -std=f95 errors.
2329 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
2331         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
2332         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
2333         * testsuite/libgomp.graphite/graphite.exp: New.
2335 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
2337         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
2338         only build.
2340 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
2342         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
2343         needed memory barrier semantics.
2344         * config/linux/mips/mutex.h: New file.
2346 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2348         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
2350 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
2352         * configure: Regenerate.
2354 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
2356         PR testsuite/40699
2357         PR testsuite/40707
2358         PR testsuite/40709
2359         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
2360         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
2361         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
2363 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2365         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
2366         options when choosing a multilib.
2368 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
2370         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
2371         ld_library_path.  Use add_path.  Add just find_libgcc_s to
2372         ld_library_path, not every libgcc multilib directory.
2373         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
2374         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
2375         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
2376         Use add_path.
2377         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
2379 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
2381         * Makefile.am (LTLDFLAGS): Define.
2382         (LINK): Define.
2383         * Makefile.in: Regenerate.
2385 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
2387         PR fortran/39718
2388         * testsuite/libgomp.fortran/fortran.exp: Don't link with
2389         libgfortranbegin, check existence of libgfortran.a instead of
2390         libgfortranbegin.a.
2392 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
2394         PR libgomp/40174
2395         * team.c (gomp_thread_start): Destroy thr->release semaphore.
2396         (gomp_free_pool_helper): Likewise.
2398 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
2399             Jakub Jelinek  <jakub@redhat.com>
2401         PR fortran/35423
2402         * testsuite/libgomp.fortran/workshare2.f90: New test.
2404 2009-04-09  Nick Clifton  <nickc@redhat.com>
2406         * iter.c: Change copyright header to refer to version 3 of the
2407         GNU General Public License with version 3.1 of the GCC Runtime
2408         Library Exception and to point readers at the COPYING3 and
2409         COPYING3.RUNTIME files and the FSF's license web page.
2410         * alloc.c: Likewise.
2411         * barrier.c: Likewise.
2412         * config/bsd/proc.c: Likewise.
2413         * config/linux/affinity.c: Likewise.
2414         * config/linux/alpha/futex.h: Likewise.
2415         * config/linux/bar.c: Likewise.
2416         * config/linux/bar.h: Likewise.
2417         * config/linux/ia64/futex.h: Likewise.
2418         * config/linux/ia64/mutex.h: Likewise.
2419         * config/linux/lock.c: Likewise.
2420         * config/linux/mips/futex.h: Likewise.
2421         * config/linux/mutex.c: Likewise.
2422         * config/linux/mutex.h: Likewise.
2423         * config/linux/powerpc/futex.h: Likewise.
2424         * config/linux/proc.c: Likewise.
2425         * config/linux/ptrlock.c: Likewise.
2426         * config/linux/ptrlock.h: Likewise.
2427         * config/linux/s390/futex.h: Likewise.
2428         * config/linux/sem.c: Likewise.
2429         * config/linux/sem.h: Likewise.
2430         * config/linux/sparc/futex.h: Likewise.
2431         * config/linux/wait.h: Likewise.
2432         * config/linux/x86/futex.h: Likewise.
2433         * config/mingw32/proc.c: Likewise.
2434         * config/mingw32/time.c: Likewise.
2435         * config/posix/affinity.c: Likewise.
2436         * config/posix/bar.c: Likewise.
2437         * config/posix/bar.h: Likewise.
2438         * config/posix/lock.c: Likewise.
2439         * config/posix/mutex.h: Likewise.
2440         * config/posix/proc.c: Likewise.
2441         * config/posix/ptrlock.h: Likewise.
2442         * config/posix/sem.c: Likewise.
2443         * config/posix/sem.h: Likewise.
2444         * config/posix/time.c: Likewise.
2445         * config/posix95/lock.c: Likewise.
2446         * critical.c: Likewise.
2447         * env.c: Likewise.
2448         * error.c: Likewise.
2449         * fortran.c: Likewise.
2450         * iter_ull.c: Likewise.
2451         * libgomp.h: Likewise.
2452         * libgomp_f.h.in: Likewise.
2453         * libgomp_g.h: Likewise.
2454         * loop.c: Likewise.
2455         * loop_ull.c: Likewise.
2456         * omp.h.in: Likewise.
2457         * omp_lib.f90.in: Likewise.
2458         * omp_lib.h.in: Likewise.
2459         * ordered.c: Likewise.
2460         * parallel.c: Likewise.
2461         * sections.c: Likewise.
2462         * single.c: Likewise.
2463         * task.c: Likewise.
2464         * team.c: Likewise.
2465         * work.c: Likewise.
2467 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
2469         * testsuite/config/default.exp: Change copyright header to refer to
2470         version 3 of the GNU General Public License and to point readers
2471         at the COPYING3 file and the FSF's license web page.
2473 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
2475         PR middle-end/39573
2476         * libgomp.c++/pr39573.C: New test.
2478 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
2480         PR other/39591
2481         * testsuite/libgomp.c/pr39591-1.c: New test.
2482         * testsuite/libgomp.c/pr39591-2.c: New test.
2483         * testsuite/libgomp.c/pr39591-3.c: New test.
2485 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
2487         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
2488         * testsuite/libgomp.c/atomic-6.c: Ditto.
2490 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
2492         PR c/39495
2493         * testsuite/libgomp.c/loop-12.c: New test.
2494         * testsuite/libgomp.c/loop-11.c: New test.
2495         * testsuite/libgomp.c++/loop-11.C: New test.
2496         * testsuite/libgomp.c++/loop-12.C: New test.
2497         * testsuite/libgomp.c++/for-8.C: New test.
2499 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2501         * configure: Regenerate.
2503 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
2505         PR middle-end/39154
2506         * testsuite/libgomp.c/pr39154.c: New test.
2508 2009-01-30  Ian Lance Taylor  <iant@google.com>
2510         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
2511         libgomp_ld_is_gold.  Get gold version number.
2512         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
2513         * configure: Rebuild.
2515 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
2517         * testsuite/lib/libgomp.exp: Add -B option for targets that
2518         use libgfortran.a%s in their specs.
2520 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
2522         PR libgomp/38086
2523         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
2524         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
2525         HAVE_AS_SYMVER_DIRECTIVE is not defined.
2526         * configure: Regenerated.
2527         * config.h.in: Likewise.
2529 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
2531         PR c++/38650
2532         * testsuite/libgomp.c/pr38650.c: New test.
2533         * testsuite/libgomp.c++/pr38650.C: New test.
2535 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
2537         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
2539 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
2541         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
2543 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2545         * configure: Regenerate.
2547 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
2549         PR middle-end/36802
2550         * testsuite/libgomp.c/pr36802-1.c: New test.
2551         * testsuite/libgomp.c/pr36802-2.c: New test.
2552         * testsuite/libgomp.c/pr36802-3.c: New test.
2554 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
2556         PR libgomp/38270
2557         * config/linux/powerpc/mutex.h: New.
2559 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
2561         PR c++/38257
2562         * testsuite/libgomp.c++/for-7.C: New test.
2564         PR c++/38348
2565         * testsuite/libgomp.c++/for-6.C: New test.
2567 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
2569         PR testsuite/28870
2570         * testsuite/lib/libgomp.exp: Include new timeout library files.
2571         (libgomp_target_compile): Set timeout value from new proc.
2573 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
2575         PR libgomp/37938
2576         * config/linux/ia64/mutex.h: New.
2578 2008-11-04  Tobias Burnus  <burnus@net-b.de>
2580         PR libgomp/37935
2581         * libgomp.texi (Runtime library routines, environment variables):
2582         Update for OpenMP version 3.0.
2584 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
2585             Steve Ellcey  <sje@cup.hp.com>
2587         * configure: Regenerate for new libtool.
2588         * Makefile.in: Ditto.
2589         * testsuite/Makefile.in: Ditto.
2591 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
2592             Andreas Tobler  <a.tobler@schweiz.org>
2594         * config/bsd/proc.c: New file.
2595         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
2596         * configure.ac: Check for header <sys/sysctl.h>
2597         * configure: Regenerate.
2598         * config.h.in: Likewise.
2600 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
2602         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
2604 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2606         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
2607         * Makefile.in: Regenerated.
2608         * testsuite/Makefile.in: Regenerated.
2610 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
2612         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
2613         depend on blddir if blddir exists.
2614         (libgomp_target_compile): Likewise.
2615         * testsuite/libgomp.c++/c++.exp: Likewise.
2616         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2618 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2620         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
2621         Do not list GPL as Invariant Section.
2623 2008-07-28  Ilie Garbacea  <ilie@mips.com>
2624             Chao-ying Fu  <fu@mips.com>
2626         * configure.tgt: Enable futex for MIPS.
2627         * config/linux/mips/futex.h: New file.
2629 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
2631         * team.c (gomp_team_end): Free team immediately if it has
2632         just one thread.
2634 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
2636         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
2637         * testsuite/libgomp.fortran/fortran.exp: Same.
2638         * testsuite/libgomp.c/c.exp: Same.
2639         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
2640         directory to library path first.
2642 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
2644         * env.c (parse_stacksize): Add cast to avoid warning.
2645         (parse_spincount): Likewise.
2647 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
2649         * testsuite/libgomp.c/loop-10.c: New test.
2650         * libgomp.c/loop-3.c (main): Add lastprivate clause.
2651         * libgomp.c++/loop-6.C (main): Likewise.
2653         PR debug/36617
2654         * testsuite/libgomp.c/debug-1.c: New test.
2656 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
2658         * testsuite/libgomp.c/nqueens-1.c: New test.
2660         PR c++/36523
2661         * testsuite/libgomp.c++/task-7.C: New function.
2663 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2665         * configure: Regenerate.
2667 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2669         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
2670         mutex when HAVE_SYNC_BUILTINS isn't defined.
2672 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2674         * libgomp.texi (omp_test_lock): Fix typo.
2676 2008-06-12  Tobias Burnus  <burnus@net-b.de>
2678         * omp_lib.f90.in: Add "implicit none".
2680 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
2682         PR middle-end/36506
2683         * testsuite/libgomp.c/reduction-5.c: New test.
2685 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
2687         * libgomp.h (struct gomp_task): Add in_tied_task field.
2688         * task.c (gomp_init_task): Initialize it.
2689         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
2690         unconditionally.  Don't call gomp_team_barrier_wake if
2691         current task is implicit or if(0) from implicit and number of
2692         running tasks is equal to nthreads - 1.
2694         PR libgomp/36471
2695         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
2696         omp_get_team_size_8): Fix pastos.
2698         PR libgomp/36469
2699         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
2700         * configure: Regenerated.
2701         * config.h.in: Regenerated.
2702         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
2703         defined.
2705 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
2707         PR bootstrap/36452
2708         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
2709         (GOMP_loop_ull_dynamic_start): Likewise.
2710         (GOMP_loop_ull_guided_start): Likewise.
2711         (GOMP_loop_ull_ordered_static_start): Likewise.
2712         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
2713         (GOMP_loop_ull_ordered_guided_start): Likewise.
2715 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2716             Richard Henderson  <rth@redhat.com>
2717             Ulrich Drepper  <drepper@redhat.com>
2718             Jakob Blomer  <jakob.blomer@ira.uka.de>
2720         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
2721         Substitute also OMP_*LOCK_25*.
2722         * configure: Regenerated.
2723         * config.h.in: Regenerated.
2724         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
2725         ptrlock.c and task.c.
2726         * Makefile.in: Regenerated.
2727         * testsuite/Makefile.in: Regenerated.
2728         * task.c: New file.
2729         * loop_ull.c: New file.
2730         * iter_ull.c: New file.
2731         * libgomp.h: Include ptrlock.h.
2732         (enum gomp_task_kind): New type.
2733         (struct gomp_team): Add task_lock, task_queue, task_count,
2734         task_running_count, single_count fields.  Add
2735         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
2736         Remove work_share_lock, generation_mask,
2737         oldest_live_gen, num_live_gen and init_work_shares fields, add
2738         work work_share_list_alloc, work_share_list_free and work_share_chunk
2739         fields.  Change work_shares from pointer to pointers into an array.
2740         Change ordered_release field into gomp_sem_t ** from flexible array
2741         member.  Add implicit_task and initial_work_shares fields.
2742         Move close to the end of the struct.
2743         (struct gomp_team_state): Add single_count, last_work_share,
2744         active_level and level fields, remove work_share_generation.
2745         (gomp_barrier_handle_tasks): New prototype.
2746         (gomp_finish_task): New inline function.
2747         (struct gomp_work_share): Move chunk_size, end, incr into
2748         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
2749         next_ll fields.  Reshuffle fields.  Add next_alloc,
2750         next_ws, next_free and inline_ordered_team_ids fields, change
2751         ordered_team_ids into pointer from flexible array member.
2752         Add mode field.  Put lock and next into a different cache line
2753         from most of the write-once fields.
2754         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
2755         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
2756         gomp_iter_ull_guided_next): New prototypes.
2757         (gomp_new_icv): New prototype.
2758         (struct gomp_thread): Add thread_pool and task fields.
2759         (struct gomp_thread_pool): New type.
2760         (gomp_new_team): New prototype.
2761         (gomp_team_start): Change type of last argument.
2762         (gomp_new_work_share): Removed.
2763         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
2764         (gomp_work_share_init_done): New static inline.
2765         (gomp_throttled_spin_count_var, gomp_available_cpus,
2766         gomp_managed_threads): New extern decls.
2767         (gomp_init_task): New prototype.
2768         (gomp_spin_count_var): New extern var decl.
2769         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
2770         or no alias support, or if not PIC.
2771         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
2772         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
2773         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
2774         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
2775         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
2776         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
2777         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
2778         gomp_test_nest_lock_25): New prototypes.
2779         (omp_lock_symver, strong_alias): Define.
2780         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
2781         decls.
2782         (gomp_end_task): New.
2783         (struct gomp_task_icv, gomp_global_icv): New.
2784         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
2785         (struct gomp_task): New.
2786         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2787         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2788         (gomp_icv): New.
2789         (gomp_schedule_type): Reorder enum to match
2790         omp_sched_t.
2791         * team.c (struct gomp_thread_start_data): Add thread_pool and task
2792         fields.
2793         (gomp_thread_start): Add gomp_team_barrier_wait call.
2794         For non-nested case remove clearing of docked thread thr fields.
2795         Use pool fields instead of global gomp_* variables.  Use
2796         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
2797         Create tasks for each member thread.
2798         (free_team): Only destroy team barrier, task_lock here and free it.
2799         (gomp_free_thread): Free last_team if non-NULL.
2800         (gomp_team_end): Call gomp_team_barrier_wait instead of
2801         gomp_barrier_wait.  For nested case call one extra
2802         gomp_barrier_wait.  Move here some destruction from free_team.
2803         Call free_team on pool->last_team if any, rather than freeing
2804         current team.  Destroy work_share_list_free_lock ifndef
2805         HAVE_SYNC_BUILTINS.
2806         (gomp_new_icv): New function.
2807         (gomp_threads, gomp_threads_size, gomp_threads_used,
2808         gomp_threads_dock): Removed.
2809         (gomp_thread_destructor): New variable.
2810         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
2811         functions.
2812         (gomp_team_start): Create new pool if current thread doesn't have
2813         one.  Use pool fields instead of global gomp_* variables.
2814         Initialize thread_pool field for new threads.  Clear single_count.
2815         Change last argument from ws to team, don't create
2816         new team, set ts.work_share to &team->work_shares[0] and clear
2817         ts.last_work_share.  Don't clear ts.work_share_generation.
2818         If number of threads changed, adjust atomically gomp_managed_threads.
2819         Use gomp_init_task instead of gomp_new_task,
2820         set thr->task to the corresponding implicit_task array entry.
2821         Create tasks for each member thread.  Initialize ts.level.
2822         (initialize_team): Call pthread_key_create on
2823         gomp_thread_destructor.
2824         (team_destructor): New function.
2825         (new_team): Removed.
2826         (gomp_new_team): New function.
2827         (free_team): Free gomp_work_share blocks chained through next_alloc,
2828         instead of freeing work_shares and destroying work_share_lock.
2829         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
2830         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
2831         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
2832         of gomp_barrier_wait.
2833         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
2834         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
2835         if gomp_work_share_start returned true.  Don't unlock ws->lock.
2836         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
2837         of gomp_barrier_wait.
2838         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
2839         gomp_work_share_init_done if gomp_work_share_start returned true.
2840         Don't unlock ws->lock.
2841         * work.c: Include stddef.h.
2842         (free_work_share): Use work_share_list_free_lock instead
2843         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
2844         Call gomp_fini_work_share and then either free ws if orphaned, or
2845         put it into work_share_list_free list of the current team.
2846         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2847         functions.
2848         (gomp_work_share_start, gomp_work_share_end,
2849         gomp_work_share_end_nowait): Rewritten.
2850         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2851         (openmp_version): Set to 200805.
2852         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2853         omp_sched_guided, omp_sched_auto): New parameters.
2854         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2855         omp_set_max_active_levels, omp_get_max_active_levels,
2856         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2857         omp_get_active_level): New interfaces.
2858         * omp_lib.h.in (openmp_version): Set to 200805.
2859         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2860         omp_sched_guided, omp_sched_auto): New parameters.
2861         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2862         omp_set_max_active_levels, omp_get_max_active_levels,
2863         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2864         omp_get_active_level): New externals.
2865         * loop.c: Include limits.h.
2866         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2867         GFS_AUTO.
2868         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2869         Likewise.  Use gomp_icv.
2870         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2871         ts.static_trip here.
2872         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2873         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
2874         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2875         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
2876         don't unlock ws->lock, otherwise lock it.
2877         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2878         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
2879         (gomp_parallel_loop_start): Call gomp_new_team instead of
2880         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
2881         Adjust gomp_team_start caller.  Pass 0 as second argument to
2882         gomp_resolve_num_threads.
2883         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2884         If adding ws->chunk_size nthreads + 1 times after end won't
2885         overflow, set ws->mode to 1.
2886         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2887         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2888         GOMP_loop_ull_ordered_static_start,
2889         GOMP_loop_ull_ordered_dynamic_start,
2890         GOMP_loop_ull_ordered_guided_start,
2891         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2892         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2893         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2894         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2895         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2896         prototypes.
2897         * libgomp.map: Export lock routines also @@OMP_2.0.
2898         (GOMP_loop_ordered_dynamic_first,
2899         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2900         GOMP_loop_ordered_static_first): Remove.
2901         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2902         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2903         GOMP_loop_ull_ordered_dynamic_next,
2904         GOMP_loop_ull_ordered_dynamic_start,
2905         GOMP_loop_ull_ordered_guided_next,
2906         GOMP_loop_ull_ordered_guided_start,
2907         GOMP_loop_ull_ordered_runtime_next,
2908         GOMP_loop_ull_ordered_runtime_start,
2909         GOMP_loop_ull_ordered_static_next,
2910         GOMP_loop_ull_ordered_static_start,
2911         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2912         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2913         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2914         (omp_set_schedule, omp_get_schedule,
2915         omp_get_thread_limit, omp_set_max_active_levels,
2916         omp_get_max_active_levels, omp_get_level,
2917         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2918         omp_set_schedule_, omp_set_schedule_8_,
2919         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2920         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2921         omp_get_max_active_levels_, omp_get_level_,
2922         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2923         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2924         New exports @@OMP_3.0.
2925         * omp.h.in (omp_sched_t): New type.
2926         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2927         omp_set_max_active_levels, omp_get_max_active_levels,
2928         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2929         omp_get_active_level): New prototypes.
2930         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2931         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2932         gomp_thread_limit_var, gomp_remaining_threads_count,
2933         gomp_remaining_threads_lock): New variables.
2934         (parse_spincount): New function.
2935         (initialize_env): Call gomp_init_num_threads unconditionally.
2936         Initialize gomp_available_cpus.  Call parse_spincount,
2937         initialize gomp_{,throttled_}spin_count_var
2938         depending on presence and value of OMP_WAIT_POLICY and
2939         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
2940         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2941         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
2942         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
2943         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
2944         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2945         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2946         (gomp_global_icv): New.
2947         (parse_schedule): Use it.  Parse "auto".
2948         (omp_set_num_threads): Use gomp_icv.
2949         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2950         Likewise.
2951         (omp_get_max_threads): Move from parallel.c.
2952         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2953         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2954         add ialias.
2955         (parse_stacksize, parse_wait_policy): New functions.
2956         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2957         both wrappers for compatibility and new locks.
2958         (omp_set_schedule, omp_get_schedule,
2959         omp_get_thread_limit, omp_set_max_active_levels,
2960         omp_get_max_active_levels, omp_get_level,
2961         omp_get_ancestor_thread_num, omp_get_team_size,
2962         omp_get_active_level): New ialias_redirect.
2963         (omp_set_schedule_, omp_set_schedule_8_,
2964         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2965         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2966         omp_get_max_active_levels_, omp_get_level_,
2967         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2968         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2969         New functions.
2970         * parallel.c: Include limits.h.
2971         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2972         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2973         argument to gomp_team_start.  Pass 0 as second argument to
2974         gomp_resolve_num_threads.
2975         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2976         if gomp_thread_limit_var != ULONG_MAX.
2977         (omp_in_parallel): Implement using ts.active_level.
2978         (omp_get_max_threads): Move to env.c.
2979         (omp_get_level, omp_get_ancestor_thread_num,
2980         omp_get_team_size, omp_get_active_level): New functions,
2981         add ialias.
2982         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2983         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2984         gomp_iter_dynamic_next instead of the _locked variant and don't take
2985         lock around it, otherwise acquire it before calling
2986         gomp_iter_dynamic_next_locked.
2987         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2988         gomp_iter_dynamic_next instead of the _locked variant and don't take
2989         lock around it.
2990         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2991         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2992         Adjust gomp_team_start caller.  Pass count as second argument to
2993         gomp_resolve_num_threads, don't adjust num_threads after the call.
2994         Use gomp_icv.
2995         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2996         ws->chunk_size by incr.
2997         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2998         code.
2999         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
3000         types.
3001         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
3002         (omp_check_defines): Check even the compat defines.
3003         * config/linux/ptrlock.c: New file.
3004         * config/linux/ptrlock.h: New file.
3005         * config/linux/wait.h: New file.
3006         * config/posix/ptrlock.c: New file.
3007         * config/posix/ptrlock.h: New file.
3008         * config/linux/bar.h (gomp_team_barrier_wait,
3009         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3010         (gomp_team_barrier_set_task_pending,
3011         gomp_team_barrier_clear_task_pending,
3012         gomp_team_barrier_set_waiting_for_tasks,
3013         gomp_team_barrier_waiting_for_tasks,
3014         gomp_team_barrier_done): New inlines.
3015         (gomp_barrier_t): Rewritten.
3016         (gomp_barrier_state_t): New typedef.
3017         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
3018         gomp_barrier_wait_start): Rewritten.
3019         (gomp_barrier_wait_end): Change second argument to
3020         gomp_barrier_state_t.
3021         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3022         inlines.
3023         * config/linux/bar.c: Include wait.h instead of libgomp.h and
3024         futex.h.
3025         (gomp_barrier_wait_end): Rewritten.
3026         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3027         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
3028         * config/posix/bar.h (gomp_barrier_t): Add generation field.
3029         (gomp_barrier_state_t): New typedef.
3030         (gomp_team_barrier_wait,
3031         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
3032         (gomp_barrier_wait_start): Or all but low 2 bits from generation
3033         into the return value.  Return gomp_barrier_state_t.
3034         (gomp_team_barrier_set_task_pending,
3035         gomp_team_barrier_clear_task_pending,
3036         gomp_team_barrier_set_waiting_for_tasks,
3037         gomp_team_barrier_waiting_for_tasks,
3038         gomp_team_barrier_done): New inlines.
3039         (gomp_barrier_wait_end): Change second argument to
3040         gomp_barrier_state_t.
3041         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
3042         inlines.
3043         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
3044         (gomp_barrier_wait_end): Change second argument to
3045         gomp_barrier_state_t.
3046         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
3047         gomp_team_barrier_wake): New functions.
3048         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
3049         futex.h.
3050         (gomp_futex_wake, gomp_futex_wait): New variables.
3051         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
3052         * config/linux/lock.c: Rewrite to make locks task owned,
3053         for backwards compatibility provide the old entrypoints
3054         if symbol versioning.  Include wait.h instead of libgomp.h and
3055         futex.h.
3056         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
3057         * config/posix95/lock.c: Rewrite to make locks task owned,
3058         for backwards compatibility provide the old entrypoints
3059         if symbol versioning.
3060         * config/posix/lock.c: Rewrite to make locks task owned,
3061         for backwards compatibility provide the old entrypoints
3062         if symbol versioning.
3063         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
3064         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
3065         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
3066         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3067         (sys_futex0): Return error code.
3068         (futex_wake, futex_wait): If ENOSYS was returned, clear
3069         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3070         (cpu_relax, atomic_write_barrier): New static inlines.
3071         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3072         (futex_wake, futex_wait): If ENOSYS was returned, clear
3073         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3074         (cpu_relax, atomic_write_barrier): New static inlines.
3075         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3076         (sys_futex0): Return error code.
3077         (futex_wake, futex_wait): If ENOSYS was returned, clear
3078         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3079         (cpu_relax, atomic_write_barrier): New static inlines.
3080         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3081         (sys_futex0): Return error code.
3082         (futex_wake, futex_wait): If ENOSYS was returned, clear
3083         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3084         (cpu_relax, atomic_write_barrier): New static inlines.
3085         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3086         (sys_futex0): Return error code.
3087         (futex_wake, futex_wait): If ENOSYS was returned, clear
3088         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3089         (cpu_relax, atomic_write_barrier): New static inlines.
3090         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
3091         (sys_futex0): Return error code.
3092         (futex_wake, futex_wait): If ENOSYS was returned, clear
3093         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
3094         (cpu_relax, atomic_write_barrier): New static inlines.
3095         * config/linux/sem.c: Include wait.h instead of libgomp.h and
3096         futex.h.
3097         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
3098         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
3099         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
3100         types.
3101         (omp_nest_lock_t): Change owner into void *, add lock field.
3102         * config/posix95/omp-lock.h: Include semaphore.h.
3103         (omp_lock_25_t, omp_nest_lock_25_t): New types.
3104         (omp_lock_t): Use sem_t instead of mutex if semaphores
3105         aren't broken.
3106         (omp_nest_lock_t): Likewise.  Change owner to void *.
3107         * config/posix/omp-lock.h: Include semaphore.h.
3108         (omp_lock_25_t, omp_nest_lock_25_t): New types.
3109         (omp_lock_t): Use sem_t instead of mutex if semaphores
3110         aren't broken.
3111         (omp_nest_lock_t): Likewise.  Add owner field.
3113 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
3115         * testsuite/libgomp.c/collapse-1.c: New test.
3116         * testsuite/libgomp.c/collapse-2.c: New test.
3117         * testsuite/libgomp.c/collapse-3.c: New test.
3118         * testsuite/libgomp.c/icv-1.c: New test.
3119         * testsuite/libgomp.c/icv-2.c: New test.
3120         * testsuite/libgomp.c/lib-2.c: New test.
3121         * testsuite/libgomp.c/lock-1.c: New test.
3122         * testsuite/libgomp.c/lock-2.c: New test.
3123         * testsuite/libgomp.c/lock-3.c: New test.
3124         * testsuite/libgomp.c/loop-4.c: New test.
3125         * testsuite/libgomp.c/loop-5.c: New test.
3126         * testsuite/libgomp.c/loop-6.c: New test.
3127         * testsuite/libgomp.c/loop-7.c: New test.
3128         * testsuite/libgomp.c/loop-8.c: New test.
3129         * testsuite/libgomp.c/loop-9.c: New test.
3130         * testsuite/libgomp.c/nested-3.c: New test.
3131         * testsuite/libgomp.c/nestedfn-6.c: New test.
3132         * testsuite/libgomp.c/sort-1.c: New test.
3133         * testsuite/libgomp.c/task-1.c: New test.
3134         * testsuite/libgomp.c/task-2.c: New test.
3135         * testsuite/libgomp.c/task-3.c: New test.
3136         * testsuite/libgomp.c/task-4.c: New test.
3137         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
3138         to C++ testsuite default compiler options.
3139         * testsuite/libgomp.c++/collapse-1.C: New test.
3140         * testsuite/libgomp.c++/collapse-2.C: New test.
3141         * testsuite/libgomp.c++/ctor-10.C: New test.
3142         * testsuite/libgomp.c++/for-1.C: New test.
3143         * testsuite/libgomp.c++/for-2.C: New test.
3144         * testsuite/libgomp.c++/for-3.C: New test.
3145         * testsuite/libgomp.c++/for-4.C: New test.
3146         * testsuite/libgomp.c++/for-5.C: New test.
3147         * testsuite/libgomp.c++/loop-8.C: New test.
3148         * testsuite/libgomp.c++/loop-9.C: New test.
3149         * testsuite/libgomp.c++/loop-10.C: New test.
3150         * testsuite/libgomp.c++/task-1.C: New test.
3151         * testsuite/libgomp.c++/task-2.C: New test.
3152         * testsuite/libgomp.c++/task-3.C: New test.
3153         * testsuite/libgomp.c++/task-4.C: New test.
3154         * testsuite/libgomp.c++/task-5.C: New test.
3155         * testsuite/libgomp.c++/task-6.C: New test.
3156         * testsuite/libgomp.fortran/allocatable1.f90: New test.
3157         * testsuite/libgomp.fortran/allocatable2.f90: New test.
3158         * testsuite/libgomp.fortran/allocatable3.f90: New test.
3159         * testsuite/libgomp.fortran/allocatable4.f90: New test.
3160         * testsuite/libgomp.fortran/collapse1.f90: New test.
3161         * testsuite/libgomp.fortran/collapse2.f90: New test.
3162         * testsuite/libgomp.fortran/collapse3.f90: New test.
3163         * testsuite/libgomp.fortran/collapse4.f90: New test.
3164         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
3165         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
3166         * testsuite/libgomp.fortran/lib4.f90: New test.
3167         * testsuite/libgomp.fortran/lock-1.f90: New test.
3168         * testsuite/libgomp.fortran/lock-2.f90: New test.
3169         * testsuite/libgomp.fortran/nested1.f90: New test.
3170         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
3171         * testsuite/libgomp.fortran/strassen.f90: New test.
3172         * testsuite/libgomp.fortran/tabs1.f90: New test.
3173         * testsuite/libgomp.fortran/tabs2.f: New test.
3174         * testsuite/libgomp.fortran/task1.f90: New test.
3175         * testsuite/libgomp.fortran/task2.f90: New test.
3176         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
3177         * testsuite/libgomp.fortran/vla5.f90: Likewise.
3178         * testsuite/libgomp.c/pr26943-2.c: Likewise.
3179         * testsuite/libgomp.c/pr26943-3.c: Likewise.
3180         * testsuite/libgomp.c/pr26943-4.c: Likewise.
3182 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
3184         PR c++/36308
3185         * testsuite/libgomp.c++/ctor-11.C: New test.
3186         * testsuite/libgomp.c++/ctor-12.C: New test.
3188 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
3190         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
3192 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
3194         PR middle-end/36106
3195         * testsuite/libgomp.c/atomic-5.c: New test.
3196         * testsuite/libgomp.c/atomic-6.c: New test.
3197         * testsuite/libgomp.c/autopar-1.c: New test.
3199 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3201         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
3202         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
3203         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
3204         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
3205         * configure: Regenerate.
3206         * Makefile.in, testsuite/Makefile.in: Likewise.
3208 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
3210         PR bootstrap/35457
3211         * aclocal.m4: Regenerate.
3212         * configure: Regenerate.
3214 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
3216         PR middle-end/35611
3217         * testsuite/libgomp.c/atomic-4.c: New test.
3219         PR libgomp/35625
3220         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
3221         (gomp_iter_guided_next): Likewise.
3222         * testsuite/libgomp.c/pr35625.c: New test.
3224 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3226         * aclocal.m4: Regenerate.
3227         * configure: Likewise.
3228         * Makefile.in: Likewise.
3229         * testsuite/Makefile.in: Likewise.
3231 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
3233         PR middle-end/35185
3234         * testsuite/libgomp.c++/pr35185.C: New test.
3236 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
3238         PR middle-end/35549
3239         * testsuite/libgomp.c/pr35549.c: New test.
3241 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
3243         * testsuite/libgomp.c/atomic-3.c: New test.
3245 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
3247         PR fortran/33197
3248         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
3249         .F08 file suffixes.
3251 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
3253         PR libgomp/33131
3254         * configure.ac: Add ACX_HEADER_STRING.
3255         * env.c: Include strings.h.
3256         * aclocal.m4: Regenerate.
3257         * config.h.in: Regenerate.
3258         * configure: Regenerate.
3259         * Makefile.in: Regenerate.
3260         * testsuite/Makefile.in: Regenerate.
3262 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
3264         PR middle-end/35196
3265         * testsuite/libgomp.c/pr35196.c: New test.
3267         PR middle-end/35130
3268         * testsuite/libgomp.fortran/pr35130.f90: New test.
3269         * testsuite/libgomp.c/pr35130.c: New test.
3271 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
3273         PR middle-end/33880
3274         * testsuite/libgomp.c/pr33880.c: New test.
3275         * testsuite/libgomp.fortran/pr33880.f90: New test.
3277 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
3279         * configure: Regenerate.
3281 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
3283         * configure.ac: Move futex checking into ../config/futex.m4.
3284         * configure: Rebuilt.
3285         * aclocal.m4: Rebuilt.
3286         * Makefile.in: Rebuilt.
3288         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
3289         2007-10-15 ../config/tls.m4 change.
3291 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
3293         PR c++/34513
3294         * testsuite/libgomp.c/pr34513.c: New test.
3295         * testsuite/libgomp.c++/pr34513.C: New test.
3297 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
3299         PR target/32765
3300         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
3302 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
3304         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
3306 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
3308         * testsuite/libgomp.c/private-1.c: New test.
3310 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
3311             Paolo Bonzini  <bonzini@gnu.org>
3313         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
3314         instead of 'VPATH ='.
3315         * Makefile.in: Regenerate.
3317 2007-11-23  Matthias Klose  <doko@ubuntu.com>
3319         * configure.ac: Adjust makeinfo version check.
3320         * configure: Regenerate.
3322 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
3324         PR fortran/34020
3325         * testsuite/libgomp.fortran/pr34020.f90: New test.
3327 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
3329         PR c++/33894
3330         * testsuite/libgomp.c++/atomic-1.C: New test.
3332 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
3334         PR libgomp/33275
3335         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
3336         Make x and y integers rather than (implicit) reals.  Add private (j)
3337         clause to the last omp parallel.
3339 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
3341         * configure: Regenerate following changes to ../config/tls.m4.
3343 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
3345         * testsuite/libgomp.fortran/stack.f90: New test.
3347 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
3349         * config/mingw32/proc.c: New file.
3351 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
3353         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
3354         (main): Use __get_cpuid to get i386 target fetaures.
3355         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
3356         (main): Use __get_cpuid to get x86_64 target fetaures.
3358 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
3360         PR target/32765
3361         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
3362         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
3364 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
3366         PR fortran/32550
3367         * testsuite/libgomp.fortran/pr32550.f90: New test.
3368         * testsuite/libgomp.fortran/crayptr2.f90: New test.
3370 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
3372         * aclocal.m4: Regenerated.
3374 2007-07-05  Tobias Burnus  <burnus@net-b.de>
3376         PR fortran/32359
3377         * testsuite/libgomp.fortran/pr32359.f90: New.
3379 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
3381         PR libgomp/32468
3382         * sections.c (GOMP_parallel_sections_start): Only decrease
3383         number of threads to COUNT if dyn_var is true.
3384         * testsuite/libgomp.c/pr32468.c: New test.
3386 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3388         PR libgomp/26308
3389         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
3391 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
3393         PR middle-end/32362
3394         * testsuite/libgomp.c/pr32362-1.c: New test.
3395         * testsuite/libgomp.c/pr32362-2.c: New test.
3396         * testsuite/libgomp.c/pr32362-3.c: New test.
3398 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
3400         * team.c (gomp_team_start): Fix setting up thread_attr
3401         stack size.
3403 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
3405         * configure: Regenerate.
3407 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
3409         * Makefile.in: Regenerate.
3410         * configure: Regenerate.
3411         * aclocal.m4: Regenerate.
3412         * testsuite/Makefile.in: Regenerate.
3414 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
3416         * config/linux/proc.c: New file.
3418         PR libgomp/28482
3419         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
3421 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
3423         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
3425 2007-04-16  Matthias Klose  <doko@debian.org>
3427         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
3428         flags if not building with -m64.
3429         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
3430         flag for i?86-*-* targets, if current target matches -m64.
3432 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
3434         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
3435         * Makefile.in: Regenerate.
3437 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3439         PR testsuite/31369
3440         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
3441         ld_library_path.
3442         * testsuite/libgomp.fortran/fortran.exp: Likewise.
3444 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
3446         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
3447         decls.
3448         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
3449         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
3450         (parse_affinity): New function.
3451         (initialize_env): Call it and gomp_init_affinity.
3452         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
3453         create new pthread_attr_t and call gomp_init_thread_affinity
3454         on it for each thread before passing the attribute to pthread_create.
3455         * config/linux/affinity.c: New file.
3456         * config/posix/affinity.c: New file.
3457         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
3458         * configure: Rebuilt.
3459         * config.h.in: Rebuilt.
3460         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
3461         * Makefile.in: Rebuilt.
3463 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
3465         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
3466         *-*-darwin*.
3467         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
3468         and use it if found.
3470 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
3472         * testsuite/config/default.exp: New file.
3473         * testsuite/lib/libgomp.exp: New file.
3474         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
3475         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
3476         load_lib *, load_gcc_lib *): Move to libgomp.exp.
3477         (libgomp_load): Remove.
3478         * testsuite/lib/libgomp.exp (libgomp_init): Compute
3479         always_ld_library_path, not ld_library_path.  Set additional_flags
3480         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
3481         (target_compile): Do not call libgomp_init.  Append lang_library_path
3482         and lang_link_flags to options.
3483         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
3484         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
3485         here.
3486         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
3487         always_ld_library_path.  Set LD_LIBRARY_PATH here.
3488         * testsuite/libgomp.fortran/fortran.exp: Ditto.
3489         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
3490         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
3491         CX8 flag.
3492         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
3493         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
3494         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
3495         * testsuite/libgomp.c/pr29947-1.c: Ditto.
3496         * testsuite/libgomp.c/atomic-10.c: Ditto.
3498 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
3500         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
3501         dg-final cleanup-modules line.
3502         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
3503         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
3504         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
3505         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
3506         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
3507         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
3508         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
3510 2007-03-18  Andreas Schwab  <schwab@suse.de>
3512         * acinclude.m4: Adjust regular expression for ld version
3513         extraction.
3514         * configure: Regenerate.
3516 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
3518         * Makefile.am: Add install-pdf target as copied from
3519         automake v1.10 rules.
3520         * Makefile.in: Regenerate
3522 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
3524         PR libgomp/28486
3525         * configure: Regenerate.
3527         PR c++/30703
3528         * testsuite/libgomp.c++/pr30703.C: New test.
3530 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
3532         Revert:
3533         2006-07-05  Eric Christopher  <echristo@apple.com>
3534         * configure.ac: Depend addition of -pthread on host OS.
3535         * configure: Regenerate.
3537 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3539         * libgomp.texi: Fix spacing after abbreviations.
3541 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
3543         PR libgomp/30546
3544         * configure.ac: Add check for makeinfo
3545         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
3546         if an appropiate version of makeinfo is found.
3547         * aclocal.m4: Regenerated.
3548         * configure: Regenerated.
3549         * Makefile.in: Regenerated.
3550         * testsuite/Makefile.in: Regenerated.
3552 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
3554         PR libgomp/30540
3555         * libgomp.texi: More about implementation-dependent settings.
3557 2007-01-26  Tobias Burnus  <burnus@net-b.de>
3559         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
3561 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
3563         PR middle-end/30494
3564         * testsuite/libgomp.c/pr30494.c: New test.
3566 2007-01-15  Tom Tromey  <tromey@redhat.com>
3568         * configure: Rebuilt.
3569         * configure.ac: Fixed comment.
3571 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
3573         * libgomp.texi: Document implementation specific default values of
3574         environment variables.
3576 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
3578         PR libgomp/28209
3579         * libgomp.texi: New file.
3580         * configure.ac: Add --enable-generated-files-in-srcdir option.
3581         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
3582         files to srcdir.
3583         * Makefile.in: Regenerated.
3584         * config.h.in: Regenerated.
3585         * testsuite/Makefile.in: Regenerated.
3586         * NOTES: Removed.
3588 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
3590         PR libgomp/29949
3591         * env.c (omp_set_num_threads): Set illegal thread count to 1.
3593 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3595         * configure: Regenerate.
3597 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
3599         PR libgomp/29947
3600         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
3601         start if there shouldn't be any loop iterations.
3602         (gomp_loop_ordered_static_start): Remove start == end test.
3603         * testsuite/libgomp.c/pr29947-1.c: New test.
3604         * testsuite/libgomp.c/pr29947-2.c: New test.
3606 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
3608         * configure.tgt: Force initial-exec TLS model on Linux only.
3610 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
3612         * configure: Regenerated.
3614 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
3616         * env.c (parse_schedule): Reject out of range values.
3617         (parse_unsigned_long): Reject out of range, negative or zero values.
3619 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
3621         PR fortran/29629
3622         * testsuite/libgomp.fortran/pr29629.f90: New test.
3624 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3626         PR libgomp/29494
3627         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
3628         * config/posix95: New directory.
3629         * config/posix95/omp-lock.h: New file.
3630         * config/posix95/lock.c: Likewise.
3632 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
3634         * aclocal.m4: Regenerate.
3635         * configure: Regenerate.
3637 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3639         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
3640         '<' to '<='.
3642 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
3644         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
3645         test.
3646         * configure: Regenerate.
3647         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
3649 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
3651         PR middle-end/25261
3652         PR middle-end/28790
3653         * testsuite/libgomp.c/nestedfn-4.c: New test.
3654         * testsuite/libgomp.c/nestedfn-5.c: New test.
3655         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
3657         PR fortran/29097
3658         * testsuite/libgomp.fortran/condinc1.f: New test.
3659         * testsuite/libgomp.fortran/condinc2.f: New test.
3660         * testsuite/libgomp.fortran/condinc3.f90: New test.
3661         * testsuite/libgomp.fortran/condinc4.f90: New test.
3662         * testsuite/libgomp.fortran/condinc1.inc: New file.
3664 2006-09-18  Tom Tromey  <tromey@redhat.com>
3666         * configure: Rebuilt.
3668 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
3670         PR c/28768
3671         PR preprocessor/14634
3672         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
3673         to AC_DEFINE.
3674         * configure: Regenerate.
3676 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
3678         * testsuite/libgomp.fortran/reduction3.f90: Change
3679         -2147483648 to -huge(i)-1 to avoid overflow.
3680         * testsuite/libgomp.fortran/reduction4.f90: Change
3681         Z'ffffffff' to not(0) to avoid overflow.
3683 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
3685         PR libgomp/25938
3686         * Makefile.am (libsubincludedir): New.
3687         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
3688         * Makefile.in: Regenerate.
3690 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
3692         PR libgomp/28725
3693         * env.c: Include ctype.h.
3694         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
3695         leading and/or trailing whitespace and compare strings case
3696         insensitively.
3698 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
3700         PR fortran/28390
3701         * testsuite/libgomp.fortran/pr28390.f: New test.
3703 2006-07-05  Eric Christopher  <echristo@apple.com>
3705         * configure.ac: Depend addition of -pthread on host OS.
3706         * configure: Regenerate.
3708 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
3710         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
3711         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
3712         defined.
3714 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
3716         PR libgomp/26175
3717         PR libgomp/26477
3718         * configure.ac: If neither --enable-linux-futex nor
3719         --disable-linux-futex is passed, determine the default by checking
3720         for compiling and/or running against NPTL.  With --enable-linux-futex,
3721         check if SYS_gettid and SYS_futex are defined.
3722         * configure: Rebuilt.
3724 2006-06-14  Richard Henderson  <rth@redhat.com>
3726         PR libgomp/28008
3727         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
3728         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
3730 2006-06-09  Richard Henderson  <rth@redhat.com>
3732         * env.c (gomp_nthreads_var): Change to unsigned long.
3733         (gomp_run_sched_chunk): Likewise.
3734         (parse_unsigned_long): Rename from parse_num_threads and generalize.
3735         (initialize_env): Initialize gomp_thread_attr.
3736         * libgomp.h (gomp_nthreads_var): Update decl.
3737         (gomp_run_sched_chunk): Likewise.
3738         (gomp_thread_attr): Declare.
3739         * team.c (gomp_thread_attr): Export.
3740         (initialize_team): Don't initialize it.
3742 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
3744         PR fortran/27916
3745         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
3746         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
3748 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3750         * config/mingw32/time.c: New file.
3751         * configure.tgt: Use it.
3753 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
3755         * Makefile.am: Add install-html target. Add install-html to .PHONY
3756         * Makefile.in: Regenerate.
3758 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3760         PR libgomp/27612
3761         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
3762         * testsuite/libgomp.c/critical-1.c: Likewise.
3763         * testsuite/libgomp.c/loop-1.c: Likewise.
3764         * testsuite/libgomp.c/loop-2.c: Likewise.
3765         * testsuite/libgomp.c/single-1.c: Likewise.
3766         * testsuite/libgomp.c/ordered-1.c: Likewise.
3767         * testsuite/libgomp.c/ordered-2.c: Likewise.
3769 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
3771         PR middle-end/27416
3772         * libgomp.fortran/pr27416-1.f90: New test.
3774 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
3776         PR fortran/27395
3777         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
3778         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
3780 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3782         PR c++/26943
3783         * testsuite/libgomp.c/pr26943-1.c: New test.
3784         * testsuite/libgomp.c/pr26943-2.c: New test.
3785         * testsuite/libgomp.c/pr26943-3.c: New test.
3786         * testsuite/libgomp.c/pr26943-4.c: New test.
3787         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
3788         * testsuite/libgomp.c++/pr26943.C: New test.
3790 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
3792         PR middle-end/27337
3793         * testsuite/libgomp.c++/pr27337.C: New test.
3795 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
3797         PR c/26171
3798         * testsuite/libgomp.c/pr26171.c: New test.
3800 2006-04-25  Richard Henderson  <rth@redhat.com>
3802         PR libgomp/25865
3803         * configure.ac: Use GCC_CHECK_TLS.
3804         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
3805         * Makefile.in, aclocal.m4, configure: Regenerate.
3807 2006-04-10  Matthias Klose  <doko@debian.org>
3809         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
3810         directory names containing underscores.
3812 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
3814         PR c++/26691
3815         * testsuite/libgomp.c++/pr26691.C: New test.
3817 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
3819         * testsuite/libgomp.fortran/retval2.f90: New test.
3821 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
3823         * testsuite/libgomp.c++: New directory.
3825 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
3827         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
3828         * config/posix/sem.c: Implement the above.
3830 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
3832         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
3833         define HAVE_BROKEN_POSIX_SEMAPHORES.
3834         * configure: Rebuilt.
3835         * config.h.in: Rebuilt.
3837 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3839         PR bootstrap/26161
3840         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
3841         for the other pthread check.
3842         * configure: Regenerate.
3843         * config.h.in: Regenerate.
3845 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3847         PR libgomp/25938
3848         PR libgomp/25984
3849         * Makefile.am (fincludedir): New variable.
3850         (nodist_include_HEADERS): Remove Fortran files.
3851         (nodist_finclude_HEADERS): New variable.
3852         * Makefile.in: Regenerated.
3854 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3856         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3857         Remove tests for returning assumed character length arrays.
3859 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3860             John David Anglin  <dave@hiauly1.hia.nrc.ca>
3862         PR libgomp/25936
3863         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3865 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
3867         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3869 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3871         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3872         part of LD_LIBRARY_PATH manually.
3874 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3876         PR libgomp/25852
3877         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3878         libgomp_init.
3880 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3882         PR libgomp/25884
3883         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3884         * configure.ac (PERL): Don't set.
3885         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3886         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3887         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3888         * omp.h.in: Wrap the new configure substitutions with @ characters.
3889         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3890         * aclocal.m4, configure, Makefile.in: Regenerate.
3891         * mkomp_h.pl: Delete.
3893 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3895         PR libgomp/25259
3896         * configure.ac: Use GCC_HEADER_STDINT.
3897         * libgomp.h: Include gstdint.h.
3898         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3899         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3901 2006-01-24  Richard Henderson  <rth@redhat.com>
3903         PR libgomp/25942
3904         * configure.ac: Add AM_MAINTAINER_MODE.
3905         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3907 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
3909         * Makefile.in: Regenerate.
3910         * testsuite/Makefile.in: Regenerate.
3911         * aclocal.m4: Regenerate.
3913 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
3915         * config/posix/proc.c: Conditional include of sys/loadavg.h for
3916         Solaris.
3917         * configure.ac: Add check for loadavg.h.
3918         (link_gomp): Adjust comment.
3919         * configure: Regenerate.
3920         * config.h.in: Regenerate.
3922 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
3924         PR libgomp/25877
3925         * configure.ac: Remove check for alloca.h.
3926         * configure: Regenerate.
3927         * config.h.in: Regenerate.
3928         * libgomp.h: define gomp_alloca to be __builtin_alloca.
3929         * team.c: Remove use of alloca.h.
3930         Call gomp_alloca instead of alloca.
3932 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
3934         PR libgomp/25877
3935         * team.c: Add include of alloca.h.
3936         * configure.ac: Add check for alloca.h.
3937         * configure: Regenerate.
3938         * config.h.in: Regenerate.
3940 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3942         PR fortran/25219
3943         * testsuite/libgomp.fortran/pr25219.f90: New test.
3945 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
3947         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3948         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3949         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3950         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3951         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3952         testsuite/libgomp.fortran/threadprivate1.f90,
3953         testsuite/libgomp.fortran/threadprivate2.f90,
3954         testsuite/libgomp.fortran/threadprivate3.f90,
3955         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3956         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3957         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3958         effective-target to TLS runtime.
3960         * testsuite/libgomp.fortran/pr25162.f: Require
3961         effective-target TLS runtime.
3963 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3965         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3966         * testsuite/libgomp.c/nestedfn-3.c: New test.
3968 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3970         PR fortran/25162
3971         * testsuite/libgomp.fortran/pr25162.f: New test.
3973 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3975         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3976         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3978 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3980         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3981         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3982         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3983         single.c, team.c, work.c, config/linux/alpha/futex.h,
3984         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3985         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3986         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3987         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3988         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3989         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3990         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3991         FSF address.
3993 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3995         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3996         to nodist_noinst_HEADERS.
3997         * Makefile.in: Rebuilt.
3999         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
4000         add integer count field.
4001         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
4002         omp_nest_lock_t type change.
4003         (omp_init_nest_lock): Likewise.  Initialize count to 0.
4004         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
4005         Increment count.
4006         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
4007         Decrement count.
4008         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
4009         Increment count if successful and return the new nesting level.
4010         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
4011         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
4012         * testsuite/libgomp.c/lib-1.c: New test.
4013         * testsuite/libgomp.fortran/lib1.f90: New test.
4014         * testsuite/libgomp.fortran/lib2.f: New test.
4015         * testsuite/libgomp.fortran/lib3.f: New test.
4017 2005-11-17  Richard Henderson  <rth@redhat.com>
4019         PR 24845
4020         * Makefile.am (nodist_toolexeclib_HEADERS): New.
4021         * configure.ac (link_gomp): New.  Substitute it.
4022         (AC_CONFIG_FILES): Add libgomp.spec.
4023         * libgomp.spec.in: New file.
4024         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
4025         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
4027 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
4029         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
4030         reduction(-:var) behaving the same as reduction(+:var).
4031         * testsuite/libgomp.c/reduction-4.c: New test.
4033 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
4035         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
4036         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
4037         testsuite/libgomp.c/copyin-3.c,
4038         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
4039         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
4040         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
4041         testsuite/libgomp.c++/pr24455.C,
4042         testsuite/libgomp.fortran/threadprivate1.f90,
4043         testsuite/libgomp.fortran/threadprivate2.f90,
4044         testsuite/libgomp.fortran/threadprivate3.f90,
4045         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
4046         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
4047         testsuite/libgomp.fortran/omp_parse3.f90: Require
4048         effective-target TLS.
4050 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
4052         * HEADER: Remove.
4054 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
4056         PR libgomp/24797
4057         * team.c (initialize_team): Pass NULL rather than free as
4058         pthread_key_create destructor.  Initialize thread specific data
4059         pointer in initial thread to a static local variable rather than
4060         malloced memory.
4062 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
4064         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
4065         its location to ld_library_path.
4067 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4069         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
4071 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
4073         * testsuite/libgomp.c: Rename from libgomp.dg.
4075 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
4077         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
4078         threadprivate variable 'i'.
4080 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
4082         * config/linux/s390/futex.h: New file.
4083         * configure.tgt: Use it.
4085         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
4086         before the parallel.
4088 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
4090         PR c++/24734
4091         * testsuite/libgomp.c++/master-1.C: New test.
4093 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4095         * testsuite/libgomp.dg/copyin-3.c: New test.
4097 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
4099         * testsuite/libgomp.fortran/retval1.f90: New test.
4100         * testsuite/libgomp.fortran/vla7.f90: New test.
4102 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
4104         * testsuite/libgomp.fortran/vla2.f90: New test.
4105         * testsuite/libgomp.fortran/vla3.f90: New test.
4106         * testsuite/libgomp.fortran/vla4.f90: New test.
4107         * testsuite/libgomp.fortran/vla5.f90: New test.
4108         * testsuite/libgomp.fortran/vla6.f90: New test.
4110 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
4112         * config/linux/sparc/futex.h: New file.
4113         * configure.tgt: Use it.
4114         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
4116         * critical.c: Include stdlib.h.
4117         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
4118         ignoring return value.
4119         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
4120         LIBGOMP_CHECK_SYNC_BUILTINS check.
4121         * configure: Rebuilt.
4123 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
4125         * testsuite/libgomp.fortran/vla1.f90: New test.
4127 2005-10-31  Richard Henderson  <rth@redhat.com>
4129         * testsuite/libgomp.fortran/character2.f90: Fix race condition
4130         setting 's' in different threads.
4132 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
4134         * libgomp.h (attribute_hidden, ialias): Define.
4135         * config/posix/proc.c (omp_get_num_procs): Add ialias.
4136         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
4137         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
4138         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4139         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4140         omp_test_lock, omp_test_nest_lock): Likewise.
4141         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
4142         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
4143         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
4144         omp_test_lock, omp_test_nest_lock): Likewise.
4145         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
4146         omp_get_dynamic, omp_get_nested): Likewise.
4147         * parallel.c (omp_get_num_threads, omp_get_max_threads,
4148         omp_get_thread_num, omp_in_parallel): Likewise.
4149         * fortran.c (ialias_redirect): Define.
4150         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
4151         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
4152         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
4153         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
4154         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
4155         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
4156         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
4157         omp_get_wtime): Add ialias_redirect.
4159 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
4161         * fortran.c: Include stdlib.h.
4163 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
4165         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
4166         * Makefile.in: Regenerated.
4168 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
4170         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
4171         * libgomp_f.h.in (omp_check_defines): New function.
4172         * env.c: Include libgomp_f.h.
4173         (initialize_env): Call omp_check_defines.
4175         * testsuite/libgomp.dg/copyin-2.c: New test.
4176         * testsuite/libgomp.c++/copyin-2.C: New test.
4177         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
4179         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
4180         * testsuite/libgomp.fortran/sharing2.f90: New test.
4182         * testsuite/libgomp.dg/copyin-1.c: New test.
4183         * testsuite/libgomp.c++/copyin-1.C: New test.
4185 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
4187         * testsuite/libgomp.fortran/crayptr1.f90: New test.
4189         * testsuite/libgomp.fortran/workshare1.f90: New test.
4191         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
4192         only test.
4193         * libgomp.fortran/sharing1.f90: New test.
4195 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
4197         PR c++/24502
4198         * testsuite/libgomp.c++/loop-7.C: New test.
4200         * testsuite/libgomp.dg/nestedfn-2.c: New test.
4202         * testsuite/libgomp.dg/nestedfn-1.c: New test.
4203         * testsuite/libgomp.fortran/reduction6.f90: New test.
4204         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
4206 2005-10-23  Richard Henderson  <rth@redhat.com>
4208         * testsuite/libgomp.c++/ctor-1.C: New.
4209         * testsuite/libgomp.c++/ctor-2.C: New.
4210         * testsuite/libgomp.c++/ctor-3.C: New.
4211         * testsuite/libgomp.c++/ctor-4.C: New.
4212         * testsuite/libgomp.c++/ctor-5.C: New.
4213         * testsuite/libgomp.c++/ctor-6.C: New.
4214         * testsuite/libgomp.c++/ctor-7.C: New.
4215         * testsuite/libgomp.c++/ctor-8.C: New.
4216         * testsuite/libgomp.c++/ctor-9.C: New.
4218 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
4220         PR 24455
4221         * testsuite/libgomp.c++/pr24455-1.C: New test.
4222         * testsuite/libgomp.c++/pr24455.C: New test.
4223         * testsuite/libgomp.dg/pr24455-1.c: New test.
4224         * testsuite/libgomp.dg/pr24455.c: New test.
4226 2005-10-20  Richard Henderson  <rth@redhat.com>
4228         * testsuite/libgomp.c++/loop-6.C: New.
4229         * testsuite/libgomp.dg/loop-3.c: New.
4231 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
4233         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
4234         explicitly private.
4235         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
4236         explicitly shared.
4238 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
4240         * testsuite/libgomp.fortran/jacobi.f: New test.
4242 2005-10-19  Richard Henderson  <rth@redhat.com>
4244         * configure.tgt (i?86-linux): Default to with_arch instead of
4245         CFLAGS.  Add -mtune to match target_cpu.
4246         (x86_64-linux): Tune to i686.
4248         * fortran.c (omp_test_nest_lock_): Fix typo.
4250 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
4252         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4253         gomp_ordered_sync): Do nothing if team->nthreads == 1.
4254         * testsuite/libgomp.dg/ordered-3.c: New test.
4256         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
4257         Remove volatile keyword.
4259         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
4260         in COMMON block to avoid warnings on 64-bit targets.
4262 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
4264         * testsuite/libgomp.dg/shared-3.c: New test.
4266 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
4268         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
4269         * testsuite/libgomp.fortran/reduction5.f90: New test.
4271 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
4273         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
4274         dg-options.
4275         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
4276         flush loop now that __sync_synchronize has proper memory barrier.
4277         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
4278         Add -ffixed-form to dg-options.
4280 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
4282         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
4283         from subdirectories.
4284         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
4285         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
4286         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
4287         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
4288         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
4289         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
4290         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
4291         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
4292         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
4293         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
4294         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
4295         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
4296         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
4297         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
4298         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
4299         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
4300         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
4301         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
4302         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
4303         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
4304         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
4305         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
4306         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
4307         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
4308         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
4310 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
4312         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
4313         lang_library_path exists.  Use find instead of glob to gather tests.
4314         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
4316 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
4318         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
4319         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
4320         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
4321         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
4322         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
4323         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
4324         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
4325         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
4326         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
4327         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
4328         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
4329         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
4330         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
4332 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
4334         * testsuite/libgomp.dg/vla-1.c: New test.
4336         * testsuite/libgomp.fortran/reference2.f90: New test.
4338         * testsuite/libgomp.fortran/character2.f90: Remove explicit
4339         declaration of omp_get_thread_num.
4340         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
4341         use omp_lib.
4343         * testsuite/libgomp.fortran/reduction1.f90: New test.
4344         * testsuite/libgomp.fortran/reduction2.f90: New test.
4345         * testsuite/libgomp.fortran/reduction3.f90: New test.
4346         * testsuite/libgomp.fortran/reduction4.f90: New test.
4348 2005-10-13  Richard Henderson  <rth@redhat.com>
4350         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
4351         * Makefile.in: Regenerate.
4352         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
4353         * libgomp.h: Include bar.h.
4354         (struct gomp_barrier): Remove.
4355         (struct gomp_team): Add barrier.  Replace master_barrier with
4356         master_release.  Replace threads with ordered_release.
4357         (struct gomp_thread): Replace barrier with release.
4358         * ordered.c (gomp_ordered_first): Update for ordered_release change.
4359         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
4360         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
4361         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
4362         (GOMP_single_copy_end): Likewise.
4363         * team.c (gomp_threads_dock): New.
4364         (gomp_barrier_init, gomp_barrier_destroy): Remove.
4365         (gomp_thread_start): Use gomp_barrier_wait.
4366         (new_team, free_team): Update for gomp_team changes.
4367         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
4368         (gomp_team_end): Use gomp_barrier_wait.
4369         (initialize_team): Update for gomp_thread changes.
4370         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
4371         (gomp_work_share_end_nowait): Use atomic ops when available.
4372         * config/linux/bar.c, config/linux/bar.h: New files.
4373         * config/posix/bar.c, config/posix/bar.h: New files.
4375 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
4377         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
4378         * testsuite/libgomp.dg/single-2.c: New test.
4380         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
4381         lang_link_flags): Unset, so that they aren't inherited from previously
4382         sourced *.exp.
4384         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
4386 2005-10-12  Richard Henderson  <rth@redhat.com>
4388         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
4389         (libgomp_init): Use lang_test_file, lang_library_path, and
4390         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
4392         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
4393         (lang_test_file, lang_link_flags): New.
4394         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
4396         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
4397         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
4398         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
4399         testsuite/libgomp.c++/parallel-1.C,
4400         testsuite/libgomp.c++/reduction-1.C,
4401         testsuite/libgomp.c++/reduction-2.C,
4402         testsuite/libgomp.c++/reduction-3.C,
4403         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
4404         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
4405         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
4406         New files, largely cribbed from the C testsuite.
4408 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
4410         * testsuite/libgomp.fortran/character1.f90: New test.
4411         * testsuite/libgomp.fortran/character2.f90: New test.
4413         * testsuite/libgomp.dg/nested-1.c: New test.
4414         * testsuite/libgomp.dg/nested-2.c: New test.
4415         * testsuite/libgomp.fortran/do1.f90: New test.
4416         * testsuite/libgomp.fortran/do2.f90: New test.
4418         * testsuite/libgomp.fortran/reference1.f90: New test.
4420 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
4422         * testsuite/libgomp.dg/reduction-1.c: New test.
4423         * testsuite/libgomp.dg/reduction-2.c: New test.
4424         * testsuite/libgomp.dg/reduction-3.c: New test.
4426 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
4428         * testsuite/libgomp.dg/atomic-1.c: New test.
4429         * testsuite/libgomp.dg/atomic-2.c: New test.
4431 2005-10-09  Richard Henderson  <rth@redhat.com>
4433         * critical.c (atomic_lock): New.
4434         (initialize_critical): Initialize it.
4435         (GOMP_atomic_start, GOMP_atomic_end): New.
4436         * libgomp.map: Export them.
4437         * libgomp_g.h: Declare them.
4439         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
4441 2005-10-02  Richard Henderson  <rth@redhat.com>
4443         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
4444         to XCFLAGS instead of CFLAGS.
4446 2005-09-30  Richard Henderson  <rth@redhat.com>
4448         * configure.ac: Determine whether -pthread or -lpthread is needed.
4449         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
4450         * Makefine.in, configure: Rebuild.
4452 2005-09-28  Richard Henderson  <rth@redhat.com>
4454         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
4455         * testsuite/libgomp.dg/omp-single-3.c: New test.
4457 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
4459         * testsuite/libgomp.dg/omp-single-2.c: New test.
4460         * testsuite/libgomp.dg/shared-2.c: Fix return code.
4462 2005-09-27  Richard Henderson  <rth@redhat.com>
4464         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
4465         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
4467 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
4469         * testsuite/libgomp.dg/omp-loop03.c: New test.
4471 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4473         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
4475 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
4477         * testsuite/libgomp.dg/omp-single-1.c: New test.
4478         * testsuite/libgomp.dg/shared-1.c: Return 0.
4479         Add prototype for abort.
4480         * testsuite/libgomp.dg/shared-2.c: Likewise.
4482 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
4484         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
4485         constructs.
4487 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
4489         * testsuite/libgomp.dg/shared-1.c: New test.
4490         * testsuite/libgomp.dg/shared-2.c: New test.
4492 2005-09-24  Richard Henderson  <rth@redhat.com>
4494         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
4496 2005-09-24  Richard Henderson  <rth@redhat.com>
4498         * iter.c (gomp_iter_static_next): Round up when computing number
4499         of iterations.  Don't bother distributing a remainder equally.
4501         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
4502         Don't call srand.  Zero b before testing.
4503         (main): New.
4505 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
4507         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
4508         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
4510 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
4512         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
4513         without !$omp end do, followed immediately by subroutine end.
4515 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
4517         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
4519 2005-09-22  Richard Henderson  <rth@redhat.com>
4521         * critical.c (GOMP_critical_name_start): Change argument to void**.
4522         Reuse the pointer space if the mutex fits.
4523         (GOMP_critical_name_end): Likewise.
4524         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
4525         * libgomp_g.h (GOMP_critical_name_start): Update decl.
4526         (GOMP_critical_name_end): Likewise.
4527         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
4528         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
4530 2005-09-20  Richard Henderson  <rth@redhat.com>
4532         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
4533         (create_lock_lock): New.
4534         (initialize_critical): Initialize it.
4535         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
4536         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
4538 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
4540         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
4542 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
4544         * testsuite/libgomp.dg/omp-loop01.c: New test.
4545         * testsuite/libgomp.dg/omp-loop02.c: New test.
4547 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
4549         * configure.ac (AC_PROG_FC): Add.
4550         (USE_FORTRAN): New automake conditional.
4551         * configure: Rebuilt.
4552         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
4553         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
4554         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
4555         Add rules to build them.
4556         * Makefile.in: Rebuilt.
4557         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
4558         OMP_NEST_LOCK_KIND.
4559         * libgomp.map: Add Fortran wrappers.
4560         * libgomp_f.h.in: New file.
4561         * omp_lib.h.in: New file.
4562         * omp_lib.f90.in: New file.
4563         * fortran.c: New file.
4564         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
4565         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
4566         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
4567         libgfortran has been built.
4568         * testsuite/libgomp.fortran/fortran.exp: New file.
4569         * testsuite/libgomp.fortran/omp_cond1.f: New test.
4570         * testsuite/libgomp.fortran/omp_cond2.f: New test.
4571         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
4572         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
4573         * testsuite/libgomp.fortran/omp_hello.f: New test.
4574         * testsuite/libgomp.fortran/omp_orphan.f: New test.
4575         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
4576         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
4577         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
4578         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
4579         * testsuite/libgomp.fortran/omp_reduction.f: New test.
4580         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
4581         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
4583 2005-08-30  Richard Henderson  <rth@redhat.com>
4585         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
4586         function for when aliases are not usable.
4587         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
4588         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4589         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
4590         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
4591         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
4592         GOMP_loop_ordered_guided_next): Likewise.
4593         * ordered.c (GOMP_ordered_start): Likewise.
4595 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
4597         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
4598         * testsuite/libgomp.dg/omp_hello.c: Fix return code
4599         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
4600         * testsuite/libgomp.dg/omp_orphan.c: Likewise
4601         * testsuite/libgomp.dg/omp_reduction.c: Likewise
4602         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
4603         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
4604         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
4605         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
4607 2005-07-07  Eric Christopher  <echristo@redhat.com>
4608             Diego Novillo  <dnovillo@redhat.com>
4610         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
4611         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
4612         up code.
4613         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
4614         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
4615         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
4616         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
4617         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
4618         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
4619         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
4621 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
4623         * TOPLEVEL.patch: Remove.
4625 2005-05-16  Richard Henderson  <rth@redhat.com>
4627         * configure.ac: Test for clock_gettime.
4628         * config.h.in, configure: Rebuild.
4629         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
4630         (omp_get_wtime): Use clock_gettime if available.
4631         (omp_get_wtick): Use clock_getres if available.
4633 2005-05-11  Richard Henderson  <rth@redhat.com>
4635         * config/linux/ia64/futex.h: New file.
4636         * configure.tgt: Use it.
4638         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
4640 2005-05-07  Richard Henderson  <rth@redhat.com>
4642         * config/linux/powerpc/futex.h: New file.
4643         * configure.tgt: Use it.
4645         * config/linux/i486/futex.h: Merge ...
4646         * config/linux/x86_64/futex.h: ... into ...
4647         * config/linux/x86/futex.h: ... here.
4648         * configure.tgt: Update to match.
4650 2005-05-06  Richard Henderson  <rth@redhat.com>
4652         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
4653         * config/linux/i486/futex.h: Likewise.
4654         * config/linux/x86_64/futex.h: Likewise.
4656         * config/linux/lock.c: New file.
4657         * config/linux/omp-lock.h: New file.
4659         * critical.c, env.h: Don't include omp.h
4660         * config/posix/lock.c: Include libgomp.h instead of omp.h.
4661         * config/posix/time.c: Likewise.
4662         * config/posix/omp-lock.h: New file.
4663         * libgomp.h: Include omp-lock.h and omp.h.
4664         * Makefile.am (nodist_include_HEADERS): New.
4665         (omp.h): New rule.
4666         * configure.ac (PERL): New.
4667         * mkomp_h.pl: New file.
4668         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
4669         with templates.
4670         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
4672         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
4673         build directory.  Re-add -march=i486 hack.
4675         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
4676         (libgomp_link_flags): Remove.
4677         (libgomp_initialized): Remove.
4678         (libgomp_init): Don't protect from reinitialization.  Copy code
4679         from libstdc++ for getting the multilib set correctly.
4681 2005-05-05  Richard Henderson  <rth@redhat.com>
4683         * config/linux/alpha/futex.h: New file.
4684         * configure.tgt (alpha*-*-linux*): Use it.
4686         * config/posix/mutex.c: New file.
4687         * config/posix/sem.c: Use libgomp.h.
4689         * configure.tgt (x86_64-linux): Also test CC for -m32.
4690         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
4692         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
4693         after $gccpath.
4695         * Makefile.am (SUBDIRS): New.
4696         (libgomp_la_LDFLAGS): Add -lpthread.
4697         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
4698         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
4700         * libgomp_g.h: New file.
4701         * libgomp.h: Split out all public declarations to libgomp_g.h.
4702         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
4703         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
4704         * config/linux/sem.h: Likewise.
4705         * config/posix/sem.h: Likewise.
4707         * Makefile.am (AM_LDFLAGS): New.
4708         (libgomp_version_script): Split out from ...
4709         (libgomp_la_LDFLAGS): ... here.
4710         (libgomp_version_info): New.
4711         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
4712         (LIBGOMP_ENABLE): New.
4713         (LIBGOMP_CHECK_LINKER_FEATURES): New.
4714         (LIBGOMP_ENABLE_SYMVERS): New.
4715         * configure.ac (AC_INIT): Version 1.0.
4716         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
4717         (enable-linux-futex): Likewise.  Rename from enable-futex.
4718         (libtool_VERSION): New.
4719         (LIBGOMP_ENABLE_SYMVERS): Use it.
4720         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
4721         * Makefile.in, aclocal.m4, configure: Rebuild.
4723         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
4724         (gomp_mutex_unlock_slow): Fix typo.
4725         * config/linux/sem.c: Similarly.
4726         (gomp_sem_post_slow): Fix typo.
4727         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
4728         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
4729         [__PIC__] (sys_futex0): Don't use tmp output in asm.
4731         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
4732         (libgomp_la_LDFLAGS): Add top_srcdir to path.
4733         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
4734         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
4735         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
4736         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
4737         LDFLAGS.  Pull enable_futex check to top-level.
4738         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
4739         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
4741         First attempt at real configury.
4742         * Makefile, config.h: Remove file.
4743         * Makefile.am, Makefile.in: New file.
4744         * acinclude.m4 aclocal.m4: New file.
4745         * configure.ac, configure.tgt, configure: New file.
4747         * config/posix/lock.c: Rename from sys-lock.c.
4748         * config/posix/mutex.h: Rename from sys-mutex.h.
4749         * config/posix/sem.c: Rename from sys-sem.c.
4750         * config/posix/sem.h: Rename from sys-sem.h.
4751         * config/posix/proc.c: Rename from sys-proc.c.
4752         * config/posix/time.c: Rename from sys-proc.c.
4754         * config/linux/mutex.c: New file.
4755         * config/linux/mutex.h: New file.
4756         * config/linux/sem.c: New file.
4757         * config/linux/sem.h: New file.
4758         * config/linux/i486/futex.h: New file.
4759         * config/linux/x86_64/futex.h: New file.
4761 2005-05-04  Richard Henderson  <rth@redhat.com>
4763         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
4764         * libgomp.h: Declare them.
4765         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
4766         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
4768 2005-05-04  Richard Henderson  <rth@redhat.com>
4770         * libgomp-1 code drop
4772 2005-05-04  Richard Henderson  <rth@redhat.com>
4774         * iter.c (gomp_iter_static_next): Return tri-state on 0.
4775         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
4776         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
4777         (gomp_iter_static_next): Update.
4778         (gomp_ordered_static_next): Update.
4779         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
4780         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
4781         totally empty range.
4782         (gomp_loop_ordered_static_next): Refine test for calling
4783         gomp_ordered_static_next.
4784         * testsuite/ordered-1.c: Add case for more threads than iterations.
4786         * iter.c (gomp_iter_runtime_next_locked): Remove.
4787         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
4788         gomp_loop_guided_start, gomp_loop_ordered_static_start,
4789         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
4790         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
4791         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
4792         gomp_loop_ordered_guided_next): Downcase name, make static, add
4793         an external alias with the old name.
4794         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
4795         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
4796         switch and call one of the above static functions.
4797         * libgomp.h: Update.
4799         * work.c (gomp_work_share_start): Lock the mutex for !first too.
4800         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
4801         GOMP_loop_guided_start, GOMP_loop_runtime_start,
4802         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
4803         GOMP_loop_ordered_guided_start): Update to match.
4804         * sections.c (GOMP_sections_start): Likewise.
4805         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
4807         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
4808         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
4809         Use bounds check instead of modulus.
4810         (gomp_ordered_sync): Split out of GOMP_ordered_start.
4811         (gomp_ordered_last): Don't sync with ordered_owner here.
4812         (gomp_ordered_next): Likewise.
4813         (gomp_ordered_static_loop_next): Likewise.
4814         * loop.c, libgomp.h: Update to match.
4816         * libgomp.h (GOMP_barrier): Declare.
4818         * testsuite/barrier-1.c: New file.
4819         * testsuite/critical-1.c: New file.
4820         * testsuite/ordered-2.c: New file.
4821         * testsuite/ordered-1.c: New file.
4822         * testsuite/sections-1.c: New file.
4823         * testsuite/single-1.c: New file.
4824         * testsuite/Makefile (TESTS): Add them.
4826 2005-05-04  Richard Henderson  <rth@redhat.com>
4828         * libgomp.h (struct gomp_work_share): Add ordered_owner.
4829         * loop.c (GOMP_loop_static_start): If not the startup thread,
4830         acquire the mutex to wait for initialization complete.
4831         (GOMP_loop_ordered_static_start): Likewise.
4832         (GOMP_loop_ordered_runtime_start): Likewise.
4833         (GOMP_loop_ordered_static_first): Remove.
4834         (GOMP_loop_ordered_dynamic_first): Remove.
4835         (GOMP_loop_ordered_guided_first): Remove.
4836         (GOMP_loop_ordered_runtime_first): Remove.
4837         * ordered.c (gomp_ordered_loop_first): Post to own release when
4838         we're the first thread.
4839         (gomp_ordered_loop_last): Wait on release if not owner.
4840         (gomp_ordered_loop_next): Likewise.
4841         (gomp_ordered_static_loop_init): New.
4842         (gomp_ordered_static_loop_next): Use ordered_owner.
4843         (GOMP_ordered_start): Likewise.
4844         * work.c (gomp_new_work_share): Initialize ordered_owner.
4846 2005-05-03  Richard Henderson  <rth@redhat.com>
4848         * Makefile (OPT): New.
4849         (CFLAGS): Use it.
4851         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4852         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4853         * libgomp.h, libgomp.map, NOTES: Update to match.
4855         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4856         Add initialized and thr members.
4857         (gomp_thread_start): Pause when initially spawned to wait for
4858         the whole team to be created.
4859         (gomp_team_start): Release team members at the end.
4861         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
4862         (f_foo_1): Use GOMP_loop_end.
4863         (f_foo_2): Use GOMP_loop_end_nowait.
4865         * testsuite/loop-2.c: New file.
4866         * testsuite/Makefile (TESTS): Add it.
4868 2005-05-03  Richard Henderson  <rth@redhat.com>
4870         * iter.c (gomp_iter_static_next): Fix overflow check typo.
4871         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4872         * team.c (new_team): Initialize oldest_live_gen to 1 if no
4873         initial work_share.
4875         * testsuite/Makefile: New file.
4876         * testsuite/loop-1.c: New file.
4878 2005-05-03  Richard Henderson  <rth@redhat.com>
4880         Initial implementation and checkin.