OSDN Git Service

libgomp/
[pf3gnuchains/gcc-fork.git] / libgomp / ChangeLog
1 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2
3         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
4         options when choosing a multilib.
5
6 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
7
8         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
9         ld_library_path.  Use add_path.  Add just find_libgcc_s to
10         ld_library_path, not every libgcc multilib directory.
11         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
12         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
13         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
14         Use add_path.
15         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
16
17 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
18
19         * Makefile.am (LTLDFLAGS): Define.
20         (LINK): Define.
21         * Makefile.in: Regenerate.
22
23 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
24
25         PR fortran/39718
26         * testsuite/libgomp.fortran/fortran.exp: Don't link with
27         libgfortranbegin, check existence of libgfortran.a instead of
28         libgfortranbegin.a.
29
30 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
31
32         PR libgomp/40174
33         * team.c (gomp_thread_start): Destroy thr->release semaphore.
34         (gomp_free_pool_helper): Likewise.
35
36 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
37             Jakub Jelinek  <jakub@redhat.com>
38
39         PR fortran/35423
40         * testsuite/libgomp.fortran/workshare2.f90: New test.
41
42 2009-04-09  Nick Clifton  <nickc@redhat.com>
43
44         * iter.c: Change copyright header to refer to version 3 of the
45         GNU General Public License with version 3.1 of the GCC Runtime
46         Library Exception and to point readers at the COPYING3 and
47         COPYING3.RUNTIME files and the FSF's license web page.
48         * alloc.c: Likewise.
49         * barrier.c: Likewise.
50         * config/bsd/proc.c: Likewise.
51         * config/linux/affinity.c: Likewise.
52         * config/linux/alpha/futex.h: Likewise.
53         * config/linux/bar.c: Likewise.
54         * config/linux/bar.h: Likewise.
55         * config/linux/ia64/futex.h: Likewise.
56         * config/linux/ia64/mutex.h: Likewise.
57         * config/linux/lock.c: Likewise.
58         * config/linux/mips/futex.h: Likewise.
59         * config/linux/mutex.c: Likewise.
60         * config/linux/mutex.h: Likewise.
61         * config/linux/powerpc/futex.h: Likewise.
62         * config/linux/proc.c: Likewise.
63         * config/linux/ptrlock.c: Likewise.
64         * config/linux/ptrlock.h: Likewise.
65         * config/linux/s390/futex.h: Likewise.
66         * config/linux/sem.c: Likewise.
67         * config/linux/sem.h: Likewise.
68         * config/linux/sparc/futex.h: Likewise.
69         * config/linux/wait.h: Likewise.
70         * config/linux/x86/futex.h: Likewise.
71         * config/mingw32/proc.c: Likewise.
72         * config/mingw32/time.c: Likewise.
73         * config/posix/affinity.c: Likewise.
74         * config/posix/bar.c: Likewise.
75         * config/posix/bar.h: Likewise.
76         * config/posix/lock.c: Likewise.
77         * config/posix/mutex.h: Likewise.
78         * config/posix/proc.c: Likewise.
79         * config/posix/ptrlock.h: Likewise.
80         * config/posix/sem.c: Likewise.
81         * config/posix/sem.h: Likewise.
82         * config/posix/time.c: Likewise.
83         * config/posix95/lock.c: Likewise.
84         * critical.c: Likewise.
85         * env.c: Likewise.
86         * error.c: Likewise.
87         * fortran.c: Likewise.
88         * iter_ull.c: Likewise.
89         * libgomp.h: Likewise.
90         * libgomp_f.h.in: Likewise.
91         * libgomp_g.h: Likewise.
92         * loop.c: Likewise.
93         * loop_ull.c: Likewise.
94         * omp.h.in: Likewise.
95         * omp_lib.f90.in: Likewise.
96         * omp_lib.h.in: Likewise.
97         * ordered.c: Likewise.
98         * parallel.c: Likewise.
99         * sections.c: Likewise.
100         * single.c: Likewise.
101         * task.c: Likewise.
102         * team.c: Likewise.
103         * work.c: Likewise.
104
105 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
106
107         * testsuite/config/default.exp: Change copyright header to refer to
108         version 3 of the GNU General Public License and to point readers
109         at the COPYING3 file and the FSF's license web page.
110
111 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
112
113         PR middle-end/39573
114         * libgomp.c++/pr39573.C: New test.
115
116 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
117
118         PR other/39591
119         * testsuite/libgomp.c/pr39591-1.c: New test.
120         * testsuite/libgomp.c/pr39591-2.c: New test.
121         * testsuite/libgomp.c/pr39591-3.c: New test.
122
123 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
124
125         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
126         * testsuite/libgomp.c/atomic-6.c: Ditto.
127
128 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
129
130         PR c/39495
131         * testsuite/libgomp.c/loop-12.c: New test.
132         * testsuite/libgomp.c/loop-11.c: New test.
133         * testsuite/libgomp.c++/loop-11.C: New test.
134         * testsuite/libgomp.c++/loop-12.C: New test.
135         * testsuite/libgomp.c++/for-8.C: New test.
136
137 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
138
139         * configure: Regenerate.
140
141 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
142
143         PR middle-end/39154
144         * testsuite/libgomp.c/pr39154.c: New test.
145
146 2009-01-30  Ian Lance Taylor  <iant@google.com>
147
148         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
149         libgomp_ld_is_gold.  Get gold version number.
150         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
151         * configure: Rebuild.
152
153 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
154
155         * testsuite/lib/libgomp.exp: Add -B option for targets that
156         use libgfortran.a%s in their specs.
157
158 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
159
160         PR libgomp/38086
161         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
162         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
163         HAVE_AS_SYMVER_DIRECTIVE is not defined.
164         * configure: Regenerated.
165         * config.h.in: Likewise.
166
167 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
168
169         PR c++/38650
170         * testsuite/libgomp.c/pr38650.c: New test.
171         * testsuite/libgomp.c++/pr38650.C: New test.
172
173 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
174
175         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
176
177 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
178
179         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
180
181 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
182
183         * configure: Regenerate.
184
185 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
186
187         PR middle-end/36802
188         * testsuite/libgomp.c/pr36802-1.c: New test.
189         * testsuite/libgomp.c/pr36802-2.c: New test.
190         * testsuite/libgomp.c/pr36802-3.c: New test.
191
192 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
193
194         PR libgomp/38270
195         * config/linux/powerpc/mutex.h: New.
196
197 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
198
199         PR c++/38257
200         * testsuite/libgomp.c++/for-7.C: New test.
201
202         PR c++/38348
203         * testsuite/libgomp.c++/for-6.C: New test.
204
205 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
206
207         PR testsuite/28870
208         * testsuite/lib/libgomp.exp: Include new timeout library files.
209         (libgomp_target_compile): Set timeout value from new proc.
210
211 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
212
213         PR libgomp/37938
214         * config/linux/ia64/mutex.h: New.
215
216 2008-11-04  Tobias Burnus  <burnus@net-b.de>
217
218         PR libgomp/37935
219         * libgomp.texi (Runtime library routines, environment variables):
220         Update for OpenMP version 3.0.
221
222 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
223             Steve Ellcey  <sje@cup.hp.com>
224
225         * configure: Regenerate for new libtool.
226         * Makefile.in: Ditto.
227         * testsuite/Makefile.in: Ditto.
228
229 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
230             Andreas Tobler  <a.tobler@schweiz.org>
231
232         * config/bsd/proc.c: New file.
233         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
234         * configure.ac: Check for header <sys/sysctl.h>
235         * configure: Regenerate.
236         * config.h.in: Likewise.
237
238 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
239
240         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
241
242 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
243
244         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
245         * Makefile.in: Regenerated.
246         * testsuite/Makefile.in: Regenerated.
247
248 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
249
250         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
251         depend on blddir if blddir exists.
252         (libgomp_target_compile): Likewise.
253         * testsuite/libgomp.c++/c++.exp: Likewise.
254         * testsuite/libgomp.fortran/fortran.exp: Likewise.
255
256 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
257
258         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
259         Do not list GPL as Invariant Section.
260
261 2008-07-28  Ilie Garbacea  <ilie@mips.com>
262             Chao-ying Fu  <fu@mips.com>
263
264         * configure.tgt: Enable futex for MIPS.
265         * config/linux/mips/futex.h: New file.
266
267 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
268
269         * team.c (gomp_team_end): Free team immediately if it has
270         just one thread.
271
272 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
273
274         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
275         * testsuite/libgomp.fortran/fortran.exp: Same.
276         * testsuite/libgomp.c/c.exp: Same.
277         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
278         directory to library path first.
279
280 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
281
282         * env.c (parse_stacksize): Add cast to avoid warning.
283         (parse_spincount): Likewise.
284
285 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
286
287         * testsuite/libgomp.c/loop-10.c: New test.
288         * libgomp.c/loop-3.c (main): Add lastprivate clause.
289         * libgomp.c++/loop-6.C (main): Likewise.
290
291         PR debug/36617
292         * testsuite/libgomp.c/debug-1.c: New test.
293
294 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
295
296         * testsuite/libgomp.c/nqueens-1.c: New test.
297
298         PR c++/36523
299         * testsuite/libgomp.c++/task-7.C: New function.
300
301 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
302
303         * configure: Regenerate.
304
305 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
306
307         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
308         mutex when HAVE_SYNC_BUILTINS isn't defined.
309
310 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
311
312         * libgomp.texi (omp_test_lock): Fix typo.
313
314 2008-06-12  Tobias Burnus  <burnus@net-b.de>
315
316         * omp_lib.f90.in: Add "implicit none".
317
318 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
319
320         PR middle-end/36506
321         * testsuite/libgomp.c/reduction-5.c: New test.
322
323 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
324
325         * libgomp.h (struct gomp_task): Add in_tied_task field.
326         * task.c (gomp_init_task): Initialize it.
327         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
328         unconditionally.  Don't call gomp_team_barrier_wake if
329         current task is implicit or if(0) from implicit and number of
330         running tasks is equal to nthreads - 1.
331
332         PR libgomp/36471
333         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
334         omp_get_team_size_8): Fix pastos.
335
336         PR libgomp/36469
337         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
338         * configure: Regenerated.
339         * config.h.in: Regenerated.
340         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
341         defined.
342
343 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
344
345         PR bootstrap/36452
346         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
347         (GOMP_loop_ull_dynamic_start): Likewise.
348         (GOMP_loop_ull_guided_start): Likewise.
349         (GOMP_loop_ull_ordered_static_start): Likewise.
350         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
351         (GOMP_loop_ull_ordered_guided_start): Likewise.
352
353 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
354             Richard Henderson  <rth@redhat.com>
355             Ulrich Drepper  <drepper@redhat.com>
356             Jakob Blomer  <jakob.blomer@ira.uka.de>
357
358         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
359         Substitute also OMP_*LOCK_25*.
360         * configure: Regenerated.
361         * config.h.in: Regenerated.
362         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
363         ptrlock.c and task.c.
364         * Makefile.in: Regenerated.
365         * testsuite/Makefile.in: Regenerated.
366         * task.c: New file.
367         * loop_ull.c: New file.
368         * iter_ull.c: New file.
369         * libgomp.h: Include ptrlock.h.
370         (enum gomp_task_kind): New type.
371         (struct gomp_team): Add task_lock, task_queue, task_count,
372         task_running_count, single_count fields.  Add
373         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
374         Remove work_share_lock, generation_mask,
375         oldest_live_gen, num_live_gen and init_work_shares fields, add
376         work work_share_list_alloc, work_share_list_free and work_share_chunk
377         fields.  Change work_shares from pointer to pointers into an array.
378         Change ordered_release field into gomp_sem_t ** from flexible array
379         member.  Add implicit_task and initial_work_shares fields.
380         Move close to the end of the struct.
381         (struct gomp_team_state): Add single_count, last_work_share,
382         active_level and level fields, remove work_share_generation.
383         (gomp_barrier_handle_tasks): New prototype.
384         (gomp_finish_task): New inline function.
385         (struct gomp_work_share): Move chunk_size, end, incr into
386         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
387         next_ll fields.  Reshuffle fields.  Add next_alloc,
388         next_ws, next_free and inline_ordered_team_ids fields, change
389         ordered_team_ids into pointer from flexible array member.
390         Add mode field.  Put lock and next into a different cache line
391         from most of the write-once fields.
392         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
393         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
394         gomp_iter_ull_guided_next): New prototypes.
395         (gomp_new_icv): New prototype.
396         (struct gomp_thread): Add thread_pool and task fields.
397         (struct gomp_thread_pool): New type.
398         (gomp_new_team): New prototype.
399         (gomp_team_start): Change type of last argument.
400         (gomp_new_work_share): Removed.
401         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
402         (gomp_work_share_init_done): New static inline.
403         (gomp_throttled_spin_count_var, gomp_available_cpus,
404         gomp_managed_threads): New extern decls.
405         (gomp_init_task): New prototype.
406         (gomp_spin_count_var): New extern var decl.
407         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
408         or no alias support, or if not PIC.
409         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
410         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
411         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
412         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
413         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
414         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
415         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
416         gomp_test_nest_lock_25): New prototypes.
417         (omp_lock_symver, strong_alias): Define.
418         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
419         decls.
420         (gomp_end_task): New.
421         (struct gomp_task_icv, gomp_global_icv): New.
422         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
423         (struct gomp_task): New.
424         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
425         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
426         (gomp_icv): New.
427         (gomp_schedule_type): Reorder enum to match
428         omp_sched_t.
429         * team.c (struct gomp_thread_start_data): Add thread_pool and task
430         fields.
431         (gomp_thread_start): Add gomp_team_barrier_wait call.
432         For non-nested case remove clearing of docked thread thr fields.
433         Use pool fields instead of global gomp_* variables.  Use
434         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
435         Create tasks for each member thread.
436         (free_team): Only destroy team barrier, task_lock here and free it.
437         (gomp_free_thread): Free last_team if non-NULL.
438         (gomp_team_end): Call gomp_team_barrier_wait instead of
439         gomp_barrier_wait.  For nested case call one extra
440         gomp_barrier_wait.  Move here some destruction from free_team.
441         Call free_team on pool->last_team if any, rather than freeing
442         current team.  Destroy work_share_list_free_lock ifndef
443         HAVE_SYNC_BUILTINS.
444         (gomp_new_icv): New function.
445         (gomp_threads, gomp_threads_size, gomp_threads_used,
446         gomp_threads_dock): Removed.
447         (gomp_thread_destructor): New variable.
448         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
449         functions.
450         (gomp_team_start): Create new pool if current thread doesn't have
451         one.  Use pool fields instead of global gomp_* variables. 
452         Initialize thread_pool field for new threads.  Clear single_count.
453         Change last argument from ws to team, don't create
454         new team, set ts.work_share to &team->work_shares[0] and clear
455         ts.last_work_share.  Don't clear ts.work_share_generation.
456         If number of threads changed, adjust atomically gomp_managed_threads.
457         Use gomp_init_task instead of gomp_new_task,
458         set thr->task to the corresponding implicit_task array entry.
459         Create tasks for each member thread.  Initialize ts.level.
460         (initialize_team): Call pthread_key_create on
461         gomp_thread_destructor.
462         (team_destructor): New function.
463         (new_team): Removed.
464         (gomp_new_team): New function.
465         (free_team): Free gomp_work_share blocks chained through next_alloc,
466         instead of freeing work_shares and destroying work_share_lock.
467         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
468         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
469         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
470         of gomp_barrier_wait.
471         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
472         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
473         if gomp_work_share_start returned true.  Don't unlock ws->lock.
474         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
475         of gomp_barrier_wait.
476         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
477         gomp_work_share_init_done if gomp_work_share_start returned true.
478         Don't unlock ws->lock.
479         * work.c: Include stddef.h.
480         (free_work_share): Use work_share_list_free_lock instead
481         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
482         Call gomp_fini_work_share and then either free ws if orphaned, or
483         put it into work_share_list_free list of the current team.
484         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
485         functions.
486         (gomp_work_share_start, gomp_work_share_end,
487         gomp_work_share_end_nowait): Rewritten.
488         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
489         (openmp_version): Set to 200805.
490         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
491         omp_sched_guided, omp_sched_auto): New parameters.
492         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
493         omp_set_max_active_levels, omp_get_max_active_levels,
494         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
495         omp_get_active_level): New interfaces.
496         * omp_lib.h.in (openmp_version): Set to 200805.
497         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
498         omp_sched_guided, omp_sched_auto): New parameters.
499         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
500         omp_set_max_active_levels, omp_get_max_active_levels,
501         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
502         omp_get_active_level): New externals.
503         * loop.c: Include limits.h.
504         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
505         GFS_AUTO.
506         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
507         Likewise.  Use gomp_icv.
508         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
509         ts.static_trip here.
510         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
511         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
512         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
513         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
514         don't unlock ws->lock, otherwise lock it.
515         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
516         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
517         (gomp_parallel_loop_start): Call gomp_new_team instead of
518         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
519         Adjust gomp_team_start caller.  Pass 0 as second argument to
520         gomp_resolve_num_threads.
521         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
522         If adding ws->chunk_size nthreads + 1 times after end won't
523         overflow, set ws->mode to 1.
524         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
525         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
526         GOMP_loop_ull_ordered_static_start,
527         GOMP_loop_ull_ordered_dynamic_start,
528         GOMP_loop_ull_ordered_guided_start,
529         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
530         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
531         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
532         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
533         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
534         prototypes.
535         * libgomp.map: Export lock routines also @@OMP_2.0.
536         (GOMP_loop_ordered_dynamic_first,
537         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
538         GOMP_loop_ordered_static_first): Remove.
539         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
540         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
541         GOMP_loop_ull_ordered_dynamic_next,
542         GOMP_loop_ull_ordered_dynamic_start,
543         GOMP_loop_ull_ordered_guided_next,
544         GOMP_loop_ull_ordered_guided_start,
545         GOMP_loop_ull_ordered_runtime_next,
546         GOMP_loop_ull_ordered_runtime_start,
547         GOMP_loop_ull_ordered_static_next,
548         GOMP_loop_ull_ordered_static_start,
549         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
550         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
551         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
552         (omp_set_schedule, omp_get_schedule,
553         omp_get_thread_limit, omp_set_max_active_levels,
554         omp_get_max_active_levels, omp_get_level,
555         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
556         omp_set_schedule_, omp_set_schedule_8_,
557         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
558         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
559         omp_get_max_active_levels_, omp_get_level_,
560         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
561         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
562         New exports @@OMP_3.0.
563         * omp.h.in (omp_sched_t): New type.
564         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
565         omp_set_max_active_levels, omp_get_max_active_levels,
566         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
567         omp_get_active_level): New prototypes.
568         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
569         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
570         gomp_thread_limit_var, gomp_remaining_threads_count,
571         gomp_remaining_threads_lock): New variables.
572         (parse_spincount): New function.
573         (initialize_env): Call gomp_init_num_threads unconditionally.
574         Initialize gomp_available_cpus.  Call parse_spincount,
575         initialize gomp_{,throttled_}spin_count_var
576         depending on presence and value of OMP_WAIT_POLICY and
577         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
578         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
579         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
580         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
581         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
582         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
583         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
584         (gomp_global_icv): New.
585         (parse_schedule): Use it.  Parse "auto".
586         (omp_set_num_threads): Use gomp_icv.
587         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
588         Likewise.
589         (omp_get_max_threads): Move from parallel.c.
590         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
591         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
592         add ialias.
593         (parse_stacksize, parse_wait_policy): New functions.
594         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
595         both wrappers for compatibility and new locks.
596         (omp_set_schedule, omp_get_schedule,
597         omp_get_thread_limit, omp_set_max_active_levels,
598         omp_get_max_active_levels, omp_get_level,
599         omp_get_ancestor_thread_num, omp_get_team_size,
600         omp_get_active_level): New ialias_redirect.
601         (omp_set_schedule_, omp_set_schedule_8_,
602         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
603         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
604         omp_get_max_active_levels_, omp_get_level_,
605         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
606         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
607         New functions.
608         * parallel.c: Include limits.h.
609         (gomp_resolve_num_threads): Add count argument.  Rewritten.
610         (GOMP_parallel_start): Call gomp_new_team and pass that as last
611         argument to gomp_team_start.  Pass 0 as second argument to
612         gomp_resolve_num_threads.
613         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
614         if gomp_thread_limit_var != ULONG_MAX.
615         (omp_in_parallel): Implement using ts.active_level.
616         (omp_get_max_threads): Move to env.c.
617         (omp_get_level, omp_get_ancestor_thread_num,
618         omp_get_team_size, omp_get_active_level): New functions,
619         add ialias.
620         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
621         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
622         gomp_iter_dynamic_next instead of the _locked variant and don't take
623         lock around it, otherwise acquire it before calling
624         gomp_iter_dynamic_next_locked.
625         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
626         gomp_iter_dynamic_next instead of the _locked variant and don't take
627         lock around it.
628         (GOMP_parallel_sections_start): Call gomp_new_team instead of
629         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
630         Adjust gomp_team_start caller.  Pass count as second argument to
631         gomp_resolve_num_threads, don't adjust num_threads after the call.
632         Use gomp_icv.
633         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
634         ws->chunk_size by incr.
635         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
636         code.
637         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
638         types.
639         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
640         (omp_check_defines): Check even the compat defines.
641         * config/linux/ptrlock.c: New file.
642         * config/linux/ptrlock.h: New file.
643         * config/linux/wait.h: New file.
644         * config/posix/ptrlock.c: New file.
645         * config/posix/ptrlock.h: New file.
646         * config/linux/bar.h (gomp_team_barrier_wait,
647         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
648         (gomp_team_barrier_set_task_pending,
649         gomp_team_barrier_clear_task_pending,
650         gomp_team_barrier_set_waiting_for_tasks,
651         gomp_team_barrier_waiting_for_tasks,
652         gomp_team_barrier_done): New inlines.
653         (gomp_barrier_t): Rewritten.
654         (gomp_barrier_state_t): New typedef.
655         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
656         gomp_barrier_wait_start): Rewritten.
657         (gomp_barrier_wait_end): Change second argument to
658         gomp_barrier_state_t.
659         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
660         inlines.
661         * config/linux/bar.c: Include wait.h instead of libgomp.h and
662         futex.h.
663         (gomp_barrier_wait_end): Rewritten.
664         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
665         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
666         * config/posix/bar.h (gomp_barrier_t): Add generation field.
667         (gomp_barrier_state_t): New typedef.
668         (gomp_team_barrier_wait,
669         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
670         (gomp_barrier_wait_start): Or all but low 2 bits from generation
671         into the return value.  Return gomp_barrier_state_t.
672         (gomp_team_barrier_set_task_pending,
673         gomp_team_barrier_clear_task_pending,
674         gomp_team_barrier_set_waiting_for_tasks,
675         gomp_team_barrier_waiting_for_tasks,
676         gomp_team_barrier_done): New inlines.
677         (gomp_barrier_wait_end): Change second argument to
678         gomp_barrier_state_t.
679         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
680         inlines.
681         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
682         (gomp_barrier_wait_end): Change second argument to
683         gomp_barrier_state_t. 
684         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
685         gomp_team_barrier_wake): New functions.
686         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
687         futex.h.
688         (gomp_futex_wake, gomp_futex_wait): New variables.
689         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
690         * config/linux/lock.c: Rewrite to make locks task owned,
691         for backwards compatibility provide the old entrypoints
692         if symbol versioning.  Include wait.h instead of libgomp.h and
693         futex.h.
694         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
695         * config/posix95/lock.c: Rewrite to make locks task owned,
696         for backwards compatibility provide the old entrypoints
697         if symbol versioning.
698         * config/posix/lock.c: Rewrite to make locks task owned,
699         for backwards compatibility provide the old entrypoints
700         if symbol versioning.
701         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
702         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
703         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
704         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
705         (sys_futex0): Return error code.
706         (futex_wake, futex_wait): If ENOSYS was returned, clear
707         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
708         (cpu_relax, atomic_write_barrier): New static inlines.
709         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
710         (futex_wake, futex_wait): If ENOSYS was returned, clear
711         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
712         (cpu_relax, atomic_write_barrier): New static inlines.
713         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
714         (sys_futex0): Return error code.
715         (futex_wake, futex_wait): If ENOSYS was returned, clear
716         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
717         (cpu_relax, atomic_write_barrier): New static inlines.
718         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
719         (sys_futex0): Return error code.
720         (futex_wake, futex_wait): If ENOSYS was returned, clear
721         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
722         (cpu_relax, atomic_write_barrier): New static inlines.
723         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
724         (sys_futex0): Return error code.
725         (futex_wake, futex_wait): If ENOSYS was returned, clear
726         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
727         (cpu_relax, atomic_write_barrier): New static inlines.
728         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
729         (sys_futex0): Return error code.
730         (futex_wake, futex_wait): If ENOSYS was returned, clear
731         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
732         (cpu_relax, atomic_write_barrier): New static inlines.
733         * config/linux/sem.c: Include wait.h instead of libgomp.h and
734         futex.h.
735         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
736         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
737         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
738         types.
739         (omp_nest_lock_t): Change owner into void *, add lock field.
740         * config/posix95/omp-lock.h: Include semaphore.h.
741         (omp_lock_25_t, omp_nest_lock_25_t): New types.
742         (omp_lock_t): Use sem_t instead of mutex if semaphores
743         aren't broken.
744         (omp_nest_lock_t): Likewise.  Change owner to void *.
745         * config/posix/omp-lock.h: Include semaphore.h.
746         (omp_lock_25_t, omp_nest_lock_25_t): New types.
747         (omp_lock_t): Use sem_t instead of mutex if semaphores
748         aren't broken.
749         (omp_nest_lock_t): Likewise.  Add owner field.
750
751 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
752
753         * testsuite/libgomp.c/collapse-1.c: New test.
754         * testsuite/libgomp.c/collapse-2.c: New test.
755         * testsuite/libgomp.c/collapse-3.c: New test.
756         * testsuite/libgomp.c/icv-1.c: New test.
757         * testsuite/libgomp.c/icv-2.c: New test.
758         * testsuite/libgomp.c/lib-2.c: New test.
759         * testsuite/libgomp.c/lock-1.c: New test.
760         * testsuite/libgomp.c/lock-2.c: New test.
761         * testsuite/libgomp.c/lock-3.c: New test.
762         * testsuite/libgomp.c/loop-4.c: New test.
763         * testsuite/libgomp.c/loop-5.c: New test.
764         * testsuite/libgomp.c/loop-6.c: New test.
765         * testsuite/libgomp.c/loop-7.c: New test.
766         * testsuite/libgomp.c/loop-8.c: New test.
767         * testsuite/libgomp.c/loop-9.c: New test.
768         * testsuite/libgomp.c/nested-3.c: New test.
769         * testsuite/libgomp.c/nestedfn-6.c: New test.
770         * testsuite/libgomp.c/sort-1.c: New test.
771         * testsuite/libgomp.c/task-1.c: New test.
772         * testsuite/libgomp.c/task-2.c: New test.
773         * testsuite/libgomp.c/task-3.c: New test.
774         * testsuite/libgomp.c/task-4.c: New test.
775         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
776         to C++ testsuite default compiler options.
777         * testsuite/libgomp.c++/collapse-1.C: New test.
778         * testsuite/libgomp.c++/collapse-2.C: New test.
779         * testsuite/libgomp.c++/ctor-10.C: New test.
780         * testsuite/libgomp.c++/for-1.C: New test.
781         * testsuite/libgomp.c++/for-2.C: New test.
782         * testsuite/libgomp.c++/for-3.C: New test.
783         * testsuite/libgomp.c++/for-4.C: New test.
784         * testsuite/libgomp.c++/for-5.C: New test.
785         * testsuite/libgomp.c++/loop-8.C: New test.
786         * testsuite/libgomp.c++/loop-9.C: New test.
787         * testsuite/libgomp.c++/loop-10.C: New test.
788         * testsuite/libgomp.c++/task-1.C: New test.
789         * testsuite/libgomp.c++/task-2.C: New test.
790         * testsuite/libgomp.c++/task-3.C: New test.
791         * testsuite/libgomp.c++/task-4.C: New test.
792         * testsuite/libgomp.c++/task-5.C: New test.
793         * testsuite/libgomp.c++/task-6.C: New test.
794         * testsuite/libgomp.fortran/allocatable1.f90: New test.
795         * testsuite/libgomp.fortran/allocatable2.f90: New test.
796         * testsuite/libgomp.fortran/allocatable3.f90: New test.
797         * testsuite/libgomp.fortran/allocatable4.f90: New test.
798         * testsuite/libgomp.fortran/collapse1.f90: New test.
799         * testsuite/libgomp.fortran/collapse2.f90: New test.
800         * testsuite/libgomp.fortran/collapse3.f90: New test.
801         * testsuite/libgomp.fortran/collapse4.f90: New test.
802         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
803         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
804         * testsuite/libgomp.fortran/lib4.f90: New test.
805         * testsuite/libgomp.fortran/lock-1.f90: New test.
806         * testsuite/libgomp.fortran/lock-2.f90: New test.
807         * testsuite/libgomp.fortran/nested1.f90: New test.
808         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
809         * testsuite/libgomp.fortran/strassen.f90: New test.
810         * testsuite/libgomp.fortran/tabs1.f90: New test.
811         * testsuite/libgomp.fortran/tabs2.f: New test.
812         * testsuite/libgomp.fortran/task1.f90: New test.
813         * testsuite/libgomp.fortran/task2.f90: New test.
814         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
815         * testsuite/libgomp.fortran/vla5.f90: Likewise.
816         * testsuite/libgomp.c/pr26943-2.c: Likewise.
817         * testsuite/libgomp.c/pr26943-3.c: Likewise.
818         * testsuite/libgomp.c/pr26943-4.c: Likewise.
819
820 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
821
822         PR c++/36308
823         * testsuite/libgomp.c++/ctor-11.C: New test.
824         * testsuite/libgomp.c++/ctor-12.C: New test.
825
826 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
827
828         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
829
830 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
831
832         PR middle-end/36106
833         * testsuite/libgomp.c/atomic-5.c: New test.
834         * testsuite/libgomp.c/atomic-6.c: New test.
835         * testsuite/libgomp.c/autopar-1.c: New test.
836
837 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
838
839         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
840         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
841         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
842         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
843         * configure: Regenerate.
844         * Makefile.in, testsuite/Makefile.in: Likewise.
845
846 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
847
848         PR bootstrap/35457
849         * aclocal.m4: Regenerate.
850         * configure: Regenerate.
851
852 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
853
854         PR middle-end/35611
855         * testsuite/libgomp.c/atomic-4.c: New test.
856
857         PR libgomp/35625
858         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
859         (gomp_iter_guided_next): Likewise.
860         * testsuite/libgomp.c/pr35625.c: New test.
861
862 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
863
864         * aclocal.m4: Regenerate.
865         * configure: Likewise.
866         * Makefile.in: Likewise.
867         * testsuite/Makefile.in: Likewise.
868
869 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
870
871         PR middle-end/35185
872         * testsuite/libgomp.c++/pr35185.C: New test.
873
874 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
875
876         PR middle-end/35549
877         * testsuite/libgomp.c/pr35549.c: New test.
878
879 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
880
881         * testsuite/libgomp.c/atomic-3.c: New test.
882
883 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
884
885         PR fortran/33197
886         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
887         .F08 file suffixes.
888
889 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
890
891         PR libgomp/33131
892         * configure.ac: Add ACX_HEADER_STRING.
893         * env.c: Include strings.h.
894         * aclocal.m4: Regenerate.
895         * config.h.in: Regenerate.
896         * configure: Regenerate.
897         * Makefile.in: Regenerate.
898         * testsuite/Makefile.in: Regenerate.
899
900 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
901
902         PR middle-end/35196
903         * testsuite/libgomp.c/pr35196.c: New test.
904
905         PR middle-end/35130
906         * testsuite/libgomp.fortran/pr35130.f90: New test.
907         * testsuite/libgomp.c/pr35130.c: New test.
908
909 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
910
911         PR middle-end/33880
912         * testsuite/libgomp.c/pr33880.c: New test.
913         * testsuite/libgomp.fortran/pr33880.f90: New test.
914
915 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
916
917         * configure: Regenerate.
918
919 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
920
921         * configure.ac: Move futex checking into ../config/futex.m4.
922         * configure: Rebuilt.
923         * aclocal.m4: Rebuilt.
924         * Makefile.in: Rebuilt.
925
926         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
927         2007-10-15 ../config/tls.m4 change.
928
929 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
930
931         PR c++/34513
932         * testsuite/libgomp.c/pr34513.c: New test.
933         * testsuite/libgomp.c++/pr34513.C: New test.
934
935 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
936
937         PR target/32765
938         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
939
940 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
941
942         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
943
944 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
945
946         * testsuite/libgomp.c/private-1.c: New test.
947
948 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
949             Paolo Bonzini  <bonzini@gnu.org>
950
951         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
952         instead of 'VPATH ='.
953         * Makefile.in: Regenerate.
954
955 2007-11-23  Matthias Klose  <doko@ubuntu.com>
956
957         * configure.ac: Adjust makeinfo version check.
958         * configure: Regenerate.
959
960 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
961
962         PR fortran/34020
963         * testsuite/libgomp.fortran/pr34020.f90: New test.
964
965 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
966
967         PR c++/33894
968         * testsuite/libgomp.c++/atomic-1.C: New test.
969
970 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
971
972         PR libgomp/33275
973         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
974         Make x and y integers rather than (implicit) reals.  Add private (j)
975         clause to the last omp parallel.
976
977 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
978
979         * configure: Regenerate following changes to ../config/tls.m4.
980
981 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
982
983         * testsuite/libgomp.fortran/stack.f90: New test.
984
985 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
986
987         * config/mingw32/proc.c: New file.
988
989 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
990
991         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
992         (main): Use __get_cpuid to get i386 target fetaures.
993         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
994         (main): Use __get_cpuid to get x86_64 target fetaures.
995
996 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
997
998         PR target/32765
999         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
1000         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
1001
1002 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
1003
1004         PR fortran/32550
1005         * testsuite/libgomp.fortran/pr32550.f90: New test.
1006         * testsuite/libgomp.fortran/crayptr2.f90: New test.
1007
1008 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1009
1010         * aclocal.m4: Regenerated.
1011
1012 2007-07-05  Tobias Burnus  <burnus@net-b.de>
1013
1014         PR fortran/32359
1015         * testsuite/libgomp.fortran/pr32359.f90: New.
1016
1017 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
1018
1019         PR libgomp/32468
1020         * sections.c (GOMP_parallel_sections_start): Only decrease
1021         number of threads to COUNT if dyn_var is true.
1022         * testsuite/libgomp.c/pr32468.c: New test.
1023
1024 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1025
1026         PR libgomp/26308
1027         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
1028
1029 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1030
1031         PR middle-end/32362
1032         * testsuite/libgomp.c/pr32362-1.c: New test.
1033         * testsuite/libgomp.c/pr32362-2.c: New test.
1034         * testsuite/libgomp.c/pr32362-3.c: New test.
1035
1036 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
1037
1038         * team.c (gomp_team_start): Fix setting up thread_attr
1039         stack size.
1040
1041 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
1042
1043         * configure: Regenerate.
1044
1045 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
1046
1047         * Makefile.in: Regenerate.
1048         * configure: Regenerate.
1049         * aclocal.m4: Regenerate.
1050         * testsuite/Makefile.in: Regenerate.
1051
1052 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
1053
1054         * config/linux/proc.c: New file.
1055
1056         PR libgomp/28482
1057         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
1058
1059 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
1060
1061         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
1062
1063 2007-04-16  Matthias Klose  <doko@debian.org>
1064
1065         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
1066         flags if not building with -m64.
1067         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
1068         flag for i?86-*-* targets, if current target matches -m64.
1069
1070 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
1071
1072         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
1073         * Makefile.in: Regenerate.
1074
1075 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1076
1077         PR testsuite/31369
1078         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
1079         ld_library_path.
1080         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1081
1082 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
1083
1084         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
1085         decls.
1086         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
1087         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
1088         (parse_affinity): New function.
1089         (initialize_env): Call it and gomp_init_affinity.
1090         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
1091         create new pthread_attr_t and call gomp_init_thread_affinity
1092         on it for each thread before passing the attribute to pthread_create.
1093         * config/linux/affinity.c: New file.
1094         * config/posix/affinity.c: New file.
1095         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
1096         * configure: Rebuilt.
1097         * config.h.in: Rebuilt.
1098         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
1099         * Makefile.in: Rebuilt.
1100
1101 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
1102
1103         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
1104         *-*-darwin*.
1105         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
1106         and use it if found.
1107
1108 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
1109
1110         * testsuite/config/default.exp: New file.
1111         * testsuite/lib/libgomp.exp: New file.
1112         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
1113         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
1114         load_lib *, load_gcc_lib *): Move to libgomp.exp.
1115         (libgomp_load): Remove.
1116         * testsuite/lib/libgomp.exp (libgomp_init): Compute
1117         always_ld_library_path, not ld_library_path.  Set additional_flags
1118         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
1119         (target_compile): Do not call libgomp_init.  Append lang_library_path
1120         and lang_link_flags to options.
1121         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
1122         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
1123         here.
1124         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
1125         always_ld_library_path.  Set LD_LIBRARY_PATH here.
1126         * testsuite/libgomp.fortran/fortran.exp: Ditto.
1127         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
1128         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
1129         CX8 flag.
1130         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
1131         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
1132         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
1133         * testsuite/libgomp.c/pr29947-1.c: Ditto.
1134         * testsuite/libgomp.c/atomic-10.c: Ditto.
1135
1136 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
1137
1138         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
1139         dg-final cleanup-modules line.
1140         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
1141         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
1142         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
1143         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
1144         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
1145         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
1146         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
1147
1148 2007-03-18  Andreas Schwab  <schwab@suse.de>
1149
1150         * acinclude.m4: Adjust regular expression for ld version
1151         extraction.
1152         * configure: Regenerate.
1153
1154 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1155
1156         * Makefile.am: Add install-pdf target as copied from
1157         automake v1.10 rules.
1158         * Makefile.in: Regenerate
1159
1160 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
1161
1162         PR libgomp/28486
1163         * configure: Regenerate.
1164
1165         PR c++/30703
1166         * testsuite/libgomp.c++/pr30703.C: New test.
1167
1168 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1169
1170         Revert:
1171         2006-07-05  Eric Christopher  <echristo@apple.com>
1172         * configure.ac: Depend addition of -pthread on host OS.
1173         * configure: Regenerate.
1174
1175 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1176
1177         * libgomp.texi: Fix spacing after abbreviations.
1178
1179 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
1180
1181         PR libgomp/30546
1182         * configure.ac: Add check for makeinfo
1183         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
1184         if an appropiate version of makeinfo is found.
1185         * aclocal.m4: Regenerated.
1186         * configure: Regenerated.
1187         * Makefile.in: Regenerated.
1188         * testsuite/Makefile.in: Regenerated.
1189
1190 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
1191
1192         PR libgomp/30540
1193         * libgomp.texi: More about implementation-dependent settings.
1194
1195 2007-01-26  Tobias Burnus  <burnus@net-b.de>
1196
1197         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
1198
1199 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
1200
1201         PR middle-end/30494
1202         * testsuite/libgomp.c/pr30494.c: New test.
1203
1204 2007-01-15  Tom Tromey  <tromey@redhat.com>
1205
1206         * configure: Rebuilt.
1207         * configure.ac: Fixed comment.
1208
1209 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
1210
1211         * libgomp.texi: Document implementation specific default values of
1212         environment variables.
1213
1214 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
1215
1216         PR libgomp/28209
1217         * libgomp.texi: New file.
1218         * configure.ac: Add --enable-generated-files-in-srcdir option.
1219         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
1220         files to srcdir.
1221         * Makefile.in: Regenerated.
1222         * config.h.in: Regenerated.
1223         * testsuite/Makefile.in: Regenerated.
1224         * NOTES: Removed.
1225
1226 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
1227
1228         PR libgomp/29949
1229         * env.c (omp_set_num_threads): Set illegal thread count to 1.
1230
1231 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1232
1233         * configure: Regenerate.
1234
1235 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
1236
1237         PR libgomp/29947
1238         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
1239         start if there shouldn't be any loop iterations.
1240         (gomp_loop_ordered_static_start): Remove start == end test.
1241         * testsuite/libgomp.c/pr29947-1.c: New test.
1242         * testsuite/libgomp.c/pr29947-2.c: New test.
1243
1244 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1245
1246         * configure.tgt: Force initial-exec TLS model on Linux only.
1247
1248 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
1249
1250         * configure: Regenerated.
1251
1252 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
1253
1254         * env.c (parse_schedule): Reject out of range values.
1255         (parse_unsigned_long): Reject out of range, negative or zero values.
1256
1257 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
1258
1259         PR fortran/29629
1260         * testsuite/libgomp.fortran/pr29629.f90: New test.
1261
1262 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
1263
1264         PR libgomp/29494
1265         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
1266         * config/posix95: New directory.
1267         * config/posix95/omp-lock.h: New file.
1268         * config/posix95/lock.c: Likewise.
1269
1270 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
1271
1272         * aclocal.m4: Regenerate.
1273         * configure: Regenerate.
1274
1275 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
1276
1277         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
1278         '<' to '<='.
1279
1280 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
1281
1282         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
1283         test.
1284         * configure: Regenerate.
1285         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
1286
1287 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
1288
1289         PR middle-end/25261
1290         PR middle-end/28790
1291         * testsuite/libgomp.c/nestedfn-4.c: New test.
1292         * testsuite/libgomp.c/nestedfn-5.c: New test.
1293         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
1294
1295         PR fortran/29097
1296         * testsuite/libgomp.fortran/condinc1.f: New test.
1297         * testsuite/libgomp.fortran/condinc2.f: New test.
1298         * testsuite/libgomp.fortran/condinc3.f90: New test.
1299         * testsuite/libgomp.fortran/condinc4.f90: New test.
1300         * testsuite/libgomp.fortran/condinc1.inc: New file.
1301
1302 2006-09-18  Tom Tromey  <tromey@redhat.com>
1303
1304         * configure: Rebuilt.
1305
1306 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
1307
1308         PR c/28768
1309         PR preprocessor/14634
1310         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
1311         to AC_DEFINE.
1312         * configure: Regenerate.
1313
1314 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1315
1316         * testsuite/libgomp.fortran/reduction3.f90: Change
1317         -2147483648 to -huge(i)-1 to avoid overflow.
1318         * testsuite/libgomp.fortran/reduction4.f90: Change
1319         Z'ffffffff' to not(0) to avoid overflow.
1320
1321 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
1322
1323         PR libgomp/25938
1324         * Makefile.am (libsubincludedir): New.
1325         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
1326         * Makefile.in: Regenerate.
1327
1328 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
1329
1330         PR libgomp/28725
1331         * env.c: Include ctype.h.
1332         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
1333         leading and/or trailing whitespace and compare strings case
1334         insensitively.
1335
1336 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
1337
1338         PR fortran/28390
1339         * testsuite/libgomp.fortran/pr28390.f: New test.
1340
1341 2006-07-05  Eric Christopher  <echristo@apple.com>
1342
1343         * configure.ac: Depend addition of -pthread on host OS.
1344         * configure: Regenerate.
1345
1346 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
1347
1348         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
1349         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
1350         defined.
1351
1352 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
1353
1354         PR libgomp/26175
1355         PR libgomp/26477
1356         * configure.ac: If neither --enable-linux-futex nor
1357         --disable-linux-futex is passed, determine the default by checking
1358         for compiling and/or running against NPTL.  With --enable-linux-futex,
1359         check if SYS_gettid and SYS_futex are defined.
1360         * configure: Rebuilt.
1361
1362 2006-06-14  Richard Henderson  <rth@redhat.com>
1363
1364         PR libgomp/28008
1365         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
1366         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
1367
1368 2006-06-09  Richard Henderson  <rth@redhat.com>
1369
1370         * env.c (gomp_nthreads_var): Change to unsigned long.
1371         (gomp_run_sched_chunk): Likewise.
1372         (parse_unsigned_long): Rename from parse_num_threads and generalize.
1373         (initialize_env): Initialize gomp_thread_attr.
1374         * libgomp.h (gomp_nthreads_var): Update decl.
1375         (gomp_run_sched_chunk): Likewise.
1376         (gomp_thread_attr): Declare.
1377         * team.c (gomp_thread_attr): Export.
1378         (initialize_team): Don't initialize it.
1379
1380 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
1381
1382         PR fortran/27916
1383         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
1384         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
1385
1386 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1387
1388         * config/mingw32/time.c: New file.
1389         * configure.tgt: Use it.
1390
1391 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
1392
1393         * Makefile.am: Add install-html target. Add install-html to .PHONY
1394         * Makefile.in: Regenerate.
1395
1396 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1397
1398         PR libgomp/27612
1399         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
1400         * testsuite/libgomp.c/critical-1.c: Likewise.
1401         * testsuite/libgomp.c/loop-1.c: Likewise.
1402         * testsuite/libgomp.c/loop-2.c: Likewise.
1403         * testsuite/libgomp.c/single-1.c: Likewise.
1404         * testsuite/libgomp.c/ordered-1.c: Likewise.
1405         * testsuite/libgomp.c/ordered-2.c: Likewise.
1406
1407 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
1408
1409         PR middle-end/27416
1410         * libgomp.fortran/pr27416-1.f90: New test.
1411
1412 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
1413
1414         PR fortran/27395
1415         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
1416         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
1417
1418 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1419
1420         PR c++/26943
1421         * testsuite/libgomp.c/pr26943-1.c: New test.
1422         * testsuite/libgomp.c/pr26943-2.c: New test.
1423         * testsuite/libgomp.c/pr26943-3.c: New test.
1424         * testsuite/libgomp.c/pr26943-4.c: New test.
1425         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
1426         * testsuite/libgomp.c++/pr26943.C: New test.
1427
1428 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1429
1430         PR middle-end/27337
1431         * testsuite/libgomp.c++/pr27337.C: New test.
1432
1433 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
1434
1435         PR c/26171
1436         * testsuite/libgomp.c/pr26171.c: New test.
1437
1438 2006-04-25  Richard Henderson  <rth@redhat.com>
1439
1440         PR libgomp/25865
1441         * configure.ac: Use GCC_CHECK_TLS.
1442         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
1443         * Makefile.in, aclocal.m4, configure: Regenerate.
1444
1445 2006-04-10  Matthias Klose  <doko@debian.org>
1446
1447         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
1448         directory names containing underscores.
1449
1450 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR c++/26691
1453         * testsuite/libgomp.c++/pr26691.C: New test.
1454
1455 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
1456
1457         * testsuite/libgomp.fortran/retval2.f90: New test.
1458
1459 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
1460
1461         * testsuite/libgomp.c++: New directory.
1462
1463 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
1464
1465         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
1466         * config/posix/sem.c: Implement the above.
1467
1468 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
1469
1470         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
1471         define HAVE_BROKEN_POSIX_SEMAPHORES.
1472         * configure: Rebuilt.
1473         * config.h.in: Rebuilt.
1474
1475 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1476
1477         PR bootstrap/26161
1478         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
1479         for the other pthread check.
1480         * configure: Regenerate.
1481         * config.h.in: Regenerate.
1482
1483 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
1484
1485         PR libgomp/25938
1486         PR libgomp/25984
1487         * Makefile.am (fincludedir): New variable.
1488         (nodist_include_HEADERS): Remove Fortran files.
1489         (nodist_finclude_HEADERS): New variable.
1490         * Makefile.in: Regenerated.
1491
1492 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
1493
1494         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
1495         Remove tests for returning assumed character length arrays.
1496
1497 2006-02-12  Roger Sayle  <roger@eyesopen.com>
1498             John David Anglin  <dave@hiauly1.hia.nrc.ca>
1499
1500         PR libgomp/25936
1501         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
1502
1503 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
1504
1505         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
1506
1507 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1508
1509         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
1510         part of LD_LIBRARY_PATH manually.
1511
1512 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
1513
1514         PR libgomp/25852
1515         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
1516         libgomp_init.
1517
1518 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
1519
1520         PR libgomp/25884
1521         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
1522         * configure.ac (PERL): Don't set.
1523         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
1524         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
1525         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
1526         * omp.h.in: Wrap the new configure substitutions with @ characters.
1527         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
1528         * aclocal.m4, configure, Makefile.in: Regenerate.
1529         * mkomp_h.pl: Delete.
1530
1531 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
1532
1533         PR libgomp/25259
1534         * configure.ac: Use GCC_HEADER_STDINT.
1535         * libgomp.h: Include gstdint.h.
1536         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
1537         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
1538
1539 2006-01-24  Richard Henderson  <rth@redhat.com>
1540
1541         PR libgomp/25942
1542         * configure.ac: Add AM_MAINTAINER_MODE.
1543         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
1544
1545 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
1546
1547         * Makefile.in: Regenerate.
1548         * testsuite/Makefile.in: Regenerate.
1549         * aclocal.m4: Regenerate.
1550
1551 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
1552
1553         * config/posix/proc.c: Conditional include of sys/loadavg.h for
1554         Solaris.
1555         * configure.ac: Add check for loadavg.h.
1556         (link_gomp): Adjust comment.
1557         * configure: Regenerate.
1558         * config.h.in: Regenerate.
1559
1560 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
1561
1562         PR libgomp/25877
1563         * configure.ac: Remove check for alloca.h.
1564         * configure: Regenerate.
1565         * config.h.in: Regenerate.
1566         * libgomp.h: define gomp_alloca to be __builtin_alloca.
1567         * team.c: Remove use of alloca.h.
1568         Call gomp_alloca instead of alloca.
1569
1570 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
1571
1572         PR libgomp/25877
1573         * team.c: Add include of alloca.h.
1574         * configure.ac: Add check for alloca.h.
1575         * configure: Regenerate.
1576         * config.h.in: Regenerate.
1577
1578 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
1579
1580         PR fortran/25219
1581         * testsuite/libgomp.fortran/pr25219.f90: New test.
1582
1583 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
1584
1585         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
1586         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
1587         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
1588         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
1589         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
1590         testsuite/libgomp.fortran/threadprivate1.f90,
1591         testsuite/libgomp.fortran/threadprivate2.f90,
1592         testsuite/libgomp.fortran/threadprivate3.f90,
1593         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
1594         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
1595         testsuite/libgomp.fortran/omp_parse3.f90: Change required
1596         effective-target to TLS runtime.
1597
1598         * testsuite/libgomp.fortran/pr25162.f: Require
1599         effective-target TLS runtime.
1600
1601 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
1602
1603         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
1604         * testsuite/libgomp.c/nestedfn-3.c: New test.
1605
1606 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
1607
1608         PR fortran/25162
1609         * testsuite/libgomp.fortran/pr25162.f: New test.
1610
1611 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
1612
1613         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
1614         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
1615
1616 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
1617
1618         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
1619         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
1620         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
1621         single.c, team.c, work.c, config/linux/alpha/futex.h,
1622         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
1623         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
1624         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
1625         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
1626         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
1627         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
1628         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
1629         FSF address.
1630
1631 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
1632
1633         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
1634         to nodist_noinst_HEADERS.
1635         * Makefile.in: Rebuilt.
1636
1637         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
1638         add integer count field.
1639         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
1640         omp_nest_lock_t type change.
1641         (omp_init_nest_lock): Likewise.  Initialize count to 0.
1642         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
1643         Increment count.
1644         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
1645         Decrement count.
1646         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
1647         Increment count if successful and return the new nesting level.
1648         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
1649         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
1650         * testsuite/libgomp.c/lib-1.c: New test.
1651         * testsuite/libgomp.fortran/lib1.f90: New test.
1652         * testsuite/libgomp.fortran/lib2.f: New test.
1653         * testsuite/libgomp.fortran/lib3.f: New test.
1654
1655 2005-11-17  Richard Henderson  <rth@redhat.com>
1656
1657         PR 24845
1658         * Makefile.am (nodist_toolexeclib_HEADERS): New.
1659         * configure.ac (link_gomp): New.  Substitute it.
1660         (AC_CONFIG_FILES): Add libgomp.spec.
1661         * libgomp.spec.in: New file.
1662         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
1663         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
1664
1665 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
1666
1667         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
1668         reduction(-:var) behaving the same as reduction(+:var).
1669         * testsuite/libgomp.c/reduction-4.c: New test.
1670
1671 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
1672
1673         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
1674         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
1675         testsuite/libgomp.c/copyin-3.c,
1676         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
1677         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
1678         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
1679         testsuite/libgomp.c++/pr24455.C,
1680         testsuite/libgomp.fortran/threadprivate1.f90,
1681         testsuite/libgomp.fortran/threadprivate2.f90,
1682         testsuite/libgomp.fortran/threadprivate3.f90,
1683         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
1684         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
1685         testsuite/libgomp.fortran/omp_parse3.f90: Require
1686         effective-target TLS.
1687
1688 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
1689
1690         * HEADER: Remove.
1691
1692 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
1693
1694         PR libgomp/24797
1695         * team.c (initialize_team): Pass NULL rather than free as
1696         pthread_key_create destructor.  Initialize thread specific data
1697         pointer in initial thread to a static local variable rather than
1698         malloced memory.
1699
1700 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
1701
1702         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
1703         its location to ld_library_path.
1704
1705 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
1706
1707         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
1708
1709 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
1710
1711         * testsuite/libgomp.c: Rename from libgomp.dg.
1712
1713 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
1714
1715         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
1716         threadprivate variable 'i'.
1717
1718 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
1719
1720         * config/linux/s390/futex.h: New file.
1721         * configure.tgt: Use it.
1722
1723         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
1724         before the parallel.
1725
1726 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
1727
1728         PR c++/24734
1729         * testsuite/libgomp.c++/master-1.C: New test.
1730
1731 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
1732
1733         * testsuite/libgomp.dg/copyin-3.c: New test.
1734
1735 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
1736
1737         * testsuite/libgomp.fortran/retval1.f90: New test.
1738         * testsuite/libgomp.fortran/vla7.f90: New test.
1739
1740 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
1741
1742         * testsuite/libgomp.fortran/vla2.f90: New test.
1743         * testsuite/libgomp.fortran/vla3.f90: New test.
1744         * testsuite/libgomp.fortran/vla4.f90: New test.
1745         * testsuite/libgomp.fortran/vla5.f90: New test.
1746         * testsuite/libgomp.fortran/vla6.f90: New test.
1747
1748 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
1749
1750         * config/linux/sparc/futex.h: New file.
1751         * configure.tgt: Use it.
1752         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
1753
1754         * critical.c: Include stdlib.h.
1755         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
1756         ignoring return value.
1757         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
1758         LIBGOMP_CHECK_SYNC_BUILTINS check.
1759         * configure: Rebuilt.
1760
1761 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
1762
1763         * testsuite/libgomp.fortran/vla1.f90: New test.
1764
1765 2005-10-31  Richard Henderson  <rth@redhat.com>
1766
1767         * testsuite/libgomp.fortran/character2.f90: Fix race condition
1768         setting 's' in different threads.
1769
1770 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
1771
1772         * libgomp.h (attribute_hidden, ialias): Define.
1773         * config/posix/proc.c (omp_get_num_procs): Add ialias.
1774         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
1775         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
1776         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
1777         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
1778         omp_test_lock, omp_test_nest_lock): Likewise.
1779         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
1780         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
1781         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
1782         omp_test_lock, omp_test_nest_lock): Likewise.
1783         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
1784         omp_get_dynamic, omp_get_nested): Likewise.
1785         * parallel.c (omp_get_num_threads, omp_get_max_threads,
1786         omp_get_thread_num, omp_in_parallel): Likewise.
1787         * fortran.c (ialias_redirect): Define.
1788         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
1789         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
1790         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
1791         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
1792         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
1793         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
1794         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
1795         omp_get_wtime): Add ialias_redirect.
1796
1797 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
1798
1799         * fortran.c: Include stdlib.h.
1800
1801 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
1802
1803         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
1804         * Makefile.in: Regenerated.
1805
1806 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
1807
1808         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
1809         * libgomp_f.h.in (omp_check_defines): New function.
1810         * env.c: Include libgomp_f.h.
1811         (initialize_env): Call omp_check_defines.
1812
1813         * testsuite/libgomp.dg/copyin-2.c: New test.
1814         * testsuite/libgomp.c++/copyin-2.C: New test.
1815         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
1816
1817         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
1818         * testsuite/libgomp.fortran/sharing2.f90: New test.
1819
1820         * testsuite/libgomp.dg/copyin-1.c: New test.
1821         * testsuite/libgomp.c++/copyin-1.C: New test.
1822
1823 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
1824
1825         * testsuite/libgomp.fortran/crayptr1.f90: New test.
1826
1827         * testsuite/libgomp.fortran/workshare1.f90: New test.
1828
1829         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
1830         only test.
1831         * libgomp.fortran/sharing1.f90: New test.
1832
1833 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
1834
1835         PR c++/24502
1836         * testsuite/libgomp.c++/loop-7.C: New test.
1837
1838         * testsuite/libgomp.dg/nestedfn-2.c: New test.
1839
1840         * testsuite/libgomp.dg/nestedfn-1.c: New test.
1841         * testsuite/libgomp.fortran/reduction6.f90: New test.
1842         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
1843
1844 2005-10-23  Richard Henderson  <rth@redhat.com>
1845
1846         * testsuite/libgomp.c++/ctor-1.C: New.
1847         * testsuite/libgomp.c++/ctor-2.C: New.
1848         * testsuite/libgomp.c++/ctor-3.C: New.
1849         * testsuite/libgomp.c++/ctor-4.C: New.
1850         * testsuite/libgomp.c++/ctor-5.C: New.
1851         * testsuite/libgomp.c++/ctor-6.C: New.
1852         * testsuite/libgomp.c++/ctor-7.C: New.
1853         * testsuite/libgomp.c++/ctor-8.C: New.
1854         * testsuite/libgomp.c++/ctor-9.C: New.
1855
1856 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
1857
1858         PR 24455
1859         * testsuite/libgomp.c++/pr24455-1.C: New test.
1860         * testsuite/libgomp.c++/pr24455.C: New test.
1861         * testsuite/libgomp.dg/pr24455-1.c: New test.
1862         * testsuite/libgomp.dg/pr24455.c: New test.
1863
1864 2005-10-20  Richard Henderson  <rth@redhat.com>
1865
1866         * testsuite/libgomp.c++/loop-6.C: New.
1867         * testsuite/libgomp.dg/loop-3.c: New.
1868
1869 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
1870
1871         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
1872         explicitly private.
1873         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
1874         explicitly shared.
1875
1876 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
1877
1878         * testsuite/libgomp.fortran/jacobi.f: New test.
1879
1880 2005-10-19  Richard Henderson  <rth@redhat.com>
1881
1882         * configure.tgt (i?86-linux): Default to with_arch instead of
1883         CFLAGS.  Add -mtune to match target_cpu.
1884         (x86_64-linux): Tune to i686.
1885
1886         * fortran.c (omp_test_nest_lock_): Fix typo.
1887
1888 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
1889
1890         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
1891         gomp_ordered_sync): Do nothing if team->nthreads == 1.
1892         * testsuite/libgomp.dg/ordered-3.c: New test.
1893
1894         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
1895         Remove volatile keyword.
1896
1897         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
1898         in COMMON block to avoid warnings on 64-bit targets.
1899
1900 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
1901
1902         * testsuite/libgomp.dg/shared-3.c: New test.
1903
1904 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
1905
1906         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
1907         * testsuite/libgomp.fortran/reduction5.f90: New test.
1908
1909 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
1910
1911         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
1912         dg-options.
1913         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
1914         flush loop now that __sync_synchronize has proper memory barrier.
1915         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
1916         Add -ffixed-form to dg-options.
1917
1918 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
1919
1920         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
1921         from subdirectories.
1922         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
1923         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
1924         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
1925         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
1926         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
1927         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
1928         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
1929         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
1930         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
1931         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
1932         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
1933         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
1934         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
1935         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
1936         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
1937         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
1938         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
1939         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
1940         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
1941         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
1942         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
1943         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
1944         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
1945         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
1946         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
1947
1948 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
1949
1950         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
1951         lang_library_path exists.  Use find instead of glob to gather tests.
1952         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
1953
1954 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
1955
1956         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
1957         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
1958         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
1959         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
1960         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
1961         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
1962         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
1963         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
1964         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
1965         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
1966         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
1967         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
1968         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
1969
1970 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
1971
1972         * testsuite/libgomp.dg/vla-1.c: New test.
1973
1974         * testsuite/libgomp.fortran/reference2.f90: New test.
1975
1976         * testsuite/libgomp.fortran/character2.f90: Remove explicit
1977         declaration of omp_get_thread_num.
1978         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
1979         use omp_lib.
1980
1981         * testsuite/libgomp.fortran/reduction1.f90: New test.
1982         * testsuite/libgomp.fortran/reduction2.f90: New test.
1983         * testsuite/libgomp.fortran/reduction3.f90: New test.
1984         * testsuite/libgomp.fortran/reduction4.f90: New test.
1985
1986 2005-10-13  Richard Henderson  <rth@redhat.com>
1987
1988         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
1989         * Makefile.in: Regenerate.
1990         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
1991         * libgomp.h: Include bar.h.
1992         (struct gomp_barrier): Remove.
1993         (struct gomp_team): Add barrier.  Replace master_barrier with
1994         master_release.  Replace threads with ordered_release.
1995         (struct gomp_thread): Replace barrier with release.
1996         * ordered.c (gomp_ordered_first): Update for ordered_release change.
1997         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
1998         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
1999         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
2000         (GOMP_single_copy_end): Likewise.
2001         * team.c (gomp_threads_dock): New.
2002         (gomp_barrier_init, gomp_barrier_destroy): Remove.
2003         (gomp_thread_start): Use gomp_barrier_wait.
2004         (new_team, free_team): Update for gomp_team changes.
2005         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
2006         (gomp_team_end): Use gomp_barrier_wait.
2007         (initialize_team): Update for gomp_thread changes.
2008         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
2009         (gomp_work_share_end_nowait): Use atomic ops when available.
2010         * config/linux/bar.c, config/linux/bar.h: New files.
2011         * config/posix/bar.c, config/posix/bar.h: New files.
2012
2013 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
2014
2015         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
2016         * testsuite/libgomp.dg/single-2.c: New test.
2017
2018         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
2019         lang_link_flags): Unset, so that they aren't inherited from previously
2020         sourced *.exp.
2021
2022         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
2023
2024 2005-10-12  Richard Henderson  <rth@redhat.com>
2025
2026         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
2027         (libgomp_init): Use lang_test_file, lang_library_path, and
2028         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
2029
2030         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
2031         (lang_test_file, lang_link_flags): New.
2032         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
2033
2034         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
2035         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
2036         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
2037         testsuite/libgomp.c++/parallel-1.C,
2038         testsuite/libgomp.c++/reduction-1.C,
2039         testsuite/libgomp.c++/reduction-2.C,
2040         testsuite/libgomp.c++/reduction-3.C,
2041         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
2042         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
2043         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
2044         New files, largely cribbed from the C testsuite.
2045
2046 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
2047
2048         * testsuite/libgomp.fortran/character1.f90: New test.
2049         * testsuite/libgomp.fortran/character2.f90: New test.
2050
2051         * testsuite/libgomp.dg/nested-1.c: New test.
2052         * testsuite/libgomp.dg/nested-2.c: New test.
2053         * testsuite/libgomp.fortran/do1.f90: New test.
2054         * testsuite/libgomp.fortran/do2.f90: New test.
2055
2056         * testsuite/libgomp.fortran/reference1.f90: New test.
2057
2058 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
2059
2060         * testsuite/libgomp.dg/reduction-1.c: New test.
2061         * testsuite/libgomp.dg/reduction-2.c: New test.
2062         * testsuite/libgomp.dg/reduction-3.c: New test.
2063
2064 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
2065
2066         * testsuite/libgomp.dg/atomic-1.c: New test.
2067         * testsuite/libgomp.dg/atomic-2.c: New test.
2068
2069 2005-10-09  Richard Henderson  <rth@redhat.com>
2070
2071         * critical.c (atomic_lock): New.
2072         (initialize_critical): Initialize it.
2073         (GOMP_atomic_start, GOMP_atomic_end): New.
2074         * libgomp.map: Export them.
2075         * libgomp_g.h: Declare them.
2076
2077         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
2078
2079 2005-10-02  Richard Henderson  <rth@redhat.com>
2080
2081         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
2082         to XCFLAGS instead of CFLAGS.
2083
2084 2005-09-30  Richard Henderson  <rth@redhat.com>
2085
2086         * configure.ac: Determine whether -pthread or -lpthread is needed.
2087         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
2088         * Makefine.in, configure: Rebuild.
2089
2090 2005-09-28  Richard Henderson  <rth@redhat.com>
2091
2092         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
2093         * testsuite/libgomp.dg/omp-single-3.c: New test.
2094
2095 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
2096
2097         * testsuite/libgomp.dg/omp-single-2.c: New test.
2098         * testsuite/libgomp.dg/shared-2.c: Fix return code.
2099
2100 2005-09-27  Richard Henderson  <rth@redhat.com>
2101
2102         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
2103         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
2104
2105 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
2106
2107         * testsuite/libgomp.dg/omp-loop03.c: New test.
2108
2109 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
2110
2111         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
2112
2113 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
2114
2115         * testsuite/libgomp.dg/omp-single-1.c: New test.
2116         * testsuite/libgomp.dg/shared-1.c: Return 0.
2117         Add prototype for abort.
2118         * testsuite/libgomp.dg/shared-2.c: Likewise.
2119
2120 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
2121
2122         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
2123         constructs.
2124
2125 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
2126
2127         * testsuite/libgomp.dg/shared-1.c: New test.
2128         * testsuite/libgomp.dg/shared-2.c: New test.
2129
2130 2005-09-24  Richard Henderson  <rth@redhat.com>
2131
2132         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
2133
2134 2005-09-24  Richard Henderson  <rth@redhat.com>
2135
2136         * iter.c (gomp_iter_static_next): Round up when computing number
2137         of iterations.  Don't bother distributing a remainder equally.
2138
2139         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
2140         Don't call srand.  Zero b before testing.
2141         (main): New.
2142
2143 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
2144
2145         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
2146         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
2147
2148 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
2149
2150         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
2151         without !$omp end do, followed immediately by subroutine end.
2152
2153 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
2154
2155         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
2156
2157 2005-09-22  Richard Henderson  <rth@redhat.com>
2158
2159         * critical.c (GOMP_critical_name_start): Change argument to void**.
2160         Reuse the pointer space if the mutex fits.
2161         (GOMP_critical_name_end): Likewise.
2162         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
2163         * libgomp_g.h (GOMP_critical_name_start): Update decl.
2164         (GOMP_critical_name_end): Likewise.
2165         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
2166         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
2167
2168 2005-09-20  Richard Henderson  <rth@redhat.com>
2169
2170         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
2171         (create_lock_lock): New.
2172         (initialize_critical): Initialize it.
2173         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
2174         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
2175
2176 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
2177
2178         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
2179
2180 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
2181
2182         * testsuite/libgomp.dg/omp-loop01.c: New test.
2183         * testsuite/libgomp.dg/omp-loop02.c: New test.
2184
2185 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
2186
2187         * configure.ac (AC_PROG_FC): Add.
2188         (USE_FORTRAN): New automake conditional.
2189         * configure: Rebuilt.
2190         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
2191         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
2192         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
2193         Add rules to build them.
2194         * Makefile.in: Rebuilt.
2195         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
2196         OMP_NEST_LOCK_KIND.
2197         * libgomp.map: Add Fortran wrappers.
2198         * libgomp_f.h.in: New file.
2199         * omp_lib.h.in: New file.
2200         * omp_lib.f90.in: New file.
2201         * fortran.c: New file.
2202         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
2203         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
2204         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
2205         libgfortran has been built.
2206         * testsuite/libgomp.fortran/fortran.exp: New file.
2207         * testsuite/libgomp.fortran/omp_cond1.f: New test.
2208         * testsuite/libgomp.fortran/omp_cond2.f: New test.
2209         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
2210         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
2211         * testsuite/libgomp.fortran/omp_hello.f: New test.
2212         * testsuite/libgomp.fortran/omp_orphan.f: New test.
2213         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
2214         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
2215         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
2216         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
2217         * testsuite/libgomp.fortran/omp_reduction.f: New test.
2218         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
2219         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
2220
2221 2005-08-30  Richard Henderson  <rth@redhat.com>
2222
2223         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
2224         function for when aliases are not usable.
2225         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
2226         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
2227         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
2228         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
2229         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
2230         GOMP_loop_ordered_guided_next): Likewise.
2231         * ordered.c (GOMP_ordered_start): Likewise.
2232
2233 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
2234
2235         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
2236         * testsuite/libgomp.dg/omp_hello.c: Fix return code
2237         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
2238         * testsuite/libgomp.dg/omp_orphan.c: Likewise
2239         * testsuite/libgomp.dg/omp_reduction.c: Likewise
2240         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
2241         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
2242         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
2243         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
2244
2245 2005-07-07  Eric Christopher  <echristo@redhat.com>
2246             Diego Novillo  <dnovillo@redhat.com>
2247
2248         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
2249         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
2250         up code.
2251         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
2252         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
2253         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
2254         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
2255         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
2256         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
2257         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
2258
2259 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
2260
2261         * TOPLEVEL.patch: Remove.
2262
2263 2005-05-16  Richard Henderson  <rth@redhat.com>
2264
2265         * configure.ac: Test for clock_gettime.
2266         * config.h.in, configure: Rebuild.
2267         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
2268         (omp_get_wtime): Use clock_gettime if available.
2269         (omp_get_wtick): Use clock_getres if available.
2270
2271 2005-05-11  Richard Henderson  <rth@redhat.com>
2272
2273         * config/linux/ia64/futex.h: New file.
2274         * configure.tgt: Use it.
2275
2276         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
2277
2278 2005-05-07  Richard Henderson  <rth@redhat.com>
2279
2280         * config/linux/powerpc/futex.h: New file.
2281         * configure.tgt: Use it.
2282
2283         * config/linux/i486/futex.h: Merge ...
2284         * config/linux/x86_64/futex.h: ... into ...
2285         * config/linux/x86/futex.h: ... here.
2286         * configure.tgt: Update to match.
2287
2288 2005-05-06  Richard Henderson  <rth@redhat.com>
2289
2290         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
2291         * config/linux/i486/futex.h: Likewise.
2292         * config/linux/x86_64/futex.h: Likewise.
2293
2294         * config/linux/lock.c: New file.
2295         * config/linux/omp-lock.h: New file.
2296
2297         * critical.c, env.h: Don't include omp.h
2298         * config/posix/lock.c: Include libgomp.h instead of omp.h.
2299         * config/posix/time.c: Likewise.
2300         * config/posix/omp-lock.h: New file.
2301         * libgomp.h: Include omp-lock.h and omp.h.
2302         * Makefile.am (nodist_include_HEADERS): New.
2303         (omp.h): New rule.
2304         * configure.ac (PERL): New.
2305         * mkomp_h.pl: New file.
2306         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
2307         with templates.
2308         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
2309
2310         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
2311         build directory.  Re-add -march=i486 hack.
2312
2313         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
2314         (libgomp_link_flags): Remove.
2315         (libgomp_initialized): Remove.
2316         (libgomp_init): Don't protect from reinitialization.  Copy code
2317         from libstdc++ for getting the multilib set correctly.
2318
2319 2005-05-05  Richard Henderson  <rth@redhat.com>
2320
2321         * config/linux/alpha/futex.h: New file.
2322         * configure.tgt (alpha*-*-linux*): Use it.
2323
2324         * config/posix/mutex.c: New file.
2325         * config/posix/sem.c: Use libgomp.h.
2326
2327         * configure.tgt (x86_64-linux): Also test CC for -m32.
2328         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
2329
2330         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
2331         after $gccpath.
2332
2333         * Makefile.am (SUBDIRS): New.
2334         (libgomp_la_LDFLAGS): Add -lpthread.
2335         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
2336         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
2337
2338         * libgomp_g.h: New file.
2339         * libgomp.h: Split out all public declarations to libgomp_g.h.
2340         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
2341         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
2342         * config/linux/sem.h: Likewise.
2343         * config/posix/sem.h: Likewise.
2344
2345         * Makefile.am (AM_LDFLAGS): New.
2346         (libgomp_version_script): Split out from ...
2347         (libgomp_la_LDFLAGS): ... here.
2348         (libgomp_version_info): New.
2349         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
2350         (LIBGOMP_ENABLE): New.
2351         (LIBGOMP_CHECK_LINKER_FEATURES): New.
2352         (LIBGOMP_ENABLE_SYMVERS): New.
2353         * configure.ac (AC_INIT): Version 1.0.
2354         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
2355         (enable-linux-futex): Likewise.  Rename from enable-futex.
2356         (libtool_VERSION): New.
2357         (LIBGOMP_ENABLE_SYMVERS): Use it.
2358         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
2359         * Makefile.in, aclocal.m4, configure: Rebuild.
2360
2361         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
2362         (gomp_mutex_unlock_slow): Fix typo.
2363         * config/linux/sem.c: Similarly.
2364         (gomp_sem_post_slow): Fix typo.
2365         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
2366         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
2367         [__PIC__] (sys_futex0): Don't use tmp output in asm.
2368
2369         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
2370         (libgomp_la_LDFLAGS): Add top_srcdir to path.
2371         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
2372         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
2373         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
2374         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
2375         LDFLAGS.  Pull enable_futex check to top-level.
2376         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
2377         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
2378
2379         First attempt at real configury.
2380         * Makefile, config.h: Remove file.
2381         * Makefile.am, Makefile.in: New file.
2382         * acinclude.m4 aclocal.m4: New file.
2383         * configure.ac, configure.tgt, configure: New file.
2384
2385         * config/posix/lock.c: Rename from sys-lock.c.
2386         * config/posix/mutex.h: Rename from sys-mutex.h.
2387         * config/posix/sem.c: Rename from sys-sem.c.
2388         * config/posix/sem.h: Rename from sys-sem.h.
2389         * config/posix/proc.c: Rename from sys-proc.c.
2390         * config/posix/time.c: Rename from sys-proc.c.
2391
2392         * config/linux/mutex.c: New file.
2393         * config/linux/mutex.h: New file.
2394         * config/linux/sem.c: New file.
2395         * config/linux/sem.h: New file.
2396         * config/linux/i486/futex.h: New file.
2397         * config/linux/x86_64/futex.h: New file.
2398
2399 2005-05-04  Richard Henderson  <rth@redhat.com>
2400
2401         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
2402         * libgomp.h: Declare them.
2403         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
2404         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
2405
2406 2005-05-04  Richard Henderson  <rth@redhat.com>
2407
2408         * libgomp-1 code drop
2409
2410 2005-05-04  Richard Henderson  <rth@redhat.com>
2411
2412         * iter.c (gomp_iter_static_next): Return tri-state on 0.
2413         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
2414         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
2415         (gomp_iter_static_next): Update.
2416         (gomp_ordered_static_next): Update.
2417         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
2418         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
2419         totally empty range.
2420         (gomp_loop_ordered_static_next): Refine test for calling
2421         gomp_ordered_static_next.
2422         * testsuite/ordered-1.c: Add case for more threads than iterations.
2423
2424         * iter.c (gomp_iter_runtime_next_locked): Remove.
2425         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
2426         gomp_loop_guided_start, gomp_loop_ordered_static_start,
2427         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
2428         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
2429         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
2430         gomp_loop_ordered_guided_next): Downcase name, make static, add
2431         an external alias with the old name.
2432         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
2433         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
2434         switch and call one of the above static functions.
2435         * libgomp.h: Update.
2436
2437         * work.c (gomp_work_share_start): Lock the mutex for !first too.
2438         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
2439         GOMP_loop_guided_start, GOMP_loop_runtime_start,
2440         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
2441         GOMP_loop_ordered_guided_start): Update to match.
2442         * sections.c (GOMP_sections_start): Likewise.
2443         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
2444
2445         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
2446         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
2447         Use bounds check instead of modulus.
2448         (gomp_ordered_sync): Split out of GOMP_ordered_start.
2449         (gomp_ordered_last): Don't sync with ordered_owner here.
2450         (gomp_ordered_next): Likewise.
2451         (gomp_ordered_static_loop_next): Likewise.
2452         * loop.c, libgomp.h: Update to match.
2453
2454         * libgomp.h (GOMP_barrier): Declare.
2455
2456         * testsuite/barrier-1.c: New file.
2457         * testsuite/critical-1.c: New file.
2458         * testsuite/ordered-2.c: New file.
2459         * testsuite/ordered-1.c: New file.
2460         * testsuite/sections-1.c: New file.
2461         * testsuite/single-1.c: New file.
2462         * testsuite/Makefile (TESTS): Add them.
2463
2464 2005-05-04  Richard Henderson  <rth@redhat.com>
2465
2466         * libgomp.h (struct gomp_work_share): Add ordered_owner.
2467         * loop.c (GOMP_loop_static_start): If not the startup thread,
2468         acquire the mutex to wait for initialization complete.
2469         (GOMP_loop_ordered_static_start): Likewise.
2470         (GOMP_loop_ordered_runtime_start): Likewise.
2471         (GOMP_loop_ordered_static_first): Remove.
2472         (GOMP_loop_ordered_dynamic_first): Remove.
2473         (GOMP_loop_ordered_guided_first): Remove.
2474         (GOMP_loop_ordered_runtime_first): Remove.
2475         * ordered.c (gomp_ordered_loop_first): Post to own release when
2476         we're the first thread.
2477         (gomp_ordered_loop_last): Wait on release if not owner.
2478         (gomp_ordered_loop_next): Likewise.
2479         (gomp_ordered_static_loop_init): New.
2480         (gomp_ordered_static_loop_next): Use ordered_owner.
2481         (GOMP_ordered_start): Likewise.
2482         * work.c (gomp_new_work_share): Initialize ordered_owner.
2483
2484 2005-05-03  Richard Henderson  <rth@redhat.com>
2485
2486         * Makefile (OPT): New.
2487         (CFLAGS): Use it.
2488
2489         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
2490         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
2491         * libgomp.h, libgomp.map, NOTES: Update to match.
2492
2493         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
2494         Add initialized and thr members.
2495         (gomp_thread_start): Pause when initially spawned to wait for
2496         the whole team to be created.
2497         (gomp_team_start): Release team members at the end.
2498
2499         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
2500         (f_foo_1): Use GOMP_loop_end.
2501         (f_foo_2): Use GOMP_loop_end_nowait.
2502
2503         * testsuite/loop-2.c: New file.
2504         * testsuite/Makefile (TESTS): Add it.
2505
2506 2005-05-03  Richard Henderson  <rth@redhat.com>
2507
2508         * iter.c (gomp_iter_static_next): Fix overflow check typo.
2509         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
2510         * team.c (new_team): Initialize oldest_live_gen to 1 if no
2511         initial work_share.
2512
2513         * testsuite/Makefile: New file.
2514         * testsuite/loop-1.c: New file.
2515
2516 2005-05-03  Richard Henderson  <rth@redhat.com>
2517
2518         Initial implementation and checkin.