* doc/extend.texi (Size of an asm): Move node text according
[official-gcc.git] / libgomp / ChangeLog
blob769deca9c0509b8c6042fdb643d5c64225f71d1f
1 2014-05-11  Jakub Jelinek  <jakub@redhat.com>
3         * testsuite/libgomp.fortran/cancel-do-1.f90: New test.
4         * testsuite/libgomp.fortran/cancel-do-2.f90: New test.
5         * testsuite/libgomp.fortran/cancel-parallel-1.f90: New test.
6         * testsuite/libgomp.fortran/cancel-parallel-3.f90: New test.
7         * testsuite/libgomp.fortran/cancel-sections-1.f90: New test.
8         * testsuite/libgomp.fortran/cancel-taskgroup-2.f90: New test.
9         * testsuite/libgomp.fortran/declare-simd-1.f90: New test.
10         * testsuite/libgomp.fortran/declare-simd-2.f90: New test.
11         * testsuite/libgomp.fortran/declare-simd-3.f90: New test.
12         * testsuite/libgomp.fortran/depend-1.f90: New test.
13         * testsuite/libgomp.fortran/depend-2.f90: New test.
14         * testsuite/libgomp.fortran/omp_atomic5.f90: New test.
15         * testsuite/libgomp.fortran/simd1.f90: New test.
16         * testsuite/libgomp.fortran/simd2.f90: New test.
17         * testsuite/libgomp.fortran/simd3.f90: New test.
18         * testsuite/libgomp.fortran/simd4.f90: New test.
19         * testsuite/libgomp.fortran/taskgroup1.f90: New test.
21 2014-05-02  Jakub Jelinek  <jakub@redhat.com>
23         * testsuite/libgomp.c/simd-10.c: New test.
24         * testsuite/libgomp.c/simd-11.c: New test.
25         * testsuite/libgomp.c/simd-12.c: New test.
26         * testsuite/libgomp.c/simd-13.c: New test.
28 2014-04-24  Jakub Jelinek  <jakub@redhat.com>
30         * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
31         atomic type clauses in any order and optional comma in between.
32         * testsuite/libgomp.c++/atomic-15.C: Likewise.
33         * testsuite/libgomp.c/atomic-17.c: Likewise.
35         * testsuite/libgomp.c/simd-7.c: New test.
36         * testsuite/libgomp.c/simd-8.c: New test.
37         * testsuite/libgomp.c/simd-9.c: New test.
38         * testsuite/libgomp.c/loop-16.c: New test.
40 2014-04-02  Richard Henderson  <rth@redhat.com>
42         * config/linux/futex.h (futex_wait): Get error value from errno.
43         (futex_wake): Likewise.
45 2014-03-25  Jakub Jelinek  <jakub@redhat.com>
47         PR c++/60331
48         * testsuite/libgomp.c++/udr-11.C: New test.
49         * testsuite/libgomp.c++/udr-12.C: New test.
50         * testsuite/libgomp.c++/udr-13.C: New test.
51         * testsuite/libgomp.c++/udr-14.C: New test.
52         * testsuite/libgomp.c++/udr-15.C: New test.
53         * testsuite/libgomp.c++/udr-16.C: New test.
54         * testsuite/libgomp.c++/udr-17.C: New test.
55         * testsuite/libgomp.c++/udr-18.C: New test.
56         * testsuite/libgomp.c++/udr-19.C: New test.
58 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
60         Update copyright years
62 2014-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
64         * hashtab.h: Use the standard form for the copyright notice.
66 2014-01-02  Tobias Burnus  <burnus@net-b.de>
68         * libgomp.texi: Bump @copying's copyright year.
70 2013-12-17  Andreas Tobler  <andreast@gcc.gnu.org>
72         * testsuite/libgomp.c/affinity-1.c: Remove alloca.h inlcude. Replace
73         alloca () with __builtin_alloca ().
74         * testsuite/libgomp.c/icv-2.c: Add FreeBSD coverage.
75         * testsuite/libgomp.c/lock-3.c: Likewise.
76         * testsuite/libgomp.c/pr48591.c: Likewise.
78 2013-12-17  Jakub Jelinek  <jakub@redhat.com>
80         PR testsuite/59534
81         * testsuite/libgomp.fortran/retval1.f90 (e5): Avoid non-shortcircuited
82         comparisons.
84 2013-12-16  Jakub Jelinek  <jakub@redhat.com>
86         PR libgomp/58756
87         * testsuite/libgomp.c/pr58756.c: New test.
89 2013-12-12  Jakub Jelinek  <jakub@redhat.com>
91         PR libgomp/59467
92         * testsuite/libgomp.fortran/crayptr2.f90: Add private (d) clause to
93         !$omp parallel.
95 2013-11-07  Thomas Schwinge  <thomas@codesourcery.com>
97         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
98         ALWAYS_CFLAGS.
99         * testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
100         * testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
101         * testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
102         * testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
103         Likewise.
105         * libgomp_g.h: Include <stddef.h> for size_t.
107         * libgomp.spec.in: Update comment about libgomp's dependencies.
108         * configure.ac: Likewise.
109         * configure: Regenerate.
111 2013-10-16  Tobias Burnus  <burnus@net-b.de>
113         * libgomp.texi: (Runtime Library Routines): Update references for
114         OpenMP 4.0. Add omp_get_cancellation, omp_get_default_device,
115         omp_get_num_devices, omp_get_num_teams, omp_get_proc_bind,
116         omp_get_team_num, omp_is_initial_device, omp_set_default_device.
117         (Environment Variables): Update references for OpenMP 4.0. Add
118         OMP_CANCELLATION, OMP_DEFAULT_DEVICE, OMP_PLACES.
119         Move OMP_DISPLAY_ENV and OMP_PROC_BIND up to be in alphabetical
120         order.
122 2013-10-14  Jakub Jelinek  <jakub@redhat.com>
124         * env.c (parse_bind_var): Initialize value to avoid
125         (false positive) warning.
127 2013-10-12  Jakub Jelinek  <jakub@redhat.com>
129         PR libgomp/58691
130         * config/linux/proc.c (gomp_cpuset_popcount): Add unused attribute
131         to check variable.
132         (gomp_init_num_threads): Move i variable declaration into
133         #ifdef CPU_ALLOC_SIZE block.
134         * config/linux/affinity.c (gomp_affinity_init_level): Test
135         gomp_places_list_len == 0 rather than gomp_places_list == 0
136         when checking for topology reading error.
137         * team.c (gomp_team_start): Don't handle bind == omp_proc_bind_false.
138         * env.c (parse_affinity): Add ignore argument, if true, don't populate
139         gomp_places_list, only parse env var and always return false.
140         (parse_places_var): Likewise.  Don't check gomp_global_icv.bind_var.
141         (initialize_env): Always parse OMP_PLACES and GOMP_CPU_AFFINITY env
142         vars, default to OMP_PROC_BIND=true if OMP_PROC_BIND wasn't specified
143         and either of these variables were parsed correctly into a places
144         list.
146 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
147             Jakub Jelinek  <jakub@redhat.com>
149         * testsuite/libgomp.graphite/force-parallel-1.c: Expect 4 instead
150         of 5 loopfn matches.
151         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
152         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
153         * testsuite/libgomp.graphite/force-parallel-4.c: Likewise.
154         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
155         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
156         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
157         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
158         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
160 2013-10-11  Thomas Schwinge  <thomas@codesourcery.com>
162         * Makefile.am (omp_lib.mod): Streamline rule.
163         * Makefile.in: Regenerate.
165         * libgomp.texi (Runtime Library Routines): C linkage, don't throw
166         exceptions.
168         * testsuite/libgomp.c/lib-1.c (main): Add missing error check.
169         * testsuite/libgomp.fortran/lib1.f90: Likewise.
170         * testsuite/libgomp.fortran/lib2.f: Likewise.
171         * testsuite/libgomp.fortran/lib3.f: Likewise.
173         * configure.ac: Typo fix.
174         * configure: Regenerate.
176         * testsuite/libgomp.fortran/openmp_version-1.f: New file.
177         * testsuite/libgomp.fortran/openmp_version-2.f90: Likewise.
179         * omp.h.in: Don't touch the user's namespace.
181 2013-10-11  Jakub Jelinek  <jakub@redhat.com>
182             Tobias Burnus  <burnus@net-b.de>
183             Richard Henderson  <rth@redhat.com>
185         * target.c: New file.
186         * Makefile.am (libgomp_la_SOURCES): Add target.c.
187         * Makefile.in: Regenerated.
188         * libgomp_g.h (GOMP_task): Add depend argument.
189         (GOMP_barrier_cancel, GOMP_loop_end_cancel,
190         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
191         GOMP_target_end_data, GOMP_target_update, GOMP_teams,
192         GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
193         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
194         GOMP_parallel, GOMP_cancel, GOMP_cancellation_point,
195         GOMP_taskgroup_start, GOMP_taskgroup_end,
196         GOMP_parallel_sections): New prototypes.
197         * fortran.c (omp_is_initial_device): Add ialias_redirect.
198         (omp_is_initial_device_): New function.
199         (ULP, STR1, STR2, ialias_redirect): Removed.
200         (omp_get_cancellation_, omp_get_proc_bind_, omp_set_default_device_,
201         omp_set_default_device_8_, omp_get_default_device_,
202         omp_get_num_devices_, omp_get_num_teams_, omp_get_team_num_): New
203         functions.
204         * libgomp.map (GOMP_barrier_cancel, GOMP_loop_end_cancel,
205         GOMP_sections_end_cancel, GOMP_target, GOMP_target_data,
206         GOMP_target_end_data, GOMP_target_update, GOMP_teams): Export
207         @@GOMP_4.0.
208         (omp_is_initial_device, omp_is_initial_device_, omp_get_cancellation,
209         omp_get_cancellation_, omp_get_proc_bind, omp_get_proc_bind_,
210         omp_set_default_device, omp_set_default_device_,
211         omp_set_default_device_8_, omp_get_default_device,
212         omp_get_default_device_, omp_get_num_devices, omp_get_num_devices_,
213         omp_get_num_teams, omp_get_num_teams_, omp_get_team_num,
214         omp_get_team_num_): Export @@OMP_4.0.
215         * team.c (struct gomp_thread_start_data): Add place field.
216         (gomp_thread_start): Clear thr->thread_pool and
217         thr->task before returning.  Use gomp_team_barrier_wait_final
218         instead of gomp_team_barrier_wait.  Initialize thr->place.
219         (gomp_new_team): Initialize work_shares_to_free, work_share_cancelled,
220         team_cancelled and task_queued_count fields.
221         (gomp_free_pool_helper): Clear thr->thread_pool and thr->task
222         before calling pthread_exit.
223         (gomp_free_thread): No longer static.  Use
224         gomp_managed_threads_lock instead of gomp_remaining_threads_lock.
225         (gomp_team_start): Add flags argument.  Set
226         thr->thread_pool->threads_busy to nthreads immediately after creating
227         new pool.  Use gomp_managed_threads_lock instead of
228         gomp_remaining_threads_lock.  Handle OpenMP 4.0 affinity.
229         (gomp_team_end): Use gomp_managed_threads_lock instead of
230         gomp_remaining_threads_lock.  Use gomp_team_barrier_wait_final instead
231         of gomp_team_barrier_wait.  If team->team_cancelled, call
232         gomp_fini_worshare on ws chain starting at team->work_shares_to_free
233         rather than thr->ts.work_share.
234         (initialize_team): Don't call gomp_sem_init here.
235         * sections.c (GOMP_parallel_sections_start): Adjust gomp_team_start
236         caller.
237         (GOMP_parallel_sections, GOMP_sections_end_cancel): New functions.
238         * env.c (gomp_global_icv): Add default_device_var, target_data and
239         bind_var initializers.
240         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
241         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
242         gomp_places_list_len): New variables.
243         (parse_bind_var, parse_one_place, parse_places_var): New functions.
244         (parse_affinity): Rewritten to construct OMP_PLACES list with unit
245         sized places.
246         (gomp_cancel_var): New global variable.
247         (parse_int): New function.
248         (handle_omp_display_env): New function.
249         (initialize_env): Use it.  Initialize default_device_var.
250         Parse OMP_CANCELLATION env var.  Use parse_bind_var to parse
251         OMP_PROC_BIND instead of parse_boolean.  Use parse_places_var for
252         OMP_PLACES parsing.  Don't call parse_affinity if OMP_PLACES has
253         been successfully parsed (and call gomp_init_affinity in that case).
254         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
255         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
256         omp_get_team_num, omp_is_initial_device): New functions.
257         * libgomp.h: Include stdlib.h.
258         (ialias_ulp, ialias_str1, ialias_str2, ialias_redirect, ialias_call):
259         Define.
260         (struct target_mem_desc): Forward declare.
261         (struct gomp_task_icv): Add default_device_var, target_data, bind_var
262         and thread_limit_var fields.
263         (gomp_get_num_devices): New prototype.
264         (gomp_cancel_var): New extern decl.
265         (struct gomp_team): Add work_shares_to_free, work_share_cancelled,
266         team_cancelled and task_queued_count fields.  Add comments about
267         task_{,queued_,running_}count.
268         (gomp_cancel_kind): New enum.
269         (gomp_work_share_end_cancel): New prototype.
270         (struct gomp_task): Add next_taskgroup, prev_taskgroup, taskgroup,
271         copy_ctors_done, dependers, depend_hash, depend_count, num_dependees
272         and depend fields.
273         (struct gomp_taskgroup): New type.
274         (struct gomp_task_depend_entry,
275         struct gomp_dependers_vec): New types.
276         (gomp_finish_task): Free depend_hash if non-NULL.
277         (struct gomp_team_state): Add place_partition_off
278         and place_partition_len fields.
279         (gomp_bind_var_list, gomp_bind_var_list_len, gomp_places_list,
280         gomp_places_list_len): New extern decls.
281         (struct gomp_thread): Add place field.
282         (gomp_cpu_affinity, gomp_cpu_affinity_len): Remove.
283         (gomp_init_thread_affinity): Add place argument.
284         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
285         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
286         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
287         gomp_affinity_init_level, gomp_affinity_print_place): New
288         prototypes.
289         (gomp_team_start): Add flags argument.
290         (gomp_thread_limit_var, gomp_remaining_threads_count,
291         gomp_remaining_threads_lock): Remove.
292         (gomp_managed_threads_lock): New variable.
293         (struct gomp_thread_pool): Add threads_busy field.
294         (gomp_free_thread): New prototype.
295         * task.c: Include hashtab.h.
296         (hash_entry_type): New typedef.
297         (htab_alloc, htab_free, htab_hash, htab_eq): New inlines.
298         (gomp_init_task): Clear dependers, depend_hash, depend_count,
299         copy_ctors_done and taskgroup fields.
300         (GOMP_task): Add depend argument, handle depend clauses.  If
301         gomp_team_barrier_cancelled or if it's taskgroup has been
302         cancelled, don't queue or start new tasks.  Set copy_ctors_done
303         field if needed.  Initialize taskgroup field.  If copy_ctors_done
304         and already cancelled, don't discard the task.  If taskgroup is
305         non-NULL, enqueue the task into taskgroup queue.  Increment
306         num_children field in taskgroup.  Increment task_queued_count.
307         (gomp_task_run_pre, gomp_task_run_post_remove_parent,
308         gomp_task_run_post_remove_taskgroup): New inline functions.
309         (gomp_task_run_post_handle_depend_hash,
310         gomp_task_run_post_handle_dependers,
311         gomp_task_run_post_handle_depend): New functions.
312         (GOMP_taskwait): Use them.  If more than one new tasks
313         have been queued, wake other threads if needed.
314         (gomp_barrier_handle_tasks): Likewise.  If
315         gomp_team_barrier_cancelled, don't start any new tasks, just free
316         all tasks.
317         (GOMP_taskgroup_start, GOMP_taskgroup_end): New functions.
318         * omp_lib.f90.in
319         (omp_proc_bind_kind, omp_proc_bind_false,
320         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
321         omp_proc_bind_spread): New params.
322         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
323         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
324         omp_get_team_num, omp_is_initial_device): New interfaces.
325         (omp_get_dynamic, omp_get_nested, omp_in_parallel,
326         omp_get_max_threads, omp_get_num_procs, omp_get_num_threads,
327         omp_get_thread_num, omp_get_thread_limit, omp_set_max_active_levels,
328         omp_get_max_active_levels, omp_get_level, omp_get_ancestor_thread_num,
329         omp_get_team_size, omp_get_active_level, omp_in_final): Remove
330         useless use omp_lib_kinds.
331         * omp.h.in (omp_proc_bind_t): New typedef.
332         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
333         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
334         omp_get_team_num, omp_is_initial_device): New prototypes.
335         * loop.c (gomp_parallel_loop_start): Add flags argument, pass it
336         through to gomp_team_start.
337         (GOMP_parallel_loop_static_start, GOMP_parallel_loop_dynamic_start,
338         GOMP_parallel_loop_guided_start, GOMP_parallel_loop_runtime_start):
339         Adjust gomp_parallel_loop_start callers.
340         (GOMP_parallel_loop_static, GOMP_parallel_loop_dynamic,
341         GOMP_parallel_loop_guided, GOMP_parallel_loop_runtime,
342         GOMP_loop_end_cancel): New functions.
343         (GOMP_parallel_end): Add ialias_redirect.
344         * hashtab.h: New file.
345         * libgomp.texi (Environment Variables): Minor cleanup,
346         update section refs to OpenMP 4.0rc2.
347         (OMP_DISPLAY_ENV, GOMP_SPINCOUNT): Document these
348         environment variables.
349         * work.c (gomp_work_share_end, gomp_work_share_end_nowait): Set
350         team->work_shares_to_free to thr->ts.work_share before calling
351         free_work_share.
352         (gomp_work_share_end_cancel): New function.
353         * config/linux/proc.c: Include errno.h.
354         (gomp_get_cpuset_size, gomp_cpuset_size, gomp_cpusetp): New variables.
355         (gomp_cpuset_popcount): Add cpusetsize argument, use it instead of
356         sizeof (cpu_set_t) to determine number of iterations.  Fix up check
357         extern decl.  Use CPU_COUNT_S if available, or CPU_COUNT if
358         gomp_cpuset_size is sizeof (cpu_set_t).
359         (gomp_init_num_threads): Initialize gomp_cpuset_size,
360         gomp_get_cpuset_size and gomp_cpusetp here, use gomp_cpusetp instead
361         of &cpuset and pass gomp_cpuset_size instead of sizeof (cpu_set_t)
362         to pthread_getaffinity_np.  Free and clear gomp_cpusetp if it didn't
363         contain any logical CPUs.
364         (get_num_procs): Don't call pthread_getaffinity_np if gomp_cpusetp
365         is NULL.  Use gomp_cpusetp instead of &cpuset and pass
366         gomp_get_cpuset_size instead of sizeof (cpu_set_t) to
367         pthread_getaffinity_np.  Check gomp_places_list instead of
368         gomp_cpu_affinity.  Adjust gomp_cpuset_popcount caller.
369         * config/linux/bar.c (gomp_barrier_wait_end,
370         gomp_barrier_wait_last): Use BAR_* defines.
371         (gomp_team_barrier_wait_end): Likewise.  Clear BAR_CANCELLED
372         from state where needed.  Set work_share_cancelled to 0 on last
373         thread.
374         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel_end,
375         gomp_team_barrier_wait_cancel, gomp_team_barrier_cancel): New
376         functions.
377         * config/linux/proc.h (gomp_cpuset_popcount): Add attribute_hidden.
378         Add cpusetsize argument.
379         (gomp_cpuset_size, gomp_cpusetp): Declare.
380         * config/linux/affinity.c: Include errno.h, stdio.h and string.h.
381         (affinity_counter): Remove.
382         (CPU_ISSET_S, CPU_ZERO_S, CPU_SET_S, CPU_CLR_S): Define
383         if CPU_ALLOC_SIZE isn't defined.
384         (gomp_init_affinity): Rewritten, if gomp_places_list is NULL, try
385         silently create OMP_PLACES=threads, if it is non-NULL afterwards,
386         bind current thread to the first place.
387         (gomp_init_thread_affinity): Rewritten.  Add place argument, just
388         pthread_setaffinity_np to gomp_places_list[place].
389         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
390         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
391         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
392         gomp_affinity_init_level, gomp_affinity_print_place): New functions.
393         * config/linux/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
394         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
395         (gomp_barrier_t): Add awaited_final field.
396         (gomp_barrier_init): Initialize awaited_final field.
397         (gomp_team_barrier_wait_final, gomp_team_barrier_wait_cancel,
398         gomp_team_barrier_wait_cancel_end, gomp_team_barrier_cancel): New
399         prototypes.
400         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.  Use BAR_*
401         defines.
402         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final_start,
403         gomp_team_barrier_cancelled): New inline functions.
404         (gomp_barrier_last_thread,
405         gomp_team_barrier_set_task_pending,
406         gomp_team_barrier_clear_task_pending,
407         gomp_team_barrier_set_waiting_for_tasks,
408         gomp_team_barrier_waiting_for_tasks,
409         gomp_team_barrier_done): Use BAR_* defines.
410         * config/posix/bar.c (gomp_barrier_init): Clear cancellable field.
411         (gomp_barrier_wait_end): Use BAR_* defines.
412         (gomp_team_barrier_wait_end): Clear BAR_CANCELLED from state.
413         Set work_share_cancelled to 0 on last thread, use __atomic_load_n.
414         Use BAR_* defines.
415         (gomp_team_barrier_wait_cancel_end, gomp_team_barrier_wait_cancel,
416         gomp_team_barrier_cancel): New functions.
417         * config/posix/affinity.c (gomp_init_thread_affinity): Add place
418         argument.
419         (gomp_affinity_alloc, gomp_affinity_init_place, gomp_affinity_add_cpus,
420         gomp_affinity_remove_cpu, gomp_affinity_copy_place,
421         gomp_affinity_same_place, gomp_affinity_finalize_place_list,
422         gomp_affinity_init_level, gomp_affinity_print_place): New stubs.
423         * config/posix/bar.h (BAR_TASK_PENDING, BAR_WAS_LAST,
424         BAR_WAITING_FOR_TASK, BAR_INCR, BAR_CANCELLED): Define.
425         (gomp_barrier_t): Add cancellable field.
426         (gomp_team_barrier_wait_cancel, gomp_team_barrier_wait_cancel_end,
427         gomp_team_barrier_cancel): New prototypes.
428         (gomp_barrier_wait_start): Preserve BAR_CANCELLED bit.
429         (gomp_barrier_wait_cancel_start, gomp_team_barrier_wait_final,
430         gomp_team_barrier_cancelled): New inline functions.
431         (gomp_barrier_wait_start, gomp_barrier_last_thread,
432         gomp_team_barrier_set_task_pending,
433         gomp_team_barrier_clear_task_pending,
434         gomp_team_barrier_set_waiting_for_tasks,
435         gomp_team_barrier_waiting_for_tasks,
436         gomp_team_barrier_done): Use BAR_* defines.
437         * barrier.c (GOMP_barrier_cancel): New function.
438         * omp_lib.h.in (omp_proc_bind_kind, omp_proc_bind_false,
439         omp_proc_bind_true, omp_proc_bind_master, omp_proc_bind_close,
440         omp_proc_bind_spread): New params.
441         (omp_get_cancellation, omp_get_proc_bind, omp_set_default_device,
442         omp_get_default_device, omp_get_num_devices, omp_get_num_teams,
443         omp_get_team_num, omp_is_initial_device): New externals.
444         * parallel.c (GOMP_parallel, GOMP_cancel, GOMP_cancellation_point):
445         New functions.
446         (gomp_resolve_num_threads): Adjust for thread_limit now being in
447         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
448         infinity.  If not nested, just return minimum of max_num_threads
449         and icv->thread_limit_var and if thr->thread_pool, set threads_busy
450         to the returned value.  Otherwise, don't update atomically
451         gomp_remaining_threads_count, but instead thr->thread_pool->threads_busy.
452         (GOMP_parallel_end): Adjust for thread_limit now being in
453         icv->thread_limit_var.  Use UINT_MAX instead of ULONG_MAX as
454         infinity.  Adjust threads_busy in the pool rather than
455         gomp_remaining_threads_count.  Remember team->nthreads and call
456         gomp_team_end before adjusting threads_busy, if not nested
457         afterwards, just set it to 1 non-atomically.  Add ialias.
458         (GOMP_parallel_start): Adjust gomp_team_start caller.
459         * testsuite/libgomp.c/atomic-14.c: Add parens to make it valid.
460         * testsuite/libgomp.c/affinity-1.c: New test.
461         * testsuite/libgomp.c/atomic-15.c: New test.
462         * testsuite/libgomp.c/atomic-16.c: New test.
463         * testsuite/libgomp.c/atomic-17.c: New test.
464         * testsuite/libgomp.c/cancel-for-1.c: New test.
465         * testsuite/libgomp.c/cancel-for-2.c: New test.
466         * testsuite/libgomp.c/cancel-parallel-1.c: New test.
467         * testsuite/libgomp.c/cancel-parallel-2.c: New test.
468         * testsuite/libgomp.c/cancel-parallel-3.c: New test.
469         * testsuite/libgomp.c/cancel-sections-1.c: New test.
470         * testsuite/libgomp.c/cancel-taskgroup-1.c: New test.
471         * testsuite/libgomp.c/cancel-taskgroup-2.c: New test.
472         * testsuite/libgomp.c/depend-1.c: New test.
473         * testsuite/libgomp.c/depend-2.c: New test.
474         * testsuite/libgomp.c/depend-3.c: New test.
475         * testsuite/libgomp.c/depend-4.c: New test.
476         * testsuite/libgomp.c/for-1.c: New test.
477         * testsuite/libgomp.c/for-1.h: New file.
478         * testsuite/libgomp.c/for-2.c: New test.
479         * testsuite/libgomp.c/for-2.h: New file.
480         * testsuite/libgomp.c/for-3.c: New test.
481         * testsuite/libgomp.c/pr58392.c: New test.
482         * testsuite/libgomp.c/simd-1.c: New test.
483         * testsuite/libgomp.c/simd-2.c: New test.
484         * testsuite/libgomp.c/simd-3.c: New test.
485         * testsuite/libgomp.c/simd-4.c: New test.
486         * testsuite/libgomp.c/simd-5.c: New test.
487         * testsuite/libgomp.c/simd-6.c: New test.
488         * testsuite/libgomp.c/target-1.c: New test.
489         * testsuite/libgomp.c/target-2.c: New test.
490         * testsuite/libgomp.c/target-3.c: New test.
491         * testsuite/libgomp.c/target-4.c: New test.
492         * testsuite/libgomp.c/target-5.c: New test.
493         * testsuite/libgomp.c/target-6.c: New test.
494         * testsuite/libgomp.c/target-7.c: New test.
495         * testsuite/libgomp.c/taskgroup-1.c: New test.
496         * testsuite/libgomp.c/thread-limit-1.c: New test.
497         * testsuite/libgomp.c/thread-limit-2.c: New test.
498         * testsuite/libgomp.c/thread-limit-3.c: New test.
499         * testsuite/libgomp.c/udr-1.c: New test.
500         * testsuite/libgomp.c/udr-2.c: New test.
501         * testsuite/libgomp.c/udr-3.c: New test.
502         * testsuite/libgomp.c++/affinity-1.C: New test.
503         * testsuite/libgomp.c++/atomic-10.C: New test.
504         * testsuite/libgomp.c++/atomic-11.C: New test.
505         * testsuite/libgomp.c++/atomic-12.C: New test.
506         * testsuite/libgomp.c++/atomic-13.C: New test.
507         * testsuite/libgomp.c++/atomic-14.C: New test.
508         * testsuite/libgomp.c++/atomic-15.C: New test.
509         * testsuite/libgomp.c++/cancel-for-1.C: New test.
510         * testsuite/libgomp.c++/cancel-for-2.C: New test.
511         * testsuite/libgomp.c++/cancel-parallel-1.C: New test.
512         * testsuite/libgomp.c++/cancel-parallel-2.C: New test.
513         * testsuite/libgomp.c++/cancel-parallel-3.C: New test.
514         * testsuite/libgomp.c++/cancel-sections-1.C: New test.
515         * testsuite/libgomp.c++/cancel-taskgroup-1.C: New test.
516         * testsuite/libgomp.c++/cancel-taskgroup-2.C: New test.
517         * testsuite/libgomp.c++/cancel-taskgroup-3.C: New test.
518         * testsuite/libgomp.c++/cancel-test.h: New file.
519         * testsuite/libgomp.c++/for-9.C: New test.
520         * testsuite/libgomp.c++/for-10.C: New test.
521         * testsuite/libgomp.c++/for-11.C: New test.
522         * testsuite/libgomp.c++/simd-1.C: New test.
523         * testsuite/libgomp.c++/simd-2.C: New test.
524         * testsuite/libgomp.c++/simd-3.C: New test.
525         * testsuite/libgomp.c++/simd-4.C: New test.
526         * testsuite/libgomp.c++/simd-5.C: New test.
527         * testsuite/libgomp.c++/simd-6.C: New test.
528         * testsuite/libgomp.c++/simd-7.C: New test.
529         * testsuite/libgomp.c++/simd-8.C: New test.
530         * testsuite/libgomp.c++/target-1.C: New test.
531         * testsuite/libgomp.c++/target-2.C: New test.
532         * testsuite/libgomp.c++/target-2-aux.cc: New file.
533         * testsuite/libgomp.c++/target-3.C: New test.
534         * testsuite/libgomp.c++/taskgroup-1.C: New test.
535         * testsuite/libgomp.c++/udr-1.C: New test.
536         * testsuite/libgomp.c++/udr-2.C: New test.
537         * testsuite/libgomp.c++/udr-3.C: New test.
538         * testsuite/libgomp.c++/udr-4.C: New test.
539         * testsuite/libgomp.c++/udr-5.C: New test.
540         * testsuite/libgomp.c++/udr-6.C: New test.
541         * testsuite/libgomp.c++/udr-7.C: New test.
542         * testsuite/libgomp.c++/udr-8.C: New test.
543         * testsuite/libgomp.c++/udr-9.C: New test.
545 2013-09-20  Jakub Jelinek  <jakub@redhat.com>
547         PR testsuite/57605
548         * testsuite/lib/libgomp.exp: Add -fdiagnostics-color=never to
549         ALWAYS_CFLAGS.
551 2013-09-20  Alan Modra  <amodra@gmail.com>
553         * configure: Regenerate.
555 2013-09-19  Jakub Jelinek  <jakub@redhat.com>
557         * testsuite/libgomp.c/sections-2.c: New test.
559 2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
561         * testsuite/libgomp.fortran/strassen.f90:
562         Add dg-skip-if aarch64_tiny.
564 2013-06-20  Iain Sandoe  <iain@codesourcery.com>
565             Cesar Philippidis  <cesar@codesourcery.com>
567         * testsuite/lib/libgomp.exp: Reorder lib loads into dependency order.
568         Do not load_gcc_lib gcc-dg.exp and add a comment as to why.
569         * testsuite/libgomp.c/c.exp: load_gcc_lib gcc-dg.exp.
570         * testsuite/libgomp.fortran/fortran.exp: Likewise.
571         * testsuite/libgomp.graphite/graphite.exp: Likewise.
572         * testsuite/libgomp.c++/c++.exp: load_gcc_lib gcc-dg.exp.
573         Use dg-runtest rather than gfortran-dg-runtest.
575 2013-06-10  Thomas Schwinge  <thomas@codesourcery.com>
577         * testsuite/libgomp.c/icv-2.c: Extend current handling of
578         Linux-based x86 systems to cover all GNU systems.
579         * testsuite/libgomp.c/lock-3.c: Likewise.
580         * testsuite/libgomp.c/pr48591.c: Likewise.
582 2013-06-06  Thomas Schwinge  <thomas@codesourcery.com>
584         * configure.tgt (XCFLAGS): Add -ftls-model=initial-exec for
585         GNU/Hurd, as done for Linux-based systems.
587         * config/posix/ptrlock.h: Fix comment.
589 2013-05-27  Tobias Burnus  <burnus@net-b.de>
591         PR fortran/57423
592         * libgomp.texi (omp_set_dynamic, omp_set_nested, omp_set_nested,
593         omp_set_num_threads, omp_init_lock, omp_set_lock, omp_test_lock,
594         omp_unset_lock, omp_destroy_lock, omp_init_nest_lock,
595         omp_set_nest_lock, omp_test_nest_lock, omp_unset_nest_lock,
596         omp_destroy_nest_lock): Correct arguments to match the one in
597         the OpenMP spec.
598         * omp_lib.f90.in (omp_init_lock, omp_init_nest_lock, omp_destroy_lock
599         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock, omp_unset_lock,
600         omp_unset_nest_lock, omp_set_dynamic, omp_set_nested,
601         omp_set_num_threads, omp_test_lock, omp_test_nest_lock): Ditto.
603 2013-05-16  Jakub Jelinek  <jakub@redhat.com>
605         * testsuite/libgomp.c/loop-13.c: New test.
606         * testsuite/libgomp.c/loop-14.c: New test.
607         * testsuite/libgomp.c/loop-15.c: New test.
608         * testsuite/libgomp.c++/loop-13.C: New test.
609         * testsuite/libgomp.c++/loop-14.C: New test.
610         * testsuite/libgomp.c++/loop-15.C: New test.
612 2013-02-06  Jakub Jelinek  <jakub@redhat.com>
614         PR middle-end/56217
615         * testsuite/libgomp.c++/pr56217.C: New test.
617 2013-02-01  Alan Modra  <amodra@gmail.com>
619         * task.c (GOMP_task, GOMP_taskwait): Comment.
621 2013-01-31  Dmitry Vyukov  <dvyukov@gcc.gnu.org>
622             Joost VandeVondele  <Joost.VandeVondele@mat.ethz.ch>
624         PR libgomp/55561
625         * config/linux/wait.h (do_spin): Use atomic load for addr.
626         * config/linux/ptrlock.c (gomp_ptrlock_get_slow): Use atomic
627         for intptr and ptrlock.
628         * config/linux/ptrlock.h (gomp_ptrlock_get): Use atomic load
629         for ptrlock.
631 2013-01-22  Alan Modra  <amodra@gmail.com>
633         PR libgomp/51376
634         PR libgomp/56073
635         * task.c (GOMP_task): Revert 2011-12-09 change.
636         (GOMP_taskwait): Likewise.  Instead use atomic load with acquire
637         barrier to read task->children..
638         (gomp_barrier_handle_tasks): ..and matching atomic store with
639         release barrier here when setting parent->children to NULL.
641 2013-01-16  Jakub Jelinek  <jakub@redhat.com>
642             Tobias Burnus  <burnus@net-b.de>
644         PR driver/55884
645         * testsuite/libgomp.fortran/fortran.exp: Use
646         -fintrinsic-modules-path= instead of
647         -fintrinsic-modules-path.
649 2013-01-14  Richard Sandiford  <rdsandiford@googlemail.com>
651         Update copyright years.
653 2012-12-19  Tobias Burnus  <burnus@net-b.de>
655         * testsuite/libgomp.fortran/fortran.exp: Set
656         -fintrinsic-modules-path.
658 2012-12-19  Tobias Burnus  <burnus@net-b.de>
660         * testsuite/libgomp.fortran/use_intrinsic_1.f90: New; moved
661         from gcc/testsuite/gfortran.dg/gomp/use_intrinsic_1.f90.
663 2012-11-21  Jakub Jelinek  <jakub@redhat.com>
665         PR libgomp/55411
666         * team.c (gomp_free_thread): Decrease gomp_managed_threads
667         if pool had any threads_used.
669 2012-11-07  Jack Howarth <howarth@bromo.med.uc.edu>
671         * testsuite/libgomp.c++/pr24455.C: Use
672         -Wl,-undefined,dynamic_lookup on darwin.
674 2012-11-07  David Edelsohn  <dje.gcc@gmail.com>
676         * testsuite/libgomp.c++/pr24455.C: Use -Wl,-G on AIX.
678 2012-10-24  Dominique d'Humieres  <dominiq@lps.ens.fr>
680         * testsuite/libgomp.graphite/force-parallel-6.c: Adjust the loops.
682 2012-10-23  Ian Bolton  <ian.bolton@arm.com>
683             Jim MacArthur  <jim.macarthur@arm.com>
684             Marcus Shawcroft  <marcus.shawcroft@arm.com>
685             Nigel Stephens  <nigel.stephens@arm.com>
686             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
687             Richard Earnshaw  <rearnsha@arm.com>
688             Sofiane Naci  <sofiane.naci@arm.com>
689             Stephen Thomas  <stephen.thomas@arm.com>
690             Tejas Belagod  <tejas.belagod@arm.com>
691             Yufeng Zhang  <yufeng.zhang@arm.com>
693         * configure.tgt: Add AArch64.
695 2012-10-04  Jason Merrill  <jason@redhat.com>
697         * testsuite/libgomp.c++/tls-init1.C: New.
699 2012-09-14  David Edelsohn  <dje.gcc@gmail.com>
701         * configure: Regenerated.
703 2012-08-29  Chung-Lin Tang  <cltang@codesourcery.com>
705         * config/linux/mips/futex.h (sys_futex0): Change to static
706         function with noinline, nomips16 attributes under MIPS16. Adjust
707         asm statement to place 'li v0,SYS_futex' immediately before
708         syscall insn.
710 2012-07-04  Sandra Loosemore <sandra@codesourcery.com>
712         * libgomp.texi (Library Index): Renamed from "Index" to prevent
713         conflict with index.html on case-insensitive file systems.
715 2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
717         * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause.
718         * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto.
720 2012-07-02  Richard Guenther  <rguenther@suse.de>
721             Michael Matz  <matz@suse.de>
722             Tobias Grosser <tobias@grosser.es>
723             Sebastian Pop <sebpop@gmail.com>
725         * testsuite/libgomp.graphite/force-parallel-4.c: Adjust.
726         * testsuite/libgomp.graphite/force-parallel-5.c: Likewise.
727         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
728         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
730 2012-06-28  Andreas Schwab  <schwab@linux-m68k.org>
732         * libgomp.texi: Include gpl_v3.texi instead of gpl.texi.
734 2012-06-22  Richard Guenther  <rguenther@suse.de>
736         Merge from graphite branch
737         2012-01-13  Tobias Grosser  <tobias@grosser.es>
739         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
740         * testsuite/libgomp.graphite/force-parallel-2.c: Likewise.
742 2012-06-07  Jakub Jelinek  <jakub@redhat.com>
744         PR middle-end/53580
745         * testsuite/libgomp.c/pr26943-2.c: Remove #pragma omp barrier,
746         use GOMP_barrier () call instead.
747         * testsuite/libgomp.c/pr26943-3.c: Likewise.
748         * testsuite/libgomp.c/pr26943-4.c: Likewise.
749         * testsuite/libgomp.fortran/vla4.f90: Remove !$omp barrier,
750         call GOMP_barrier instead.
751         * testsuite/libgomp.fortran/vla5.f90: Likewise.
753 2012-06-06  Jakub Jelinek  <jakub@redhat.com>
755         PR libgomp/52993
756         * config/linux/lock.c (gomp_init_nest_lock_25): Fix up last
757         argument to memset call.
759 2012-05-16  H.J. Lu  <hongjiu.lu@intel.com>
761         * configure: Regenerated.
763 2012-04-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
765         * testsuite/lib/libgomp.exp: Add -fno-diagnostics-show-caret.
767 2012-03-31  H.J. Lu  <hongjiu.lu@intel.com>
769         PR bootstrap/52812
770         * configure.tgt (i[456]86-*-linux*): Handle -mx32 like -m64.
772 2012-03-22  Jakub Jelinek  <jakub@redhat.com>
774         PR middle-end/52547
775         * testsuite/libgomp.c/pr52547.c: New test.
777 2012-03-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
779         * testsuite/lib/libgomp.exp: load fortran-modules.exp
781 2012-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
783         * configure.tgt (mips-sgi-irix6*): Remove.
785 2012-03-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
787         * configure.tgt (alpha*-dec-osf*): Remove.
789         * config/osf/sem.h: Remove.
790         * config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
792 2012-02-29  Eric Botcazou  <ebotcazou@adacore.com>
794         * config/linux/sparc/futex.h (cpu_relax): Read from CC register.
796 2012-02-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
798         PR libstdc++/52188
799         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Remove symvers_renaming.
800         Remove ENABLE_SYMVERS_SOL2.
801         * configure: Regenerate.
802         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB] (comma): New variable.
803         (PREPROCESS): New variable.
804         (libgomp.ver): New target.
805         [LIBGOMP_BUILD_VERSIONED_SHLIB &&
806         LIBGOMP_BUILD_VERSIONED_SHLIB_GNU]: Remove
807         LIBGOMP_BUILD_VERSIONED_SHLIB_SOL2 handling.
808         Use libgomp.ver.
809         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Use libgomp.ver, libgomp.ver-sun.
810         * Makefile.in: Regenerate.
812 2012-02-14  Walter Lee  <walt@tilera.com>
814         * configure.tgt: Handle tilegx and tilepro.
815         * config/linux/tile/futex.h: New file.
817 2012-02-08  Richard Guenther  <rguenther@suse.de>
819         PR tree-optimization/46886
820         * testsuite/libgomp.c/pr46886.c: New testcase.
822 2012-01-25  Matthias Klose  <doko@ubuntu.com>
824         * config/linux/arm: Remove empty directory.
825         * configure.tgt (config_path): Remove linux-arm for arm*-*-linux*.
827 2011-12-09  Alan Modra  <amodra@gmail.com>
829         PR libgomp/51376
830         * task.c (GOMP_taskwait): Don't access task->children outside of
831         task_lock mutex region.
832         (GOMP_task): Likewise.
834 2011-12-06  Jakub Jelinek  <jakub@redhat.com>
836         PR libgomp/51132
837         * testsuite/libgomp.graphite/force-parallel-1.c: Move large arrays
838         to file scope.
839         * testsuite/libgomp.graphite/force-parallel-3.c: Likewise.
840         * testsuite/libgomp.graphite/force-parallel-6.c: Likewise.
841         * testsuite/libgomp.graphite/force-parallel-7.c: Likewise.
842         * testsuite/libgomp.graphite/force-parallel-8.c: Likewise.
843         * testsuite/libgomp.graphite/force-parallel-9.c: Likewise.
845 2011-12-02  Alan Modra  <amodra@gmail.com>
847         * config/linux/affinity.c: Use atomic rather than sync builtin.
848         * config/linux/lock.c: Likewise.
849         * config/linux/ptrlock.h: Likewise.
850         * config/linux/ptrlock.c: Likewise.
851         * config/linux/ptrlock.h (gomp_ptrlock_set): Always write here..
852         * config/linux/ptrlock.c (gomp_ptrlock_set_slow): ..not here.
853         * config/linux/futex.h (atomic_write_barrier): Delete unused function.
854         * config/linux/alpha/futex.h (atomic_write_barrier): Likewise.
855         * config/linux/ia64/futex.h (atomic_write_barrier): Likewise.
856         * config/linux/mips/futex.h (atomic_write_barrier): Likewise.
857         * config/linux/powerpc/futex.h (atomic_write_barrier): Likewise.
858         * config/linux/s390/futex.h (atomic_write_barrier): Likewise.
859         * config/linux/sparc/futex.h (atomic_write_barrier): Likewise.
860         * config/linux/x86/futex.h (atomic_write_barrier): Likewise.
862 2011-11-30  Alan Modra  <amodra@gmail.com>
864         PR libgomp/51298
865         * config/linux/bar.h: Use atomic rather than sync builtins.
866         * config/linux/bar.c: Likewise.  Add missing acquire
867         synchronisation on generation field.
868         * task.c (gomp_barrier_handle_tasks): Regain lock so as to not
869         double unlock.
871 2011-11-30  Alan Modra  <amodra@gmail.com>
873         * ordered.c (gomp_ordered_sync): Add MEMMODEL_ACQ_REL fence.
874         * critical.c (GOMP_critical_start): Add MEMMODEL_RELEASE fence.
875         * config/linux/mutex.h: Use atomic rather than sync builtins.
876         * config/linux/mutex.c: Likewise.  Comment.  Use -1 for waiting state.
877         * config/linux/omp-lock.h: Comment fix.
878         * config/linux/arm/mutex.h: Delete.
879         * config/linux/powerpc/mutex.h: Delete.
880         * config/linux/ia64/mutex.h: Delete.
881         * config/linux/mips/mutex.h: Delete.
883 2011-11-30  Alan Modra  <amodra@gmail.com>
885         PR libgomp/51249
886         * config/linux/sem.h: Rewrite.
887         * config/linux/sem.c: Rewrite.
889 2011-11-28  Richard Henderson  <rth@redhat.com>
891         * libgomp.h (enum memmodel): New.
893 2011-11-21  Andreas Tobler  <andreast@fgznet.ch>
895         * configure: Regenerate.
897 2011-10-10  Matthias Klose  <doko@ubuntu.com>
899         * config/posix95: Remove empty directory.
901 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
903         * testsuite/libgomp.fortran/threadprivate4.f90: New test.
905 2011-08-19  Jakub Jelinek  <jakub@redhat.com>
907         PR fortran/49792
908         * testsuite/libgomp.fortran/pr49792-1.f90: New test.
909         * testsuite/libgomp.fortran/pr49792-2.f90: New test.
911 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
913         * config/posix95/lock.c, posix95/omp-lock.h: Remove.
915 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
917         PR libgomp/49965
918         * testsuite/libgomp.c++/task-8.C: Replaced err by errval.
920 2011-08-03  Uros Bizjak  <ubizjak@gmail.com>
922         * config/linux/proc.h: New.
923         * config/linux/proc.c: Include "proc.h".  Do not include <sched.h>.
924         (gomp_cpuset_popcount): Rename from cpuset_popcount.  No more static.
925         (gomp_init_num_threads): Update call to cpuset_popcount.
926         (get_num_procs): Ditto.
927         * config/linux/affinity.c (gomp_init_affinity): Call
928         gomp_cpuset_popcount.
930 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
932         PR fortran/42041
933         PR fortran/46752
934         * omp.h.in (omp_in_final): New prototype.
935         * omp_lib.f90.in (omp_in_final): New interface.
936         (omp_integer_kind, omp_logical_kind): Remove
937         and replace all its uses in the module with 4.
938         (openmp_version): Change to 201107.
939         * omp_lib.h.in (omp_sched_static, omp_sched_dynamic,
940         omp_sched_guided, omp_sched_auto): Use omp_sched_kind
941         kind for the parameters.
942         (omp_in_final): New external.
943         (openmp_version): Change to 201107.
944         * task.c (omp_in_final): New function.
945         (gomp_init_task): Initialize final_task.
946         (GOMP_task): Remove unused attribute from flags.  Handle final
947         tasks.
948         (GOMP_taskyield): New function.
949         (omp_in_final): Return true if if (false) or final (true) task
950         or descendant of final (true).
951         * fortran.c (omp_in_final_): New function.
952         * libgomp.map (OMP_3.1): Export omp_in_final and omp_in_final_.
953         (GOMP_3.0): Export GOMP_taskyield.
954         * env.c (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New
955         variables.
956         (parse_unsigned_long_list): New function.
957         (initialize_env): Use it for OMP_NUM_THREADS.  Call parse_boolean
958         with "OMP_PROC_BIND".  If OMP_PROC_BIND=true, call gomp_init_affinity
959         even if parse_affinity returned false.
960         * config/linux/affinity.c (gomp_init_affinity): Handle
961         gomp_cpu_affinity_len == 0.
962         * libgomp_g.h (GOMP_taskyield): New prototype.
963         * libgomp.h (struct gomp_task): Add final_task field.
964         (gomp_nthreads_var_list, gomp_nthreads_var_list_len): New externs.
965         * team.c (gomp_team_start): Override new task's nthreads_var icv
966         if list form OMP_NUM_THREADS has been used and it has value for
967         the new nesting level.
969         * testsuite/libgomp.c/atomic-11.c: New test.
970         * testsuite/libgomp.c/atomic-12.c: New test.
971         * testsuite/libgomp.c/atomic-13.c: New test.
972         * testsuite/libgomp.c/atomic-14.c: New test.
973         * testsuite/libgomp.c/reduction-6.c: New test.
974         * testsuite/libgomp.c/task-5.c: New test.
975         * testsuite/libgomp.c++/atomic-2.C: New test.
976         * testsuite/libgomp.c++/atomic-3.C: New test.
977         * testsuite/libgomp.c++/atomic-4.C: New test.
978         * testsuite/libgomp.c++/atomic-5.C: New test.
979         * testsuite/libgomp.c++/atomic-6.C: New test.
980         * testsuite/libgomp.c++/atomic-7.C: New test.
981         * testsuite/libgomp.c++/atomic-8.C: New test.
982         * testsuite/libgomp.c++/atomic-9.C: New test.
983         * testsuite/libgomp.c++/task-8.C: New test.
984         * testsuite/libgomp.c++/reduction-4.C: New test.
985         * testsuite/libgomp.fortran/allocatable7.f90: New test.
986         * testsuite/libgomp.fortran/allocatable8.f90: New test.
987         * testsuite/libgomp.fortran/crayptr3.f90: New test.
988         * testsuite/libgomp.fortran/omp_atomic3.f90: New test.
989         * testsuite/libgomp.fortran/omp_atomic4.f90: New test.
990         * testsuite/libgomp.fortran/pointer1.f90: New test.
991         * testsuite/libgomp.fortran/pointer2.f90: New test.
992         * testsuite/libgomp.fortran/task4.f90: New test.
994 2011-08-02  Tobias Burnus  <burnus@net-b.de>
996         * libgomp.texi: Update OpenMP spec references to 3.1.
997         (omp_in_final,OMP_PROC_BIND): New sections.
998         (OMP_NUM_THREADS): Document that the value can be now a list.
999         (GOMP_STACKSIZE,GOMP_CPU_AFFINITY): Update @ref.
1001 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
1003         * config/linux/x86/futex.h: Check __x86_64__ instead of
1004         __LP64__.
1006 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
1008         PR middle-end/49897
1009         PR middle-end/49898
1010         * testsuite/libgomp.c/pr49897-1.c: New test.
1011         * testsuite/libgomp.c/pr49897-2.c: New test.
1012         * testsuite/libgomp.c/pr49898-1.c: New test.
1013         * testsuite/libgomp.c/pr49898-2.c: New test.
1015 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
1017         * testsuite/lib/libgomp.exp (libgomp_init): Add -march=i486
1018         for ia32 instead of ilp32.
1020         * testsuite/libgomp.c/atomic-1.c: Require ia32 instead of ilp32.
1021         * testsuite/libgomp.c/atomic-6.c: Likewise.
1023 2011-07-23  Sebastian Pop  <sebastian.pop@amd.com>
1025         * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail.
1026         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern.
1028 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1030         PR libgomp/45351
1031         * config/osf/sem.h: New file.
1032         * configure.tgt (alpha*-dec-osf*): Prepend osf to config_path.
1034 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1036         PR target/49541
1037         * testsuite/lib/libgomp.exp (libgomp_init): Don't add -lgomp to
1038         ldflags.
1040 2011-07-15  Jakub Jelinek  <jakub@redhat.com>
1042         * config/linux/wait.h (do_spin): New inline, largely copied
1043         from do_wait, just don't do futex_wait here, instead return true if
1044         it should be done.
1045         (do_wait): Implement using do_spin.
1046         * config/linux/mutex.h (gomp_mutex_lock_slow): Add an int argument
1047         to prototype.
1048         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1049         __sync_bool_compare_and_swap, pass the oldval to
1050         gomp_mutex_lock_slow.
1051         * config/linux/mutex.c (gomp_mutex_lock_slow): Add oldval argument.
1052         If all mutex contenders are just spinning and not sleeping, don't
1053         change state to 2 unnecessarily.  Optimize the loop when state has
1054         already become 2 to use just one atomic operation per loop instead
1055         of two.
1056         * config/linux/ia64/mutex.h (gomp_mutex_lock_slow): Add an int argument
1057         to prototype.
1058         (gomp_mutex_lock): Use __sync_val_compare_and_swap instead of
1059         __sync_bool_compare_and_swap, pass the oldval to
1060         gomp_mutex_lock_slow.
1062 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
1064         PR libgomp/49490
1065         * iter.c (gomp_iter_static_next): For chunk size 0
1066         only use n ceil/ nthreads size for the first
1067         n % nthreads threads in the team instead of
1068         all threads except for the last few ones which
1069         get less work or none at all.
1070         * iter_ull.c (gomp_iter_ull_static_next): Likewise.
1071         * env.c (parse_schedule): If OMP_SCHEDULE doesn't have
1072         chunk argument, set run_sched_modifier to 0 for static
1073         resp. 1 for other kinds.  If chunk argument is 0
1074         and not static, set value to 1.
1076 2011-05-19  Jakub Jelinek  <jakub@redhat.com>
1078         PR c++/49043
1079         * testsuite/libgomp.c++/pr49043.C: New test.
1081         PR c++/48869
1082         * testsuite/libgomp.c++/pr48869.C: New test.
1084 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
1086         PR fortran/48894
1087         * fortran.c: Include limits.h.
1088         (TO_INT): Define.
1089         (omp_set_dynamic_8_, omp_set_num_threads_8_): Use !!*set instead of
1090         *set.
1091         (omp_set_num_threads_8_, omp_set_schedule_8_,
1092         omp_set_max_active_levels_8_, omp_get_ancestor_thread_num_8_,
1093         omp_get_team_size_8_): Use TO_INT macro.
1094         * testsuite/libgomp.fortran/pr48894.f90: New test.
1096 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
1098         PR middle-end/48591
1099         * testsuite/libgomp.c/pr48591.c: New test.
1101 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1103         PR bootstrap/48135
1104         * acinclude.m4 (enable_symvers): Handle --disable-symvers.
1105         * configure: Regenerate.
1107 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
1109         PR fortran/47886
1110         * testsuite/libgomp.fortran/task3.f90: New test.
1112 2011-02-24  Tobias Burnus  <burnus@net-b.de>
1114         * libgomp.texi (GOMP_STACKSIZE): Fix @ref to OMP_STACKSIZE.
1116 2011-02-23  Jakub Jelinek  <jakub@redhat.com>
1118         PR libgomp/47854
1119         * libgomp.texi (omp_get_wtime): Don't say time in the past
1120         must be Unix Epoch.
1122 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
1124         PR libgomp/47804
1125         * testsuite/libgomp.fortran/fortran.exp: Check for both
1126         libquadmath.a and libquadmath.${shlib_ext}.  If neither exists,
1127         but $blddir != "", still append ${blddir}/${lang_library_path}
1128         to ld_library_path.
1130 2011-02-16  Tobias Burnus  <burnus@net-b.de>
1132         PR libgomp/47758
1133         * testsuite/libgomp.fortran/fortran.exp: Check for the existence
1134         of libquadmath.a before adding its libpath to ldflags.
1136 2011-02-14  Jakub Jelinek  <jakub@redhat.com>
1138         PR libgomp/47731
1139         * config/linux/futex.h (futex_wait): Pass NULL as timeout argument
1140         to FUTEX_WAIT futex syscall.
1141         * config/linux/wait.h: Include <futex.h> instead of "futex.h".
1143 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1145         * configure: Regenerate.
1147 2011-01-20  Benjamin Kosnik  <bkoz@redhat.com>
1149         PR libstdc++/36104
1150         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Accept gnu variants.
1152 2011-01-16  Gerald Pfeifer
1154         * configure.tgt (*-*-freebsd*): Add -lpthread to XLDFLAGS.
1156 2010-12-14  Jakub Jelinek  <jakub@redhat.com>
1158         PR fortran/46874
1159         * libgomp.fortran/allocatable6.f90: New test.
1161 2010-12-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1163         * acinclude.m4 (symvers_renaming): Also set if enable_symvers = no.
1164         * configure: Regenerate.
1166 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
1168         PR target/40125
1169         PR lto/46695
1170         * configure.ac: Invoke ACX_LT_HOST_FLAGS.
1171         * Makefile.am (libgomp_la_LDFLAGS): Use lt_host_flags.
1172         * aclocal.m4: Regenerate.
1173         * configure: Regenerate.
1174         * Makefile.in: Regenerate.
1175         * testsuite/Makefile.in: Regenerate.
1177 2010-12-02  Jakub Jelinek  <jakub@redhat.com>
1179         PR fortran/46753
1180         * libgomp.fortran/pr46753.f90: New test.
1182         PR libgomp/43706
1183         * env.c (initialize_env): Default to spin count 300000
1184         instead of 20000000 if neither OMP_WAIT_POLICY nor GOMP_SPINCOUNT
1185         is specified.
1187         PR libgomp/45240
1188         * parallel.c (GOMP_parallel_end): Unlock gomp_remaining_threads_lock
1189         at the end if sync builtins aren't supported.
1191 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1193         * configure.tgt (mips-sgi-irix6*): Add -lpthread to XLDFLAGS.
1195 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1197         * testsuite/libgomp.fortran/vla8.f90: Use dg-timeout-factor 2.0.
1199 2010-11-24  Iain Sandoe  <iains@gcc.gnu.org>
1201         * testsuite/libgomp.fortran/fortran.exp: Add paths for libquadmath.
1203 2010-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1204             Tobias Burnus  <burnus@net-b.de>
1206         PR fortran/32049
1207         * configure.ac:
1208         * configure: Regenerate.
1210 2010-10-06  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1212         * config/linux/futex.h: New.
1213         * config/linux/arm/mutex.h: New.
1214         * configure.tgt (arm*-*-linux*): Add config path.
1216 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1218         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1220 2010-09-23  Tobias Burnus  <burnus@net-b.de>
1222         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
1223         Change Fortran datatype to LOGICAL.
1224         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
1225         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
1227 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1229         * configure: Regenerate.
1231 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
1233         * libgomp.texi: Add function keyword to a couple of Fortran
1234         interfaces, use integer instead of int for Fortran.
1236 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
1238         * libgomp.texi: Fix spelling and pasto problems throughout.
1239         Adjust prototypes to match code.
1241 2010-07-24  Tobias Burnus  <burnus@net-b.de>
1243         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
1244         silence -fwhole-file warning.
1246 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1248         * configure.tgt (*-*-solaris2.[56]*): Removed.
1250 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1252         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
1253         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
1254         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
1255         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
1256         targetting solaris2*.
1257         * configure: Regenerate.
1258         * config.h.in: Regenerate.
1260         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
1261         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
1262         Add libgomp_version_dep.
1263         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
1264         versioning.
1265         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
1266         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
1267         * Makefile.in: Regenerate.
1269         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
1270         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1271         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
1272         to common block, protected by
1273         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
1275 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
1277         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
1279 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
1281         PR bootstrap/43170
1282         * configure: Regenerate.
1284 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1286         PR other/43620
1287         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
1288         * configure: Regenerate.
1289         * Makefile.in: Regenerate.
1290         * testsuite/Makefile.in: Regenerate.
1292 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
1294         PR c/43893
1295         * testsuite/libgomp.c/pr43893.c: New test.
1296         * testsuite/libgomp.c++/pr43893.C: New test.
1298 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
1300         PR middle-end/43570
1301         * testsuite/libgomp.fortran/vla8.f90: New test.
1303 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
1305         PR libgomp/43706
1306         * config/linux/affinity.c (gomp_init_affinity): Decrease
1307         gomp_available_cpus if affinity mask confines the process to fewer
1308         CPUs.
1309         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
1310         non-NULL, just return gomp_available_cpus.
1312         PR libgomp/43569
1313         * sections.c (gomp_sections_init): Initialize ws->mode.
1315 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
1317         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
1318         not unused bar variable.
1319         * configure: Regenerate.
1321 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1323         * Makefile.in: Regenerate.
1324         * aclocal.m4: Regenerate.
1325         * testsuite/Makefile.in: Regenerate.
1327 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
1329         PR libgomp/42942
1330         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
1331         (initialize_env): Adjust callers.
1332         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
1333         when the argument is 0.
1335         * testsuite/libgomp.c/pr42942.c: New test.
1337 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
1339         PR middle-end/42644
1340         PR middle-end/42130
1341         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
1342         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
1344 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1346         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
1347         * testsuite/libgomp.c++/task-6.C: Likewise.
1349 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
1351         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
1353 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
1355         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
1356         * configure: Regenerate.
1358 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
1360         PR fortran/42866
1361         * testsuite/libgomp.fortran/allocatable5.f90: New test.
1363 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
1365         * configure.ac: Test for executability of GFORTRAN.
1366         * configure: Regenerate.
1368 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1370         * configure: Regenerate.
1372 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
1374         PR libgomp/42602
1375         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
1377 2010-01-03  Richard Guenther  <rguenther@suse.de>
1379         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
1381 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
1383         * testsuite/libgomp.graphite/pr4118.c: New.
1385 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1387         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
1388         for darwin, protect the test with require-effective-target tls_runtime.
1389         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
1391 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1393         PR target/41605
1394         * testsuite/lib/libgomp.exp: Provide -B options to allow for
1395         link spec %s substitutions for static libraries.
1397 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
1399         PR testsuite/42135
1400         * libgomp.graphite/force-parallel-2.c: Reduce array size.
1402 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1404         * Makefile.in: Regenerate.
1405         * configure: Regenerate.
1406         * testsuite/Makefile.in: Regenerate.
1408 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1410         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
1411         settings for LC_ALL and LANG.
1413 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
1415         PR fortran/42162
1416         * testsuite/libgomp.fortran/pr42162.f90: New test.
1418 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
1420         PR middle-end/42029
1421         * testsuite/libgomp.c/pr42029.c: New test.
1423 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
1425         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
1426         *s.  Accept ld version without text in ()s.
1427         * configure: Regenerated.
1429 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
1431         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
1433 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1435         PR libgomp/41418
1436         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
1437         or a hyphen (happens with fortran language disabled).
1438         * configure: Regenerate.
1440 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1442         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
1443         use sed script portable to Solaris /bin/sed for extracting ld
1444         version.
1445         * configure: Regenerate.
1447 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
1449         * testsuite/libgomp.graphite/bounds.c: New test.
1451 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1453         * Makefile.am (libgomp_la_LINK): New.
1454         * Makefile.in: Regenerate.
1456 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1458         * configure.ac (AC_PREREQ): Bump to 2.64.
1460 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1462         * Makefile.am (install-html, install-pdf): Remove.
1463         * Makefile.in: Regenerate.
1465         * Makefile.in: Regenerate.
1466         * aclocal.m4: Regenerate.
1467         * config.h.in: Regenerate.
1468         * configure: Regenerate.
1469         * testsuite/Makefile.in: Regenerate.
1471 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1473         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
1474         * Makefile.in: Regenerate.
1476 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
1478         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
1479         * Makefile.in: Regenerate.
1481 2009-08-19  Tobias Burnus  <burnus@net-b.de>
1483         PR fortran/41102
1484         omp_lib.h.in: Fix -std=f95 errors.
1487 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
1489         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
1490         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
1491         * testsuite/libgomp.graphite/graphite.exp: New.
1493 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
1495         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
1496         only build.
1498 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
1500         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
1501         needed memory barrier semantics.
1502         * config/linux/mips/mutex.h: New file.
1504 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1506         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
1508 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
1510         * configure: Regenerate.
1512 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
1514         PR testsuite/40699
1515         PR testsuite/40707
1516         PR testsuite/40709
1517         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
1518         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
1519         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
1521 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
1523         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
1524         options when choosing a multilib.
1526 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
1528         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
1529         ld_library_path.  Use add_path.  Add just find_libgcc_s to
1530         ld_library_path, not every libgcc multilib directory.
1531         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
1532         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
1533         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
1534         Use add_path.
1535         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
1537 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
1539         * Makefile.am (LTLDFLAGS): Define.
1540         (LINK): Define.
1541         * Makefile.in: Regenerate.
1543 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
1545         PR fortran/39718
1546         * testsuite/libgomp.fortran/fortran.exp: Don't link with
1547         libgfortranbegin, check existence of libgfortran.a instead of
1548         libgfortranbegin.a.
1550 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
1552         PR libgomp/40174
1553         * team.c (gomp_thread_start): Destroy thr->release semaphore.
1554         (gomp_free_pool_helper): Likewise.
1556 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
1557             Jakub Jelinek  <jakub@redhat.com>
1559         PR fortran/35423
1560         * testsuite/libgomp.fortran/workshare2.f90: New test.
1562 2009-04-09  Nick Clifton  <nickc@redhat.com>
1564         * iter.c: Change copyright header to refer to version 3 of the
1565         GNU General Public License with version 3.1 of the GCC Runtime
1566         Library Exception and to point readers at the COPYING3 and
1567         COPYING3.RUNTIME files and the FSF's license web page.
1568         * alloc.c: Likewise.
1569         * barrier.c: Likewise.
1570         * config/bsd/proc.c: Likewise.
1571         * config/linux/affinity.c: Likewise.
1572         * config/linux/alpha/futex.h: Likewise.
1573         * config/linux/bar.c: Likewise.
1574         * config/linux/bar.h: Likewise.
1575         * config/linux/ia64/futex.h: Likewise.
1576         * config/linux/ia64/mutex.h: Likewise.
1577         * config/linux/lock.c: Likewise.
1578         * config/linux/mips/futex.h: Likewise.
1579         * config/linux/mutex.c: Likewise.
1580         * config/linux/mutex.h: Likewise.
1581         * config/linux/powerpc/futex.h: Likewise.
1582         * config/linux/proc.c: Likewise.
1583         * config/linux/ptrlock.c: Likewise.
1584         * config/linux/ptrlock.h: Likewise.
1585         * config/linux/s390/futex.h: Likewise.
1586         * config/linux/sem.c: Likewise.
1587         * config/linux/sem.h: Likewise.
1588         * config/linux/sparc/futex.h: Likewise.
1589         * config/linux/wait.h: Likewise.
1590         * config/linux/x86/futex.h: Likewise.
1591         * config/mingw32/proc.c: Likewise.
1592         * config/mingw32/time.c: Likewise.
1593         * config/posix/affinity.c: Likewise.
1594         * config/posix/bar.c: Likewise.
1595         * config/posix/bar.h: Likewise.
1596         * config/posix/lock.c: Likewise.
1597         * config/posix/mutex.h: Likewise.
1598         * config/posix/proc.c: Likewise.
1599         * config/posix/ptrlock.h: Likewise.
1600         * config/posix/sem.c: Likewise.
1601         * config/posix/sem.h: Likewise.
1602         * config/posix/time.c: Likewise.
1603         * config/posix95/lock.c: Likewise.
1604         * critical.c: Likewise.
1605         * env.c: Likewise.
1606         * error.c: Likewise.
1607         * fortran.c: Likewise.
1608         * iter_ull.c: Likewise.
1609         * libgomp.h: Likewise.
1610         * libgomp_f.h.in: Likewise.
1611         * libgomp_g.h: Likewise.
1612         * loop.c: Likewise.
1613         * loop_ull.c: Likewise.
1614         * omp.h.in: Likewise.
1615         * omp_lib.f90.in: Likewise.
1616         * omp_lib.h.in: Likewise.
1617         * ordered.c: Likewise.
1618         * parallel.c: Likewise.
1619         * sections.c: Likewise.
1620         * single.c: Likewise.
1621         * task.c: Likewise.
1622         * team.c: Likewise.
1623         * work.c: Likewise.
1625 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
1627         * testsuite/config/default.exp: Change copyright header to refer to
1628         version 3 of the GNU General Public License and to point readers
1629         at the COPYING3 file and the FSF's license web page.
1631 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
1633         PR middle-end/39573
1634         * libgomp.c++/pr39573.C: New test.
1636 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
1638         PR other/39591
1639         * testsuite/libgomp.c/pr39591-1.c: New test.
1640         * testsuite/libgomp.c/pr39591-2.c: New test.
1641         * testsuite/libgomp.c/pr39591-3.c: New test.
1643 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
1645         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
1646         * testsuite/libgomp.c/atomic-6.c: Ditto.
1648 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
1650         PR c/39495
1651         * testsuite/libgomp.c/loop-12.c: New test.
1652         * testsuite/libgomp.c/loop-11.c: New test.
1653         * testsuite/libgomp.c++/loop-11.C: New test.
1654         * testsuite/libgomp.c++/loop-12.C: New test.
1655         * testsuite/libgomp.c++/for-8.C: New test.
1657 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1659         * configure: Regenerate.
1661 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
1663         PR middle-end/39154
1664         * testsuite/libgomp.c/pr39154.c: New test.
1666 2009-01-30  Ian Lance Taylor  <iant@google.com>
1668         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
1669         libgomp_ld_is_gold.  Get gold version number.
1670         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
1671         * configure: Rebuild.
1673 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
1675         * testsuite/lib/libgomp.exp: Add -B option for targets that
1676         use libgfortran.a%s in their specs.
1678 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
1680         PR libgomp/38086
1681         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
1682         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
1683         HAVE_AS_SYMVER_DIRECTIVE is not defined.
1684         * configure: Regenerated.
1685         * config.h.in: Likewise.
1687 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
1689         PR c++/38650
1690         * testsuite/libgomp.c/pr38650.c: New test.
1691         * testsuite/libgomp.c++/pr38650.C: New test.
1693 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
1695         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
1697 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
1699         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
1701 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1703         * configure: Regenerate.
1705 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
1707         PR middle-end/36802
1708         * testsuite/libgomp.c/pr36802-1.c: New test.
1709         * testsuite/libgomp.c/pr36802-2.c: New test.
1710         * testsuite/libgomp.c/pr36802-3.c: New test.
1712 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
1714         PR libgomp/38270
1715         * config/linux/powerpc/mutex.h: New.
1717 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
1719         PR c++/38257
1720         * testsuite/libgomp.c++/for-7.C: New test.
1722         PR c++/38348
1723         * testsuite/libgomp.c++/for-6.C: New test.
1725 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
1727         PR testsuite/28870
1728         * testsuite/lib/libgomp.exp: Include new timeout library files.
1729         (libgomp_target_compile): Set timeout value from new proc.
1731 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
1733         PR libgomp/37938
1734         * config/linux/ia64/mutex.h: New.
1736 2008-11-04  Tobias Burnus  <burnus@net-b.de>
1738         PR libgomp/37935
1739         * libgomp.texi (Runtime library routines, environment variables):
1740         Update for OpenMP version 3.0.
1742 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
1743             Steve Ellcey  <sje@cup.hp.com>
1745         * configure: Regenerate for new libtool.
1746         * Makefile.in: Ditto.
1747         * testsuite/Makefile.in: Ditto.
1749 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
1750             Andreas Tobler  <a.tobler@schweiz.org>
1752         * config/bsd/proc.c: New file.
1753         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
1754         * configure.ac: Check for header <sys/sysctl.h>
1755         * configure: Regenerate.
1756         * config.h.in: Likewise.
1758 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
1760         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
1762 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1764         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
1765         * Makefile.in: Regenerated.
1766         * testsuite/Makefile.in: Regenerated.
1768 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
1770         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
1771         depend on blddir if blddir exists.
1772         (libgomp_target_compile): Likewise.
1773         * testsuite/libgomp.c++/c++.exp: Likewise.
1774         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1776 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1778         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
1779         Do not list GPL as Invariant Section.
1781 2008-07-28  Ilie Garbacea  <ilie@mips.com>
1782             Chao-ying Fu  <fu@mips.com>
1784         * configure.tgt: Enable futex for MIPS.
1785         * config/linux/mips/futex.h: New file.
1787 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
1789         * team.c (gomp_team_end): Free team immediately if it has
1790         just one thread.
1792 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
1794         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
1795         * testsuite/libgomp.fortran/fortran.exp: Same.
1796         * testsuite/libgomp.c/c.exp: Same.
1797         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
1798         directory to library path first.
1800 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
1802         * env.c (parse_stacksize): Add cast to avoid warning.
1803         (parse_spincount): Likewise.
1805 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
1807         * testsuite/libgomp.c/loop-10.c: New test.
1808         * libgomp.c/loop-3.c (main): Add lastprivate clause.
1809         * libgomp.c++/loop-6.C (main): Likewise.
1811         PR debug/36617
1812         * testsuite/libgomp.c/debug-1.c: New test.
1814 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
1816         * testsuite/libgomp.c/nqueens-1.c: New test.
1818         PR c++/36523
1819         * testsuite/libgomp.c++/task-7.C: New function.
1821 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1823         * configure: Regenerate.
1825 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1827         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
1828         mutex when HAVE_SYNC_BUILTINS isn't defined.
1830 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1832         * libgomp.texi (omp_test_lock): Fix typo.
1834 2008-06-12  Tobias Burnus  <burnus@net-b.de>
1836         * omp_lib.f90.in: Add "implicit none".
1838 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
1840         PR middle-end/36506
1841         * testsuite/libgomp.c/reduction-5.c: New test.
1843 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
1845         * libgomp.h (struct gomp_task): Add in_tied_task field.
1846         * task.c (gomp_init_task): Initialize it.
1847         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
1848         unconditionally.  Don't call gomp_team_barrier_wake if
1849         current task is implicit or if(0) from implicit and number of
1850         running tasks is equal to nthreads - 1.
1852         PR libgomp/36471
1853         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
1854         omp_get_team_size_8): Fix pastos.
1856         PR libgomp/36469
1857         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
1858         * configure: Regenerated.
1859         * config.h.in: Regenerated.
1860         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
1861         defined.
1863 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
1865         PR bootstrap/36452
1866         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
1867         (GOMP_loop_ull_dynamic_start): Likewise.
1868         (GOMP_loop_ull_guided_start): Likewise.
1869         (GOMP_loop_ull_ordered_static_start): Likewise.
1870         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
1871         (GOMP_loop_ull_ordered_guided_start): Likewise.
1873 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1874             Richard Henderson  <rth@redhat.com>
1875             Ulrich Drepper  <drepper@redhat.com>
1876             Jakob Blomer  <jakob.blomer@ira.uka.de>
1878         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
1879         Substitute also OMP_*LOCK_25*.
1880         * configure: Regenerated.
1881         * config.h.in: Regenerated.
1882         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
1883         ptrlock.c and task.c.
1884         * Makefile.in: Regenerated.
1885         * testsuite/Makefile.in: Regenerated.
1886         * task.c: New file.
1887         * loop_ull.c: New file.
1888         * iter_ull.c: New file.
1889         * libgomp.h: Include ptrlock.h.
1890         (enum gomp_task_kind): New type.
1891         (struct gomp_team): Add task_lock, task_queue, task_count,
1892         task_running_count, single_count fields.  Add
1893         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
1894         Remove work_share_lock, generation_mask,
1895         oldest_live_gen, num_live_gen and init_work_shares fields, add
1896         work work_share_list_alloc, work_share_list_free and work_share_chunk
1897         fields.  Change work_shares from pointer to pointers into an array.
1898         Change ordered_release field into gomp_sem_t ** from flexible array
1899         member.  Add implicit_task and initial_work_shares fields.
1900         Move close to the end of the struct.
1901         (struct gomp_team_state): Add single_count, last_work_share,
1902         active_level and level fields, remove work_share_generation.
1903         (gomp_barrier_handle_tasks): New prototype.
1904         (gomp_finish_task): New inline function.
1905         (struct gomp_work_share): Move chunk_size, end, incr into
1906         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
1907         next_ll fields.  Reshuffle fields.  Add next_alloc,
1908         next_ws, next_free and inline_ordered_team_ids fields, change
1909         ordered_team_ids into pointer from flexible array member.
1910         Add mode field.  Put lock and next into a different cache line
1911         from most of the write-once fields.
1912         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
1913         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
1914         gomp_iter_ull_guided_next): New prototypes.
1915         (gomp_new_icv): New prototype.
1916         (struct gomp_thread): Add thread_pool and task fields.
1917         (struct gomp_thread_pool): New type.
1918         (gomp_new_team): New prototype.
1919         (gomp_team_start): Change type of last argument.
1920         (gomp_new_work_share): Removed.
1921         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
1922         (gomp_work_share_init_done): New static inline.
1923         (gomp_throttled_spin_count_var, gomp_available_cpus,
1924         gomp_managed_threads): New extern decls.
1925         (gomp_init_task): New prototype.
1926         (gomp_spin_count_var): New extern var decl.
1927         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
1928         or no alias support, or if not PIC.
1929         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
1930         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
1931         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
1932         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
1933         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
1934         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
1935         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
1936         gomp_test_nest_lock_25): New prototypes.
1937         (omp_lock_symver, strong_alias): Define.
1938         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
1939         decls.
1940         (gomp_end_task): New.
1941         (struct gomp_task_icv, gomp_global_icv): New.
1942         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
1943         (struct gomp_task): New.
1944         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
1945         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
1946         (gomp_icv): New.
1947         (gomp_schedule_type): Reorder enum to match
1948         omp_sched_t.
1949         * team.c (struct gomp_thread_start_data): Add thread_pool and task
1950         fields.
1951         (gomp_thread_start): Add gomp_team_barrier_wait call.
1952         For non-nested case remove clearing of docked thread thr fields.
1953         Use pool fields instead of global gomp_* variables.  Use
1954         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
1955         Create tasks for each member thread.
1956         (free_team): Only destroy team barrier, task_lock here and free it.
1957         (gomp_free_thread): Free last_team if non-NULL.
1958         (gomp_team_end): Call gomp_team_barrier_wait instead of
1959         gomp_barrier_wait.  For nested case call one extra
1960         gomp_barrier_wait.  Move here some destruction from free_team.
1961         Call free_team on pool->last_team if any, rather than freeing
1962         current team.  Destroy work_share_list_free_lock ifndef
1963         HAVE_SYNC_BUILTINS.
1964         (gomp_new_icv): New function.
1965         (gomp_threads, gomp_threads_size, gomp_threads_used,
1966         gomp_threads_dock): Removed.
1967         (gomp_thread_destructor): New variable.
1968         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
1969         functions.
1970         (gomp_team_start): Create new pool if current thread doesn't have
1971         one.  Use pool fields instead of global gomp_* variables.
1972         Initialize thread_pool field for new threads.  Clear single_count.
1973         Change last argument from ws to team, don't create
1974         new team, set ts.work_share to &team->work_shares[0] and clear
1975         ts.last_work_share.  Don't clear ts.work_share_generation.
1976         If number of threads changed, adjust atomically gomp_managed_threads.
1977         Use gomp_init_task instead of gomp_new_task,
1978         set thr->task to the corresponding implicit_task array entry.
1979         Create tasks for each member thread.  Initialize ts.level.
1980         (initialize_team): Call pthread_key_create on
1981         gomp_thread_destructor.
1982         (team_destructor): New function.
1983         (new_team): Removed.
1984         (gomp_new_team): New function.
1985         (free_team): Free gomp_work_share blocks chained through next_alloc,
1986         instead of freeing work_shares and destroying work_share_lock.
1987         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
1988         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
1989         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
1990         of gomp_barrier_wait.
1991         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
1992         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
1993         if gomp_work_share_start returned true.  Don't unlock ws->lock.
1994         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
1995         of gomp_barrier_wait.
1996         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
1997         gomp_work_share_init_done if gomp_work_share_start returned true.
1998         Don't unlock ws->lock.
1999         * work.c: Include stddef.h.
2000         (free_work_share): Use work_share_list_free_lock instead
2001         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
2002         Call gomp_fini_work_share and then either free ws if orphaned, or
2003         put it into work_share_list_free list of the current team.
2004         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
2005         functions.
2006         (gomp_work_share_start, gomp_work_share_end,
2007         gomp_work_share_end_nowait): Rewritten.
2008         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
2009         (openmp_version): Set to 200805.
2010         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2011         omp_sched_guided, omp_sched_auto): New parameters.
2012         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2013         omp_set_max_active_levels, omp_get_max_active_levels,
2014         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2015         omp_get_active_level): New interfaces.
2016         * omp_lib.h.in (openmp_version): Set to 200805.
2017         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
2018         omp_sched_guided, omp_sched_auto): New parameters.
2019         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2020         omp_set_max_active_levels, omp_get_max_active_levels,
2021         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2022         omp_get_active_level): New externals.
2023         * loop.c: Include limits.h.
2024         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
2025         GFS_AUTO.
2026         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
2027         Likewise.  Use gomp_icv.
2028         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
2029         ts.static_trip here.
2030         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
2031         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
2032         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
2033         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
2034         don't unlock ws->lock, otherwise lock it.
2035         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
2036         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
2037         (gomp_parallel_loop_start): Call gomp_new_team instead of
2038         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
2039         Adjust gomp_team_start caller.  Pass 0 as second argument to
2040         gomp_resolve_num_threads.
2041         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
2042         If adding ws->chunk_size nthreads + 1 times after end won't
2043         overflow, set ws->mode to 1.
2044         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
2045         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
2046         GOMP_loop_ull_ordered_static_start,
2047         GOMP_loop_ull_ordered_dynamic_start,
2048         GOMP_loop_ull_ordered_guided_start,
2049         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
2050         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
2051         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
2052         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
2053         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
2054         prototypes.
2055         * libgomp.map: Export lock routines also @@OMP_2.0.
2056         (GOMP_loop_ordered_dynamic_first,
2057         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
2058         GOMP_loop_ordered_static_first): Remove.
2059         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
2060         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
2061         GOMP_loop_ull_ordered_dynamic_next,
2062         GOMP_loop_ull_ordered_dynamic_start,
2063         GOMP_loop_ull_ordered_guided_next,
2064         GOMP_loop_ull_ordered_guided_start,
2065         GOMP_loop_ull_ordered_runtime_next,
2066         GOMP_loop_ull_ordered_runtime_start,
2067         GOMP_loop_ull_ordered_static_next,
2068         GOMP_loop_ull_ordered_static_start,
2069         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
2070         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
2071         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
2072         (omp_set_schedule, omp_get_schedule,
2073         omp_get_thread_limit, omp_set_max_active_levels,
2074         omp_get_max_active_levels, omp_get_level,
2075         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
2076         omp_set_schedule_, omp_set_schedule_8_,
2077         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2078         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2079         omp_get_max_active_levels_, omp_get_level_,
2080         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2081         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2082         New exports @@OMP_3.0.
2083         * omp.h.in (omp_sched_t): New type.
2084         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2085         omp_set_max_active_levels, omp_get_max_active_levels,
2086         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
2087         omp_get_active_level): New prototypes.
2088         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
2089         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
2090         gomp_thread_limit_var, gomp_remaining_threads_count,
2091         gomp_remaining_threads_lock): New variables.
2092         (parse_spincount): New function.
2093         (initialize_env): Call gomp_init_num_threads unconditionally.
2094         Initialize gomp_available_cpus.  Call parse_spincount,
2095         initialize gomp_{,throttled_}spin_count_var
2096         depending on presence and value of OMP_WAIT_POLICY and
2097         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
2098         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
2099         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
2100         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
2101         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
2102         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
2103         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
2104         (gomp_global_icv): New.
2105         (parse_schedule): Use it.  Parse "auto".
2106         (omp_set_num_threads): Use gomp_icv.
2107         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
2108         Likewise.
2109         (omp_get_max_threads): Move from parallel.c.
2110         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
2111         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
2112         add ialias.
2113         (parse_stacksize, parse_wait_policy): New functions.
2114         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
2115         both wrappers for compatibility and new locks.
2116         (omp_set_schedule, omp_get_schedule,
2117         omp_get_thread_limit, omp_set_max_active_levels,
2118         omp_get_max_active_levels, omp_get_level,
2119         omp_get_ancestor_thread_num, omp_get_team_size,
2120         omp_get_active_level): New ialias_redirect.
2121         (omp_set_schedule_, omp_set_schedule_8_,
2122         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
2123         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
2124         omp_get_max_active_levels_, omp_get_level_,
2125         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
2126         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
2127         New functions.
2128         * parallel.c: Include limits.h.
2129         (gomp_resolve_num_threads): Add count argument.  Rewritten.
2130         (GOMP_parallel_start): Call gomp_new_team and pass that as last
2131         argument to gomp_team_start.  Pass 0 as second argument to
2132         gomp_resolve_num_threads.
2133         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
2134         if gomp_thread_limit_var != ULONG_MAX.
2135         (omp_in_parallel): Implement using ts.active_level.
2136         (omp_get_max_threads): Move to env.c.
2137         (omp_get_level, omp_get_ancestor_thread_num,
2138         omp_get_team_size, omp_get_active_level): New functions,
2139         add ialias.
2140         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
2141         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
2142         gomp_iter_dynamic_next instead of the _locked variant and don't take
2143         lock around it, otherwise acquire it before calling
2144         gomp_iter_dynamic_next_locked.
2145         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
2146         gomp_iter_dynamic_next instead of the _locked variant and don't take
2147         lock around it.
2148         (GOMP_parallel_sections_start): Call gomp_new_team instead of
2149         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
2150         Adjust gomp_team_start caller.  Pass count as second argument to
2151         gomp_resolve_num_threads, don't adjust num_threads after the call.
2152         Use gomp_icv.
2153         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
2154         ws->chunk_size by incr.
2155         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
2156         code.
2157         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
2158         types.
2159         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
2160         (omp_check_defines): Check even the compat defines.
2161         * config/linux/ptrlock.c: New file.
2162         * config/linux/ptrlock.h: New file.
2163         * config/linux/wait.h: New file.
2164         * config/posix/ptrlock.c: New file.
2165         * config/posix/ptrlock.h: New file.
2166         * config/linux/bar.h (gomp_team_barrier_wait,
2167         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2168         (gomp_team_barrier_set_task_pending,
2169         gomp_team_barrier_clear_task_pending,
2170         gomp_team_barrier_set_waiting_for_tasks,
2171         gomp_team_barrier_waiting_for_tasks,
2172         gomp_team_barrier_done): New inlines.
2173         (gomp_barrier_t): Rewritten.
2174         (gomp_barrier_state_t): New typedef.
2175         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
2176         gomp_barrier_wait_start): Rewritten.
2177         (gomp_barrier_wait_end): Change second argument to
2178         gomp_barrier_state_t.
2179         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2180         inlines.
2181         * config/linux/bar.c: Include wait.h instead of libgomp.h and
2182         futex.h.
2183         (gomp_barrier_wait_end): Rewritten.
2184         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2185         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
2186         * config/posix/bar.h (gomp_barrier_t): Add generation field.
2187         (gomp_barrier_state_t): New typedef.
2188         (gomp_team_barrier_wait,
2189         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
2190         (gomp_barrier_wait_start): Or all but low 2 bits from generation
2191         into the return value.  Return gomp_barrier_state_t.
2192         (gomp_team_barrier_set_task_pending,
2193         gomp_team_barrier_clear_task_pending,
2194         gomp_team_barrier_set_waiting_for_tasks,
2195         gomp_team_barrier_waiting_for_tasks,
2196         gomp_team_barrier_done): New inlines.
2197         (gomp_barrier_wait_end): Change second argument to
2198         gomp_barrier_state_t.
2199         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
2200         inlines.
2201         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
2202         (gomp_barrier_wait_end): Change second argument to
2203         gomp_barrier_state_t.
2204         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
2205         gomp_team_barrier_wake): New functions.
2206         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
2207         futex.h.
2208         (gomp_futex_wake, gomp_futex_wait): New variables.
2209         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
2210         * config/linux/lock.c: Rewrite to make locks task owned,
2211         for backwards compatibility provide the old entrypoints
2212         if symbol versioning.  Include wait.h instead of libgomp.h and
2213         futex.h.
2214         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
2215         * config/posix95/lock.c: Rewrite to make locks task owned,
2216         for backwards compatibility provide the old entrypoints
2217         if symbol versioning.
2218         * config/posix/lock.c: Rewrite to make locks task owned,
2219         for backwards compatibility provide the old entrypoints
2220         if symbol versioning.
2221         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
2222         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
2223         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
2224         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2225         (sys_futex0): Return error code.
2226         (futex_wake, futex_wait): If ENOSYS was returned, clear
2227         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2228         (cpu_relax, atomic_write_barrier): New static inlines.
2229         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2230         (futex_wake, futex_wait): If ENOSYS was returned, clear
2231         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2232         (cpu_relax, atomic_write_barrier): New static inlines.
2233         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2234         (sys_futex0): Return error code.
2235         (futex_wake, futex_wait): If ENOSYS was returned, clear
2236         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2237         (cpu_relax, atomic_write_barrier): New static inlines.
2238         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2239         (sys_futex0): Return error code.
2240         (futex_wake, futex_wait): If ENOSYS was returned, clear
2241         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2242         (cpu_relax, atomic_write_barrier): New static inlines.
2243         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2244         (sys_futex0): Return error code.
2245         (futex_wake, futex_wait): If ENOSYS was returned, clear
2246         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2247         (cpu_relax, atomic_write_barrier): New static inlines.
2248         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
2249         (sys_futex0): Return error code.
2250         (futex_wake, futex_wait): If ENOSYS was returned, clear
2251         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
2252         (cpu_relax, atomic_write_barrier): New static inlines.
2253         * config/linux/sem.c: Include wait.h instead of libgomp.h and
2254         futex.h.
2255         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
2256         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
2257         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
2258         types.
2259         (omp_nest_lock_t): Change owner into void *, add lock field.
2260         * config/posix95/omp-lock.h: Include semaphore.h.
2261         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2262         (omp_lock_t): Use sem_t instead of mutex if semaphores
2263         aren't broken.
2264         (omp_nest_lock_t): Likewise.  Change owner to void *.
2265         * config/posix/omp-lock.h: Include semaphore.h.
2266         (omp_lock_25_t, omp_nest_lock_25_t): New types.
2267         (omp_lock_t): Use sem_t instead of mutex if semaphores
2268         aren't broken.
2269         (omp_nest_lock_t): Likewise.  Add owner field.
2271 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
2273         * testsuite/libgomp.c/collapse-1.c: New test.
2274         * testsuite/libgomp.c/collapse-2.c: New test.
2275         * testsuite/libgomp.c/collapse-3.c: New test.
2276         * testsuite/libgomp.c/icv-1.c: New test.
2277         * testsuite/libgomp.c/icv-2.c: New test.
2278         * testsuite/libgomp.c/lib-2.c: New test.
2279         * testsuite/libgomp.c/lock-1.c: New test.
2280         * testsuite/libgomp.c/lock-2.c: New test.
2281         * testsuite/libgomp.c/lock-3.c: New test.
2282         * testsuite/libgomp.c/loop-4.c: New test.
2283         * testsuite/libgomp.c/loop-5.c: New test.
2284         * testsuite/libgomp.c/loop-6.c: New test.
2285         * testsuite/libgomp.c/loop-7.c: New test.
2286         * testsuite/libgomp.c/loop-8.c: New test.
2287         * testsuite/libgomp.c/loop-9.c: New test.
2288         * testsuite/libgomp.c/nested-3.c: New test.
2289         * testsuite/libgomp.c/nestedfn-6.c: New test.
2290         * testsuite/libgomp.c/sort-1.c: New test.
2291         * testsuite/libgomp.c/task-1.c: New test.
2292         * testsuite/libgomp.c/task-2.c: New test.
2293         * testsuite/libgomp.c/task-3.c: New test.
2294         * testsuite/libgomp.c/task-4.c: New test.
2295         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
2296         to C++ testsuite default compiler options.
2297         * testsuite/libgomp.c++/collapse-1.C: New test.
2298         * testsuite/libgomp.c++/collapse-2.C: New test.
2299         * testsuite/libgomp.c++/ctor-10.C: New test.
2300         * testsuite/libgomp.c++/for-1.C: New test.
2301         * testsuite/libgomp.c++/for-2.C: New test.
2302         * testsuite/libgomp.c++/for-3.C: New test.
2303         * testsuite/libgomp.c++/for-4.C: New test.
2304         * testsuite/libgomp.c++/for-5.C: New test.
2305         * testsuite/libgomp.c++/loop-8.C: New test.
2306         * testsuite/libgomp.c++/loop-9.C: New test.
2307         * testsuite/libgomp.c++/loop-10.C: New test.
2308         * testsuite/libgomp.c++/task-1.C: New test.
2309         * testsuite/libgomp.c++/task-2.C: New test.
2310         * testsuite/libgomp.c++/task-3.C: New test.
2311         * testsuite/libgomp.c++/task-4.C: New test.
2312         * testsuite/libgomp.c++/task-5.C: New test.
2313         * testsuite/libgomp.c++/task-6.C: New test.
2314         * testsuite/libgomp.fortran/allocatable1.f90: New test.
2315         * testsuite/libgomp.fortran/allocatable2.f90: New test.
2316         * testsuite/libgomp.fortran/allocatable3.f90: New test.
2317         * testsuite/libgomp.fortran/allocatable4.f90: New test.
2318         * testsuite/libgomp.fortran/collapse1.f90: New test.
2319         * testsuite/libgomp.fortran/collapse2.f90: New test.
2320         * testsuite/libgomp.fortran/collapse3.f90: New test.
2321         * testsuite/libgomp.fortran/collapse4.f90: New test.
2322         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
2323         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
2324         * testsuite/libgomp.fortran/lib4.f90: New test.
2325         * testsuite/libgomp.fortran/lock-1.f90: New test.
2326         * testsuite/libgomp.fortran/lock-2.f90: New test.
2327         * testsuite/libgomp.fortran/nested1.f90: New test.
2328         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
2329         * testsuite/libgomp.fortran/strassen.f90: New test.
2330         * testsuite/libgomp.fortran/tabs1.f90: New test.
2331         * testsuite/libgomp.fortran/tabs2.f: New test.
2332         * testsuite/libgomp.fortran/task1.f90: New test.
2333         * testsuite/libgomp.fortran/task2.f90: New test.
2334         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
2335         * testsuite/libgomp.fortran/vla5.f90: Likewise.
2336         * testsuite/libgomp.c/pr26943-2.c: Likewise.
2337         * testsuite/libgomp.c/pr26943-3.c: Likewise.
2338         * testsuite/libgomp.c/pr26943-4.c: Likewise.
2340 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
2342         PR c++/36308
2343         * testsuite/libgomp.c++/ctor-11.C: New test.
2344         * testsuite/libgomp.c++/ctor-12.C: New test.
2346 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
2348         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
2350 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
2352         PR middle-end/36106
2353         * testsuite/libgomp.c/atomic-5.c: New test.
2354         * testsuite/libgomp.c/atomic-6.c: New test.
2355         * testsuite/libgomp.c/autopar-1.c: New test.
2357 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2359         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
2360         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
2361         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
2362         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
2363         * configure: Regenerate.
2364         * Makefile.in, testsuite/Makefile.in: Likewise.
2366 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
2368         PR bootstrap/35457
2369         * aclocal.m4: Regenerate.
2370         * configure: Regenerate.
2372 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
2374         PR middle-end/35611
2375         * testsuite/libgomp.c/atomic-4.c: New test.
2377         PR libgomp/35625
2378         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
2379         (gomp_iter_guided_next): Likewise.
2380         * testsuite/libgomp.c/pr35625.c: New test.
2382 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2384         * aclocal.m4: Regenerate.
2385         * configure: Likewise.
2386         * Makefile.in: Likewise.
2387         * testsuite/Makefile.in: Likewise.
2389 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
2391         PR middle-end/35185
2392         * testsuite/libgomp.c++/pr35185.C: New test.
2394 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
2396         PR middle-end/35549
2397         * testsuite/libgomp.c/pr35549.c: New test.
2399 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
2401         * testsuite/libgomp.c/atomic-3.c: New test.
2403 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2405         PR fortran/33197
2406         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
2407         .F08 file suffixes.
2409 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
2411         PR libgomp/33131
2412         * configure.ac: Add ACX_HEADER_STRING.
2413         * env.c: Include strings.h.
2414         * aclocal.m4: Regenerate.
2415         * config.h.in: Regenerate.
2416         * configure: Regenerate.
2417         * Makefile.in: Regenerate.
2418         * testsuite/Makefile.in: Regenerate.
2420 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
2422         PR middle-end/35196
2423         * testsuite/libgomp.c/pr35196.c: New test.
2425         PR middle-end/35130
2426         * testsuite/libgomp.fortran/pr35130.f90: New test.
2427         * testsuite/libgomp.c/pr35130.c: New test.
2429 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
2431         PR middle-end/33880
2432         * testsuite/libgomp.c/pr33880.c: New test.
2433         * testsuite/libgomp.fortran/pr33880.f90: New test.
2435 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
2437         * configure: Regenerate.
2439 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
2441         * configure.ac: Move futex checking into ../config/futex.m4.
2442         * configure: Rebuilt.
2443         * aclocal.m4: Rebuilt.
2444         * Makefile.in: Rebuilt.
2446         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
2447         2007-10-15 ../config/tls.m4 change.
2449 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
2451         PR c++/34513
2452         * testsuite/libgomp.c/pr34513.c: New test.
2453         * testsuite/libgomp.c++/pr34513.C: New test.
2455 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
2457         PR target/32765
2458         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
2460 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
2462         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
2464 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
2466         * testsuite/libgomp.c/private-1.c: New test.
2468 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
2469             Paolo Bonzini  <bonzini@gnu.org>
2471         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
2472         instead of 'VPATH ='.
2473         * Makefile.in: Regenerate.
2475 2007-11-23  Matthias Klose  <doko@ubuntu.com>
2477         * configure.ac: Adjust makeinfo version check.
2478         * configure: Regenerate.
2480 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
2482         PR fortran/34020
2483         * testsuite/libgomp.fortran/pr34020.f90: New test.
2485 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
2487         PR c++/33894
2488         * testsuite/libgomp.c++/atomic-1.C: New test.
2490 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
2492         PR libgomp/33275
2493         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
2494         Make x and y integers rather than (implicit) reals.  Add private (j)
2495         clause to the last omp parallel.
2497 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
2499         * configure: Regenerate following changes to ../config/tls.m4.
2501 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
2503         * testsuite/libgomp.fortran/stack.f90: New test.
2505 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
2507         * config/mingw32/proc.c: New file.
2509 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
2511         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
2512         (main): Use __get_cpuid to get i386 target fetaures.
2513         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
2514         (main): Use __get_cpuid to get x86_64 target fetaures.
2516 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
2518         PR target/32765
2519         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
2520         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
2522 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
2524         PR fortran/32550
2525         * testsuite/libgomp.fortran/pr32550.f90: New test.
2526         * testsuite/libgomp.fortran/crayptr2.f90: New test.
2528 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
2530         * aclocal.m4: Regenerated.
2532 2007-07-05  Tobias Burnus  <burnus@net-b.de>
2534         PR fortran/32359
2535         * testsuite/libgomp.fortran/pr32359.f90: New.
2537 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
2539         PR libgomp/32468
2540         * sections.c (GOMP_parallel_sections_start): Only decrease
2541         number of threads to COUNT if dyn_var is true.
2542         * testsuite/libgomp.c/pr32468.c: New test.
2544 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2546         PR libgomp/26308
2547         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
2549 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
2551         PR middle-end/32362
2552         * testsuite/libgomp.c/pr32362-1.c: New test.
2553         * testsuite/libgomp.c/pr32362-2.c: New test.
2554         * testsuite/libgomp.c/pr32362-3.c: New test.
2556 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
2558         * team.c (gomp_team_start): Fix setting up thread_attr
2559         stack size.
2561 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
2563         * configure: Regenerate.
2565 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
2567         * Makefile.in: Regenerate.
2568         * configure: Regenerate.
2569         * aclocal.m4: Regenerate.
2570         * testsuite/Makefile.in: Regenerate.
2572 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
2574         * config/linux/proc.c: New file.
2576         PR libgomp/28482
2577         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
2579 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
2581         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
2583 2007-04-16  Matthias Klose  <doko@debian.org>
2585         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
2586         flags if not building with -m64.
2587         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
2588         flag for i?86-*-* targets, if current target matches -m64.
2590 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
2592         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
2593         * Makefile.in: Regenerate.
2595 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2597         PR testsuite/31369
2598         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
2599         ld_library_path.
2600         * testsuite/libgomp.fortran/fortran.exp: Likewise.
2602 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
2604         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
2605         decls.
2606         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
2607         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
2608         (parse_affinity): New function.
2609         (initialize_env): Call it and gomp_init_affinity.
2610         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
2611         create new pthread_attr_t and call gomp_init_thread_affinity
2612         on it for each thread before passing the attribute to pthread_create.
2613         * config/linux/affinity.c: New file.
2614         * config/posix/affinity.c: New file.
2615         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
2616         * configure: Rebuilt.
2617         * config.h.in: Rebuilt.
2618         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
2619         * Makefile.in: Rebuilt.
2621 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
2623         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
2624         *-*-darwin*.
2625         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
2626         and use it if found.
2628 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
2630         * testsuite/config/default.exp: New file.
2631         * testsuite/lib/libgomp.exp: New file.
2632         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
2633         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
2634         load_lib *, load_gcc_lib *): Move to libgomp.exp.
2635         (libgomp_load): Remove.
2636         * testsuite/lib/libgomp.exp (libgomp_init): Compute
2637         always_ld_library_path, not ld_library_path.  Set additional_flags
2638         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
2639         (target_compile): Do not call libgomp_init.  Append lang_library_path
2640         and lang_link_flags to options.
2641         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
2642         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
2643         here.
2644         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
2645         always_ld_library_path.  Set LD_LIBRARY_PATH here.
2646         * testsuite/libgomp.fortran/fortran.exp: Ditto.
2647         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
2648         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
2649         CX8 flag.
2650         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
2651         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
2652         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
2653         * testsuite/libgomp.c/pr29947-1.c: Ditto.
2654         * testsuite/libgomp.c/atomic-10.c: Ditto.
2656 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
2658         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
2659         dg-final cleanup-modules line.
2660         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
2661         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
2662         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
2663         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
2664         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
2665         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
2666         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
2668 2007-03-18  Andreas Schwab  <schwab@suse.de>
2670         * acinclude.m4: Adjust regular expression for ld version
2671         extraction.
2672         * configure: Regenerate.
2674 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
2676         * Makefile.am: Add install-pdf target as copied from
2677         automake v1.10 rules.
2678         * Makefile.in: Regenerate
2680 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
2682         PR libgomp/28486
2683         * configure: Regenerate.
2685         PR c++/30703
2686         * testsuite/libgomp.c++/pr30703.C: New test.
2688 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
2690         Revert:
2691         2006-07-05  Eric Christopher  <echristo@apple.com>
2692         * configure.ac: Depend addition of -pthread on host OS.
2693         * configure: Regenerate.
2695 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2697         * libgomp.texi: Fix spacing after abbreviations.
2699 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
2701         PR libgomp/30546
2702         * configure.ac: Add check for makeinfo
2703         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
2704         if an appropiate version of makeinfo is found.
2705         * aclocal.m4: Regenerated.
2706         * configure: Regenerated.
2707         * Makefile.in: Regenerated.
2708         * testsuite/Makefile.in: Regenerated.
2710 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
2712         PR libgomp/30540
2713         * libgomp.texi: More about implementation-dependent settings.
2715 2007-01-26  Tobias Burnus  <burnus@net-b.de>
2717         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
2719 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
2721         PR middle-end/30494
2722         * testsuite/libgomp.c/pr30494.c: New test.
2724 2007-01-15  Tom Tromey  <tromey@redhat.com>
2726         * configure: Rebuilt.
2727         * configure.ac: Fixed comment.
2729 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
2731         * libgomp.texi: Document implementation specific default values of
2732         environment variables.
2734 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
2736         PR libgomp/28209
2737         * libgomp.texi: New file.
2738         * configure.ac: Add --enable-generated-files-in-srcdir option.
2739         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
2740         files to srcdir.
2741         * Makefile.in: Regenerated.
2742         * config.h.in: Regenerated.
2743         * testsuite/Makefile.in: Regenerated.
2744         * NOTES: Removed.
2746 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
2748         PR libgomp/29949
2749         * env.c (omp_set_num_threads): Set illegal thread count to 1.
2751 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
2753         * configure: Regenerate.
2755 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
2757         PR libgomp/29947
2758         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
2759         start if there shouldn't be any loop iterations.
2760         (gomp_loop_ordered_static_start): Remove start == end test.
2761         * testsuite/libgomp.c/pr29947-1.c: New test.
2762         * testsuite/libgomp.c/pr29947-2.c: New test.
2764 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
2766         * configure.tgt: Force initial-exec TLS model on Linux only.
2768 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
2770         * configure: Regenerated.
2772 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
2774         * env.c (parse_schedule): Reject out of range values.
2775         (parse_unsigned_long): Reject out of range, negative or zero values.
2777 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
2779         PR fortran/29629
2780         * testsuite/libgomp.fortran/pr29629.f90: New test.
2782 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2784         PR libgomp/29494
2785         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
2786         * config/posix95: New directory.
2787         * config/posix95/omp-lock.h: New file.
2788         * config/posix95/lock.c: Likewise.
2790 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
2792         * aclocal.m4: Regenerate.
2793         * configure: Regenerate.
2795 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2797         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
2798         '<' to '<='.
2800 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
2802         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
2803         test.
2804         * configure: Regenerate.
2805         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
2807 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
2809         PR middle-end/25261
2810         PR middle-end/28790
2811         * testsuite/libgomp.c/nestedfn-4.c: New test.
2812         * testsuite/libgomp.c/nestedfn-5.c: New test.
2813         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
2815         PR fortran/29097
2816         * testsuite/libgomp.fortran/condinc1.f: New test.
2817         * testsuite/libgomp.fortran/condinc2.f: New test.
2818         * testsuite/libgomp.fortran/condinc3.f90: New test.
2819         * testsuite/libgomp.fortran/condinc4.f90: New test.
2820         * testsuite/libgomp.fortran/condinc1.inc: New file.
2822 2006-09-18  Tom Tromey  <tromey@redhat.com>
2824         * configure: Rebuilt.
2826 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
2828         PR c/28768
2829         PR preprocessor/14634
2830         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
2831         to AC_DEFINE.
2832         * configure: Regenerate.
2834 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
2836         * testsuite/libgomp.fortran/reduction3.f90: Change
2837         -2147483648 to -huge(i)-1 to avoid overflow.
2838         * testsuite/libgomp.fortran/reduction4.f90: Change
2839         Z'ffffffff' to not(0) to avoid overflow.
2841 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
2843         PR libgomp/25938
2844         * Makefile.am (libsubincludedir): New.
2845         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
2846         * Makefile.in: Regenerate.
2848 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
2850         PR libgomp/28725
2851         * env.c: Include ctype.h.
2852         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
2853         leading and/or trailing whitespace and compare strings case
2854         insensitively.
2856 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
2858         PR fortran/28390
2859         * testsuite/libgomp.fortran/pr28390.f: New test.
2861 2006-07-05  Eric Christopher  <echristo@apple.com>
2863         * configure.ac: Depend addition of -pthread on host OS.
2864         * configure: Regenerate.
2866 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
2868         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
2869         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
2870         defined.
2872 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
2874         PR libgomp/26175
2875         PR libgomp/26477
2876         * configure.ac: If neither --enable-linux-futex nor
2877         --disable-linux-futex is passed, determine the default by checking
2878         for compiling and/or running against NPTL.  With --enable-linux-futex,
2879         check if SYS_gettid and SYS_futex are defined.
2880         * configure: Rebuilt.
2882 2006-06-14  Richard Henderson  <rth@redhat.com>
2884         PR libgomp/28008
2885         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
2886         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
2888 2006-06-09  Richard Henderson  <rth@redhat.com>
2890         * env.c (gomp_nthreads_var): Change to unsigned long.
2891         (gomp_run_sched_chunk): Likewise.
2892         (parse_unsigned_long): Rename from parse_num_threads and generalize.
2893         (initialize_env): Initialize gomp_thread_attr.
2894         * libgomp.h (gomp_nthreads_var): Update decl.
2895         (gomp_run_sched_chunk): Likewise.
2896         (gomp_thread_attr): Declare.
2897         * team.c (gomp_thread_attr): Export.
2898         (initialize_team): Don't initialize it.
2900 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
2902         PR fortran/27916
2903         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
2904         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
2906 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2908         * config/mingw32/time.c: New file.
2909         * configure.tgt: Use it.
2911 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
2913         * Makefile.am: Add install-html target. Add install-html to .PHONY
2914         * Makefile.in: Regenerate.
2916 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2918         PR libgomp/27612
2919         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
2920         * testsuite/libgomp.c/critical-1.c: Likewise.
2921         * testsuite/libgomp.c/loop-1.c: Likewise.
2922         * testsuite/libgomp.c/loop-2.c: Likewise.
2923         * testsuite/libgomp.c/single-1.c: Likewise.
2924         * testsuite/libgomp.c/ordered-1.c: Likewise.
2925         * testsuite/libgomp.c/ordered-2.c: Likewise.
2927 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
2929         PR middle-end/27416
2930         * libgomp.fortran/pr27416-1.f90: New test.
2932 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
2934         PR fortran/27395
2935         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
2936         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
2938 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2940         PR c++/26943
2941         * testsuite/libgomp.c/pr26943-1.c: New test.
2942         * testsuite/libgomp.c/pr26943-2.c: New test.
2943         * testsuite/libgomp.c/pr26943-3.c: New test.
2944         * testsuite/libgomp.c/pr26943-4.c: New test.
2945         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
2946         * testsuite/libgomp.c++/pr26943.C: New test.
2948 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
2950         PR middle-end/27337
2951         * testsuite/libgomp.c++/pr27337.C: New test.
2953 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
2955         PR c/26171
2956         * testsuite/libgomp.c/pr26171.c: New test.
2958 2006-04-25  Richard Henderson  <rth@redhat.com>
2960         PR libgomp/25865
2961         * configure.ac: Use GCC_CHECK_TLS.
2962         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
2963         * Makefile.in, aclocal.m4, configure: Regenerate.
2965 2006-04-10  Matthias Klose  <doko@debian.org>
2967         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
2968         directory names containing underscores.
2970 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
2972         PR c++/26691
2973         * testsuite/libgomp.c++/pr26691.C: New test.
2975 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
2977         * testsuite/libgomp.fortran/retval2.f90: New test.
2979 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
2981         * testsuite/libgomp.c++: New directory.
2983 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
2985         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
2986         * config/posix/sem.c: Implement the above.
2988 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
2990         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
2991         define HAVE_BROKEN_POSIX_SEMAPHORES.
2992         * configure: Rebuilt.
2993         * config.h.in: Rebuilt.
2995 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2997         PR bootstrap/26161
2998         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
2999         for the other pthread check.
3000         * configure: Regenerate.
3001         * config.h.in: Regenerate.
3003 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3005         PR libgomp/25938
3006         PR libgomp/25984
3007         * Makefile.am (fincludedir): New variable.
3008         (nodist_include_HEADERS): Remove Fortran files.
3009         (nodist_finclude_HEADERS): New variable.
3010         * Makefile.in: Regenerated.
3012 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
3014         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
3015         Remove tests for returning assumed character length arrays.
3017 2006-02-12  Roger Sayle  <roger@eyesopen.com>
3018             John David Anglin  <dave@hiauly1.hia.nrc.ca>
3020         PR libgomp/25936
3021         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
3023 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
3025         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
3027 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3029         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
3030         part of LD_LIBRARY_PATH manually.
3032 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
3034         PR libgomp/25852
3035         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
3036         libgomp_init.
3038 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
3040         PR libgomp/25884
3041         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
3042         * configure.ac (PERL): Don't set.
3043         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
3044         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
3045         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
3046         * omp.h.in: Wrap the new configure substitutions with @ characters.
3047         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
3048         * aclocal.m4, configure, Makefile.in: Regenerate.
3049         * mkomp_h.pl: Delete.
3051 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
3053         PR libgomp/25259
3054         * configure.ac: Use GCC_HEADER_STDINT.
3055         * libgomp.h: Include gstdint.h.
3056         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
3057         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
3059 2006-01-24  Richard Henderson  <rth@redhat.com>
3061         PR libgomp/25942
3062         * configure.ac: Add AM_MAINTAINER_MODE.
3063         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
3065 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
3067         * Makefile.in: Regenerate.
3068         * testsuite/Makefile.in: Regenerate.
3069         * aclocal.m4: Regenerate.
3071 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
3073         * config/posix/proc.c: Conditional include of sys/loadavg.h for
3074         Solaris.
3075         * configure.ac: Add check for loadavg.h.
3076         (link_gomp): Adjust comment.
3077         * configure: Regenerate.
3078         * config.h.in: Regenerate.
3080 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
3082         PR libgomp/25877
3083         * configure.ac: Remove check for alloca.h.
3084         * configure: Regenerate.
3085         * config.h.in: Regenerate.
3086         * libgomp.h: define gomp_alloca to be __builtin_alloca.
3087         * team.c: Remove use of alloca.h.
3088         Call gomp_alloca instead of alloca.
3090 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
3092         PR libgomp/25877
3093         * team.c: Add include of alloca.h.
3094         * configure.ac: Add check for alloca.h.
3095         * configure: Regenerate.
3096         * config.h.in: Regenerate.
3098 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
3100         PR fortran/25219
3101         * testsuite/libgomp.fortran/pr25219.f90: New test.
3103 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
3105         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
3106         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
3107         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3108         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3109         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
3110         testsuite/libgomp.fortran/threadprivate1.f90,
3111         testsuite/libgomp.fortran/threadprivate2.f90,
3112         testsuite/libgomp.fortran/threadprivate3.f90,
3113         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3114         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3115         testsuite/libgomp.fortran/omp_parse3.f90: Change required
3116         effective-target to TLS runtime.
3118         * testsuite/libgomp.fortran/pr25162.f: Require
3119         effective-target TLS runtime.
3121 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
3123         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
3124         * testsuite/libgomp.c/nestedfn-3.c: New test.
3126 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
3128         PR fortran/25162
3129         * testsuite/libgomp.fortran/pr25162.f: New test.
3131 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
3133         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
3134         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
3136 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
3138         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
3139         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
3140         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
3141         single.c, team.c, work.c, config/linux/alpha/futex.h,
3142         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
3143         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
3144         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
3145         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
3146         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
3147         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
3148         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
3149         FSF address.
3151 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3153         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
3154         to nodist_noinst_HEADERS.
3155         * Makefile.in: Rebuilt.
3157         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
3158         add integer count field.
3159         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
3160         omp_nest_lock_t type change.
3161         (omp_init_nest_lock): Likewise.  Initialize count to 0.
3162         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
3163         Increment count.
3164         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
3165         Decrement count.
3166         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
3167         Increment count if successful and return the new nesting level.
3168         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
3169         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
3170         * testsuite/libgomp.c/lib-1.c: New test.
3171         * testsuite/libgomp.fortran/lib1.f90: New test.
3172         * testsuite/libgomp.fortran/lib2.f: New test.
3173         * testsuite/libgomp.fortran/lib3.f: New test.
3175 2005-11-17  Richard Henderson  <rth@redhat.com>
3177         PR 24845
3178         * Makefile.am (nodist_toolexeclib_HEADERS): New.
3179         * configure.ac (link_gomp): New.  Substitute it.
3180         (AC_CONFIG_FILES): Add libgomp.spec.
3181         * libgomp.spec.in: New file.
3182         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
3183         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
3185 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
3187         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
3188         reduction(-:var) behaving the same as reduction(+:var).
3189         * testsuite/libgomp.c/reduction-4.c: New test.
3191 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
3193         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
3194         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
3195         testsuite/libgomp.c/copyin-3.c,
3196         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
3197         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
3198         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
3199         testsuite/libgomp.c++/pr24455.C,
3200         testsuite/libgomp.fortran/threadprivate1.f90,
3201         testsuite/libgomp.fortran/threadprivate2.f90,
3202         testsuite/libgomp.fortran/threadprivate3.f90,
3203         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
3204         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
3205         testsuite/libgomp.fortran/omp_parse3.f90: Require
3206         effective-target TLS.
3208 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
3210         * HEADER: Remove.
3212 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
3214         PR libgomp/24797
3215         * team.c (initialize_team): Pass NULL rather than free as
3216         pthread_key_create destructor.  Initialize thread specific data
3217         pointer in initial thread to a static local variable rather than
3218         malloced memory.
3220 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
3222         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
3223         its location to ld_library_path.
3225 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3227         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
3229 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
3231         * testsuite/libgomp.c: Rename from libgomp.dg.
3233 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
3235         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
3236         threadprivate variable 'i'.
3238 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
3240         * config/linux/s390/futex.h: New file.
3241         * configure.tgt: Use it.
3243         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
3244         before the parallel.
3246 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
3248         PR c++/24734
3249         * testsuite/libgomp.c++/master-1.C: New test.
3251 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3253         * testsuite/libgomp.dg/copyin-3.c: New test.
3255 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
3257         * testsuite/libgomp.fortran/retval1.f90: New test.
3258         * testsuite/libgomp.fortran/vla7.f90: New test.
3260 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
3262         * testsuite/libgomp.fortran/vla2.f90: New test.
3263         * testsuite/libgomp.fortran/vla3.f90: New test.
3264         * testsuite/libgomp.fortran/vla4.f90: New test.
3265         * testsuite/libgomp.fortran/vla5.f90: New test.
3266         * testsuite/libgomp.fortran/vla6.f90: New test.
3268 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
3270         * config/linux/sparc/futex.h: New file.
3271         * configure.tgt: Use it.
3272         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
3274         * critical.c: Include stdlib.h.
3275         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
3276         ignoring return value.
3277         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
3278         LIBGOMP_CHECK_SYNC_BUILTINS check.
3279         * configure: Rebuilt.
3281 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3283         * testsuite/libgomp.fortran/vla1.f90: New test.
3285 2005-10-31  Richard Henderson  <rth@redhat.com>
3287         * testsuite/libgomp.fortran/character2.f90: Fix race condition
3288         setting 's' in different threads.
3290 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
3292         * libgomp.h (attribute_hidden, ialias): Define.
3293         * config/posix/proc.c (omp_get_num_procs): Add ialias.
3294         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
3295         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
3296         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3297         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3298         omp_test_lock, omp_test_nest_lock): Likewise.
3299         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
3300         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
3301         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
3302         omp_test_lock, omp_test_nest_lock): Likewise.
3303         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
3304         omp_get_dynamic, omp_get_nested): Likewise.
3305         * parallel.c (omp_get_num_threads, omp_get_max_threads,
3306         omp_get_thread_num, omp_in_parallel): Likewise.
3307         * fortran.c (ialias_redirect): Define.
3308         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
3309         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
3310         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
3311         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
3312         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
3313         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
3314         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
3315         omp_get_wtime): Add ialias_redirect.
3317 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
3319         * fortran.c: Include stdlib.h.
3321 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
3323         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
3324         * Makefile.in: Regenerated.
3326 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
3328         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
3329         * libgomp_f.h.in (omp_check_defines): New function.
3330         * env.c: Include libgomp_f.h.
3331         (initialize_env): Call omp_check_defines.
3333         * testsuite/libgomp.dg/copyin-2.c: New test.
3334         * testsuite/libgomp.c++/copyin-2.C: New test.
3335         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
3337         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
3338         * testsuite/libgomp.fortran/sharing2.f90: New test.
3340         * testsuite/libgomp.dg/copyin-1.c: New test.
3341         * testsuite/libgomp.c++/copyin-1.C: New test.
3343 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
3345         * testsuite/libgomp.fortran/crayptr1.f90: New test.
3347         * testsuite/libgomp.fortran/workshare1.f90: New test.
3349         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
3350         only test.
3351         * libgomp.fortran/sharing1.f90: New test.
3353 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
3355         PR c++/24502
3356         * testsuite/libgomp.c++/loop-7.C: New test.
3358         * testsuite/libgomp.dg/nestedfn-2.c: New test.
3360         * testsuite/libgomp.dg/nestedfn-1.c: New test.
3361         * testsuite/libgomp.fortran/reduction6.f90: New test.
3362         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
3364 2005-10-23  Richard Henderson  <rth@redhat.com>
3366         * testsuite/libgomp.c++/ctor-1.C: New.
3367         * testsuite/libgomp.c++/ctor-2.C: New.
3368         * testsuite/libgomp.c++/ctor-3.C: New.
3369         * testsuite/libgomp.c++/ctor-4.C: New.
3370         * testsuite/libgomp.c++/ctor-5.C: New.
3371         * testsuite/libgomp.c++/ctor-6.C: New.
3372         * testsuite/libgomp.c++/ctor-7.C: New.
3373         * testsuite/libgomp.c++/ctor-8.C: New.
3374         * testsuite/libgomp.c++/ctor-9.C: New.
3376 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
3378         PR 24455
3379         * testsuite/libgomp.c++/pr24455-1.C: New test.
3380         * testsuite/libgomp.c++/pr24455.C: New test.
3381         * testsuite/libgomp.dg/pr24455-1.c: New test.
3382         * testsuite/libgomp.dg/pr24455.c: New test.
3384 2005-10-20  Richard Henderson  <rth@redhat.com>
3386         * testsuite/libgomp.c++/loop-6.C: New.
3387         * testsuite/libgomp.dg/loop-3.c: New.
3389 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
3391         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
3392         explicitly private.
3393         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
3394         explicitly shared.
3396 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
3398         * testsuite/libgomp.fortran/jacobi.f: New test.
3400 2005-10-19  Richard Henderson  <rth@redhat.com>
3402         * configure.tgt (i?86-linux): Default to with_arch instead of
3403         CFLAGS.  Add -mtune to match target_cpu.
3404         (x86_64-linux): Tune to i686.
3406         * fortran.c (omp_test_nest_lock_): Fix typo.
3408 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
3410         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3411         gomp_ordered_sync): Do nothing if team->nthreads == 1.
3412         * testsuite/libgomp.dg/ordered-3.c: New test.
3414         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
3415         Remove volatile keyword.
3417         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
3418         in COMMON block to avoid warnings on 64-bit targets.
3420 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
3422         * testsuite/libgomp.dg/shared-3.c: New test.
3424 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3426         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
3427         * testsuite/libgomp.fortran/reduction5.f90: New test.
3429 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
3431         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
3432         dg-options.
3433         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
3434         flush loop now that __sync_synchronize has proper memory barrier.
3435         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
3436         Add -ffixed-form to dg-options.
3438 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3440         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
3441         from subdirectories.
3442         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
3443         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
3444         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
3445         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
3446         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
3447         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
3448         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
3449         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
3450         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
3451         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
3452         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
3453         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
3454         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
3455         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
3456         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
3457         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
3458         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
3459         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
3460         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
3461         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
3462         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
3463         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
3464         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
3465         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
3466         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
3468 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
3470         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
3471         lang_library_path exists.  Use find instead of glob to gather tests.
3472         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
3474 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
3476         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
3477         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
3478         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
3479         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
3480         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
3481         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
3482         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
3483         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
3484         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
3485         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
3486         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
3487         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
3488         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
3490 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
3492         * testsuite/libgomp.dg/vla-1.c: New test.
3494         * testsuite/libgomp.fortran/reference2.f90: New test.
3496         * testsuite/libgomp.fortran/character2.f90: Remove explicit
3497         declaration of omp_get_thread_num.
3498         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
3499         use omp_lib.
3501         * testsuite/libgomp.fortran/reduction1.f90: New test.
3502         * testsuite/libgomp.fortran/reduction2.f90: New test.
3503         * testsuite/libgomp.fortran/reduction3.f90: New test.
3504         * testsuite/libgomp.fortran/reduction4.f90: New test.
3506 2005-10-13  Richard Henderson  <rth@redhat.com>
3508         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
3509         * Makefile.in: Regenerate.
3510         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
3511         * libgomp.h: Include bar.h.
3512         (struct gomp_barrier): Remove.
3513         (struct gomp_team): Add barrier.  Replace master_barrier with
3514         master_release.  Replace threads with ordered_release.
3515         (struct gomp_thread): Replace barrier with release.
3516         * ordered.c (gomp_ordered_first): Update for ordered_release change.
3517         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
3518         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
3519         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
3520         (GOMP_single_copy_end): Likewise.
3521         * team.c (gomp_threads_dock): New.
3522         (gomp_barrier_init, gomp_barrier_destroy): Remove.
3523         (gomp_thread_start): Use gomp_barrier_wait.
3524         (new_team, free_team): Update for gomp_team changes.
3525         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
3526         (gomp_team_end): Use gomp_barrier_wait.
3527         (initialize_team): Update for gomp_thread changes.
3528         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
3529         (gomp_work_share_end_nowait): Use atomic ops when available.
3530         * config/linux/bar.c, config/linux/bar.h: New files.
3531         * config/posix/bar.c, config/posix/bar.h: New files.
3533 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
3535         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
3536         * testsuite/libgomp.dg/single-2.c: New test.
3538         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
3539         lang_link_flags): Unset, so that they aren't inherited from previously
3540         sourced *.exp.
3542         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
3544 2005-10-12  Richard Henderson  <rth@redhat.com>
3546         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
3547         (libgomp_init): Use lang_test_file, lang_library_path, and
3548         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
3550         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
3551         (lang_test_file, lang_link_flags): New.
3552         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
3554         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
3555         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
3556         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
3557         testsuite/libgomp.c++/parallel-1.C,
3558         testsuite/libgomp.c++/reduction-1.C,
3559         testsuite/libgomp.c++/reduction-2.C,
3560         testsuite/libgomp.c++/reduction-3.C,
3561         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
3562         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
3563         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
3564         New files, largely cribbed from the C testsuite.
3566 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
3568         * testsuite/libgomp.fortran/character1.f90: New test.
3569         * testsuite/libgomp.fortran/character2.f90: New test.
3571         * testsuite/libgomp.dg/nested-1.c: New test.
3572         * testsuite/libgomp.dg/nested-2.c: New test.
3573         * testsuite/libgomp.fortran/do1.f90: New test.
3574         * testsuite/libgomp.fortran/do2.f90: New test.
3576         * testsuite/libgomp.fortran/reference1.f90: New test.
3578 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
3580         * testsuite/libgomp.dg/reduction-1.c: New test.
3581         * testsuite/libgomp.dg/reduction-2.c: New test.
3582         * testsuite/libgomp.dg/reduction-3.c: New test.
3584 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
3586         * testsuite/libgomp.dg/atomic-1.c: New test.
3587         * testsuite/libgomp.dg/atomic-2.c: New test.
3589 2005-10-09  Richard Henderson  <rth@redhat.com>
3591         * critical.c (atomic_lock): New.
3592         (initialize_critical): Initialize it.
3593         (GOMP_atomic_start, GOMP_atomic_end): New.
3594         * libgomp.map: Export them.
3595         * libgomp_g.h: Declare them.
3597         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
3599 2005-10-02  Richard Henderson  <rth@redhat.com>
3601         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
3602         to XCFLAGS instead of CFLAGS.
3604 2005-09-30  Richard Henderson  <rth@redhat.com>
3606         * configure.ac: Determine whether -pthread or -lpthread is needed.
3607         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
3608         * Makefine.in, configure: Rebuild.
3610 2005-09-28  Richard Henderson  <rth@redhat.com>
3612         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
3613         * testsuite/libgomp.dg/omp-single-3.c: New test.
3615 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
3617         * testsuite/libgomp.dg/omp-single-2.c: New test.
3618         * testsuite/libgomp.dg/shared-2.c: Fix return code.
3620 2005-09-27  Richard Henderson  <rth@redhat.com>
3622         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
3623         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
3625 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
3627         * testsuite/libgomp.dg/omp-loop03.c: New test.
3629 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3631         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
3633 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
3635         * testsuite/libgomp.dg/omp-single-1.c: New test.
3636         * testsuite/libgomp.dg/shared-1.c: Return 0.
3637         Add prototype for abort.
3638         * testsuite/libgomp.dg/shared-2.c: Likewise.
3640 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
3642         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
3643         constructs.
3645 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
3647         * testsuite/libgomp.dg/shared-1.c: New test.
3648         * testsuite/libgomp.dg/shared-2.c: New test.
3650 2005-09-24  Richard Henderson  <rth@redhat.com>
3652         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
3654 2005-09-24  Richard Henderson  <rth@redhat.com>
3656         * iter.c (gomp_iter_static_next): Round up when computing number
3657         of iterations.  Don't bother distributing a remainder equally.
3659         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
3660         Don't call srand.  Zero b before testing.
3661         (main): New.
3663 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
3665         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
3666         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
3668 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
3670         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
3671         without !$omp end do, followed immediately by subroutine end.
3673 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
3675         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
3677 2005-09-22  Richard Henderson  <rth@redhat.com>
3679         * critical.c (GOMP_critical_name_start): Change argument to void**.
3680         Reuse the pointer space if the mutex fits.
3681         (GOMP_critical_name_end): Likewise.
3682         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
3683         * libgomp_g.h (GOMP_critical_name_start): Update decl.
3684         (GOMP_critical_name_end): Likewise.
3685         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
3686         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
3688 2005-09-20  Richard Henderson  <rth@redhat.com>
3690         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
3691         (create_lock_lock): New.
3692         (initialize_critical): Initialize it.
3693         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
3694         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
3696 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3698         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
3700 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
3702         * testsuite/libgomp.dg/omp-loop01.c: New test.
3703         * testsuite/libgomp.dg/omp-loop02.c: New test.
3705 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
3707         * configure.ac (AC_PROG_FC): Add.
3708         (USE_FORTRAN): New automake conditional.
3709         * configure: Rebuilt.
3710         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
3711         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
3712         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
3713         Add rules to build them.
3714         * Makefile.in: Rebuilt.
3715         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
3716         OMP_NEST_LOCK_KIND.
3717         * libgomp.map: Add Fortran wrappers.
3718         * libgomp_f.h.in: New file.
3719         * omp_lib.h.in: New file.
3720         * omp_lib.f90.in: New file.
3721         * fortran.c: New file.
3722         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
3723         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
3724         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
3725         libgfortran has been built.
3726         * testsuite/libgomp.fortran/fortran.exp: New file.
3727         * testsuite/libgomp.fortran/omp_cond1.f: New test.
3728         * testsuite/libgomp.fortran/omp_cond2.f: New test.
3729         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
3730         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
3731         * testsuite/libgomp.fortran/omp_hello.f: New test.
3732         * testsuite/libgomp.fortran/omp_orphan.f: New test.
3733         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
3734         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
3735         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
3736         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
3737         * testsuite/libgomp.fortran/omp_reduction.f: New test.
3738         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
3739         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
3741 2005-08-30  Richard Henderson  <rth@redhat.com>
3743         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
3744         function for when aliases are not usable.
3745         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
3746         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3747         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
3748         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
3749         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
3750         GOMP_loop_ordered_guided_next): Likewise.
3751         * ordered.c (GOMP_ordered_start): Likewise.
3753 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
3755         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
3756         * testsuite/libgomp.dg/omp_hello.c: Fix return code
3757         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
3758         * testsuite/libgomp.dg/omp_orphan.c: Likewise
3759         * testsuite/libgomp.dg/omp_reduction.c: Likewise
3760         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
3761         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
3762         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
3763         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
3765 2005-07-07  Eric Christopher  <echristo@redhat.com>
3766             Diego Novillo  <dnovillo@redhat.com>
3768         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
3769         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
3770         up code.
3771         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
3772         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
3773         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
3774         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
3775         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
3776         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
3777         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
3779 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
3781         * TOPLEVEL.patch: Remove.
3783 2005-05-16  Richard Henderson  <rth@redhat.com>
3785         * configure.ac: Test for clock_gettime.
3786         * config.h.in, configure: Rebuild.
3787         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
3788         (omp_get_wtime): Use clock_gettime if available.
3789         (omp_get_wtick): Use clock_getres if available.
3791 2005-05-11  Richard Henderson  <rth@redhat.com>
3793         * config/linux/ia64/futex.h: New file.
3794         * configure.tgt: Use it.
3796         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
3798 2005-05-07  Richard Henderson  <rth@redhat.com>
3800         * config/linux/powerpc/futex.h: New file.
3801         * configure.tgt: Use it.
3803         * config/linux/i486/futex.h: Merge ...
3804         * config/linux/x86_64/futex.h: ... into ...
3805         * config/linux/x86/futex.h: ... here.
3806         * configure.tgt: Update to match.
3808 2005-05-06  Richard Henderson  <rth@redhat.com>
3810         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
3811         * config/linux/i486/futex.h: Likewise.
3812         * config/linux/x86_64/futex.h: Likewise.
3814         * config/linux/lock.c: New file.
3815         * config/linux/omp-lock.h: New file.
3817         * critical.c, env.h: Don't include omp.h
3818         * config/posix/lock.c: Include libgomp.h instead of omp.h.
3819         * config/posix/time.c: Likewise.
3820         * config/posix/omp-lock.h: New file.
3821         * libgomp.h: Include omp-lock.h and omp.h.
3822         * Makefile.am (nodist_include_HEADERS): New.
3823         (omp.h): New rule.
3824         * configure.ac (PERL): New.
3825         * mkomp_h.pl: New file.
3826         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
3827         with templates.
3828         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
3830         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
3831         build directory.  Re-add -march=i486 hack.
3833         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
3834         (libgomp_link_flags): Remove.
3835         (libgomp_initialized): Remove.
3836         (libgomp_init): Don't protect from reinitialization.  Copy code
3837         from libstdc++ for getting the multilib set correctly.
3839 2005-05-05  Richard Henderson  <rth@redhat.com>
3841         * config/linux/alpha/futex.h: New file.
3842         * configure.tgt (alpha*-*-linux*): Use it.
3844         * config/posix/mutex.c: New file.
3845         * config/posix/sem.c: Use libgomp.h.
3847         * configure.tgt (x86_64-linux): Also test CC for -m32.
3848         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
3850         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
3851         after $gccpath.
3853         * Makefile.am (SUBDIRS): New.
3854         (libgomp_la_LDFLAGS): Add -lpthread.
3855         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
3856         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
3858         * libgomp_g.h: New file.
3859         * libgomp.h: Split out all public declarations to libgomp_g.h.
3860         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
3861         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
3862         * config/linux/sem.h: Likewise.
3863         * config/posix/sem.h: Likewise.
3865         * Makefile.am (AM_LDFLAGS): New.
3866         (libgomp_version_script): Split out from ...
3867         (libgomp_la_LDFLAGS): ... here.
3868         (libgomp_version_info): New.
3869         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
3870         (LIBGOMP_ENABLE): New.
3871         (LIBGOMP_CHECK_LINKER_FEATURES): New.
3872         (LIBGOMP_ENABLE_SYMVERS): New.
3873         * configure.ac (AC_INIT): Version 1.0.
3874         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
3875         (enable-linux-futex): Likewise.  Rename from enable-futex.
3876         (libtool_VERSION): New.
3877         (LIBGOMP_ENABLE_SYMVERS): Use it.
3878         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
3879         * Makefile.in, aclocal.m4, configure: Rebuild.
3881         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
3882         (gomp_mutex_unlock_slow): Fix typo.
3883         * config/linux/sem.c: Similarly.
3884         (gomp_sem_post_slow): Fix typo.
3885         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
3886         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
3887         [__PIC__] (sys_futex0): Don't use tmp output in asm.
3889         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
3890         (libgomp_la_LDFLAGS): Add top_srcdir to path.
3891         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
3892         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
3893         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
3894         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
3895         LDFLAGS.  Pull enable_futex check to top-level.
3896         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
3897         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
3899         First attempt at real configury.
3900         * Makefile, config.h: Remove file.
3901         * Makefile.am, Makefile.in: New file.
3902         * acinclude.m4 aclocal.m4: New file.
3903         * configure.ac, configure.tgt, configure: New file.
3905         * config/posix/lock.c: Rename from sys-lock.c.
3906         * config/posix/mutex.h: Rename from sys-mutex.h.
3907         * config/posix/sem.c: Rename from sys-sem.c.
3908         * config/posix/sem.h: Rename from sys-sem.h.
3909         * config/posix/proc.c: Rename from sys-proc.c.
3910         * config/posix/time.c: Rename from sys-proc.c.
3912         * config/linux/mutex.c: New file.
3913         * config/linux/mutex.h: New file.
3914         * config/linux/sem.c: New file.
3915         * config/linux/sem.h: New file.
3916         * config/linux/i486/futex.h: New file.
3917         * config/linux/x86_64/futex.h: New file.
3919 2005-05-04  Richard Henderson  <rth@redhat.com>
3921         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
3922         * libgomp.h: Declare them.
3923         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
3924         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
3926 2005-05-04  Richard Henderson  <rth@redhat.com>
3928         * libgomp-1 code drop
3930 2005-05-04  Richard Henderson  <rth@redhat.com>
3932         * iter.c (gomp_iter_static_next): Return tri-state on 0.
3933         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
3934         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
3935         (gomp_iter_static_next): Update.
3936         (gomp_ordered_static_next): Update.
3937         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
3938         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
3939         totally empty range.
3940         (gomp_loop_ordered_static_next): Refine test for calling
3941         gomp_ordered_static_next.
3942         * testsuite/ordered-1.c: Add case for more threads than iterations.
3944         * iter.c (gomp_iter_runtime_next_locked): Remove.
3945         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
3946         gomp_loop_guided_start, gomp_loop_ordered_static_start,
3947         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
3948         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
3949         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
3950         gomp_loop_ordered_guided_next): Downcase name, make static, add
3951         an external alias with the old name.
3952         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
3953         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
3954         switch and call one of the above static functions.
3955         * libgomp.h: Update.
3957         * work.c (gomp_work_share_start): Lock the mutex for !first too.
3958         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
3959         GOMP_loop_guided_start, GOMP_loop_runtime_start,
3960         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
3961         GOMP_loop_ordered_guided_start): Update to match.
3962         * sections.c (GOMP_sections_start): Likewise.
3963         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
3965         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
3966         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
3967         Use bounds check instead of modulus.
3968         (gomp_ordered_sync): Split out of GOMP_ordered_start.
3969         (gomp_ordered_last): Don't sync with ordered_owner here.
3970         (gomp_ordered_next): Likewise.
3971         (gomp_ordered_static_loop_next): Likewise.
3972         * loop.c, libgomp.h: Update to match.
3974         * libgomp.h (GOMP_barrier): Declare.
3976         * testsuite/barrier-1.c: New file.
3977         * testsuite/critical-1.c: New file.
3978         * testsuite/ordered-2.c: New file.
3979         * testsuite/ordered-1.c: New file.
3980         * testsuite/sections-1.c: New file.
3981         * testsuite/single-1.c: New file.
3982         * testsuite/Makefile (TESTS): Add them.
3984 2005-05-04  Richard Henderson  <rth@redhat.com>
3986         * libgomp.h (struct gomp_work_share): Add ordered_owner.
3987         * loop.c (GOMP_loop_static_start): If not the startup thread,
3988         acquire the mutex to wait for initialization complete.
3989         (GOMP_loop_ordered_static_start): Likewise.
3990         (GOMP_loop_ordered_runtime_start): Likewise.
3991         (GOMP_loop_ordered_static_first): Remove.
3992         (GOMP_loop_ordered_dynamic_first): Remove.
3993         (GOMP_loop_ordered_guided_first): Remove.
3994         (GOMP_loop_ordered_runtime_first): Remove.
3995         * ordered.c (gomp_ordered_loop_first): Post to own release when
3996         we're the first thread.
3997         (gomp_ordered_loop_last): Wait on release if not owner.
3998         (gomp_ordered_loop_next): Likewise.
3999         (gomp_ordered_static_loop_init): New.
4000         (gomp_ordered_static_loop_next): Use ordered_owner.
4001         (GOMP_ordered_start): Likewise.
4002         * work.c (gomp_new_work_share): Initialize ordered_owner.
4004 2005-05-03  Richard Henderson  <rth@redhat.com>
4006         * Makefile (OPT): New.
4007         (CFLAGS): Use it.
4009         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
4010         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
4011         * libgomp.h, libgomp.map, NOTES: Update to match.
4013         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
4014         Add initialized and thr members.
4015         (gomp_thread_start): Pause when initially spawned to wait for
4016         the whole team to be created.
4017         (gomp_team_start): Release team members at the end.
4019         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
4020         (f_foo_1): Use GOMP_loop_end.
4021         (f_foo_2): Use GOMP_loop_end_nowait.
4023         * testsuite/loop-2.c: New file.
4024         * testsuite/Makefile (TESTS): Add it.
4026 2005-05-03  Richard Henderson  <rth@redhat.com>
4028         * iter.c (gomp_iter_static_next): Fix overflow check typo.
4029         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
4030         * team.c (new_team): Initialize oldest_live_gen to 1 if no
4031         initial work_share.
4033         * testsuite/Makefile: New file.
4034         * testsuite/loop-1.c: New file.
4036 2005-05-03  Richard Henderson  <rth@redhat.com>
4038         Initial implementation and checkin.