* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
[official-gcc.git] / libgomp / ChangeLog
blob84845cbfc06f786558a16818d050f23992a6838e
1 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
3         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
5 2010-09-23  Tobias Burnus  <burnus@net-b.de>
7         * libgomp.texi (omp_get_nested, omp_set_nested, omp_set_dynamic):
8         Change Fortran datatype to LOGICAL.
9         (omp_set_lock, omp_test_lock, omp_unset_lock, omp_set_nested_lock,
10         omp_unset_nested_lock): Use intent(inout) instead of intent(out).
12 2010-08-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14         * configure: Regenerate.
16 2010-07-26  Jakub Jelinek  <jakub@redhat.com>
18         * libgomp.texi: Add function keyword to a couple of Fortran
19         interfaces, use integer instead of int for Fortran.
21 2010-07-26  Aldy Hernandez  <aldyh@redhat.com>
23         * libgomp.texi: Fix spelling and pasto problems throughout.
24         Adjust prototypes to match code.
26 2010-07-24  Tobias Burnus  <burnus@net-b.de>
28         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: Add -w to
29         silence -fwhole-file warning.
31 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33         * configure.tgt (*-*-solaris2.[56]*): Removed.
35 2010-07-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37         * acinclude.m4 (LIBGOMP_ENABLE_SYMVERS): Handle sun style.
38         Define LIBGOMP_BUILD_VERSIONED_SHLIB_GNU,
39         LIBGOMP_BUILD_VERSIONED_SHLIB_SUN automake conditionals.
40         (HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT): Define unless
41         targetting solaris2*.
42         * configure: Regenerate.
43         * config.h.in: Regenerate.
45         * Makefile.am [LIBGOMP_BUILD_VERSIONED_SHLIB]: Protect
46         libgomp_version_script with LIBGOMP_BUILD_VERSIONED_SHLIB_GNU.
47         Add libgomp_version_dep.
48         [LIBGOMP_BUILD_VERSIONED_SHLIB_SUN]: Handle Sun symbol
49         versioning.
50         [!LIBGOMP_BUILD_VERSIONED_SHLIB]: Add libgomp_version_dep.
51         (libgomp_la_DEPENDENCIES): Set to $(libgomp_version_dep).
52         * Makefile.in: Regenerate.
54         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef unless
55         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
56         * libgomp.map (OMP_1.0): Move symbols both in OMP_1.0 and OMP_3.0
57         to common block, protected by
58         HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT.
60 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
62         * libgomp.texi: Move to GFDL version 1.3.  Update copyright years.
64 2010-06-09  Iain Sandoe  <iains@gcc.gnu.org>
66         PR bootstrap/43170
67         * configure: Regenerate.
69 2010-05-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
71         PR other/43620
72         * configure.ac (AM_INIT_AUTOMAKE): Add no-dist.
73         * configure: Regenerate.
74         * Makefile.in: Regenerate.
75         * testsuite/Makefile.in: Regenerate.
77 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
79         PR c/43893
80         * testsuite/libgomp.c/pr43893.c: New test.
81         * testsuite/libgomp.c++/pr43893.C: New test.
83 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
85         PR middle-end/43570
86         * testsuite/libgomp.fortran/vla8.f90: New test.
88 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
90         PR libgomp/43706
91         * config/linux/affinity.c (gomp_init_affinity): Decrease
92         gomp_available_cpus if affinity mask confines the process to fewer
93         CPUs.
94         * config/linux/proc.c (get_num_procs): If gomp_cpu_affinity is
95         non-NULL, just return gomp_available_cpus.
97         PR libgomp/43569
98         * sections.c (gomp_sections_init): Initialize ws->mode.
100 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
102         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Remove set but
103         not unused bar variable.
104         * configure: Regenerate.
106 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
108         * Makefile.in: Regenerate.
109         * aclocal.m4: Regenerate.
110         * testsuite/Makefile.in: Regenerate.
112 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
114         PR libgomp/42942
115         * env.c (parse_unsigned_long): Add ALLOW_ZERO argument.
116         (initialize_env): Adjust callers.
117         (omp_set_max_active_levels): Set gomp_max_active_levels_var even
118         when the argument is 0.
120         * testsuite/libgomp.c/pr42942.c: New test.
122 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
124         PR middle-end/42644
125         PR middle-end/42130
126         * testsuite/libgomp.graphite/force-parallel-1.c: Adjust.
127         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust.
129 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
131         * testsuite/libgomp.c++/task-1.C: Renamed err to e.
132         * testsuite/libgomp.c++/task-6.C: Likewise.
134 2010-01-28  Steve Ellcey  <sje@cup.hp.com>
136         * configure.tgt (*-*-hpux*): Add -frandom-seed flag.
138 2010-01-26  Paolo Bonzini  <bonzini@gnu.org>
140         * configure.ac: Test for executability of _the first word_ of GFORTRAN.
141         * configure: Regenerate.
143 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
145         PR fortran/42866
146         * testsuite/libgomp.fortran/allocatable5.f90: New test.
148 2010-01-20  Paolo Bonzini  <bonzini@gnu.org>
150         * configure.ac: Test for executability of GFORTRAN.
151         * configure: Regenerate.
153 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
155         * configure: Regenerate.
157 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
159         PR libgomp/42602
160         * libgomp.fortran/recursion1.f90 (sub): Make 's' atomic.
162 2010-01-03  Richard Guenther  <rguenther@suse.de>
164         * testsuite/libgomp.fortran/recursion1.f90: New testcase.
166 2009-12-23  Sebastian Pop  <sebpop@gmail.com>
168         * testsuite/libgomp.graphite/pr4118.c: New.
170 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
172         * testsuite/libgomp.fortran/crayptr2.f90: Remove forced static linkage
173         for darwin, protect the test with require-effective-target tls_runtime.
174         * testsuite/libgomp.fortran/pr32550.f90: Ditto.
176 2009-12-22  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
178         PR target/41605
179         * testsuite/lib/libgomp.exp: Provide -B options to allow for
180         link spec %s substitutions for static libraries.
182 2009-12-18  Jack Howarth <howarth@bromo.med.uc.edu>
184         PR testsuite/42135
185         * libgomp.graphite/force-parallel-2.c: Reduce array size.
187 2009-12-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
189         * Makefile.in: Regenerate.
190         * configure: Regenerate.
191         * testsuite/Makefile.in: Regenerate.
193 2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
195         * testsuite/lib/libgomp.exp (libgomp_init): Add host-dependent
196         settings for LC_ALL and LANG.
198 2009-11-25  Jakub Jelinek  <jakub@redhat.com>
200         PR fortran/42162
201         * testsuite/libgomp.fortran/pr42162.f90: New test.
203 2009-11-13  Jakub Jelinek  <jakub@redhat.com>
205         PR middle-end/42029
206         * testsuite/libgomp.c/pr42029.c: New test.
208 2009-10-26  Jakub Jelinek  <jakub@redhat.com>
210         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid using too many
211         *s.  Accept ld version without text in ()s.
212         * configure: Regenerated.
214 2009-10-22  Razya Ladelsky  <razya@il.ibm.com>
216         * testsuite/libgomp.graphite/force-parallel-2.c: Adjust scan.
218 2009-10-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
220         PR libgomp/41418
221         * configure.ac: Set FC to "no" if $GFORTRAN starts with "no"
222         or a hyphen (happens with fortran language disabled).
223         * configure: Regenerate.
225 2009-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
227         * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Avoid 'head',
228         use sed script portable to Solaris /bin/sed for extracting ld
229         version.
230         * configure: Regenerate.
232 2009-09-17  Alexander Monakov  <amonakov@ispras.ru>
234         * testsuite/libgomp.graphite/bounds.c: New test.
236 2009-09-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
238         * Makefile.am (libgomp_la_LINK): New.
239         * Makefile.in: Regenerate.
241 2009-08-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
243         * configure.ac (AC_PREREQ): Bump to 2.64.
245 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
247         * Makefile.am (install-html, install-pdf): Remove.
248         * Makefile.in: Regenerate.
250         * Makefile.in: Regenerate.
251         * aclocal.m4: Regenerate.
252         * config.h.in: Regenerate.
253         * configure: Regenerate.
254         * testsuite/Makefile.in: Regenerate.
256 2009-08-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
258         * Makefile.am (LINK): Add $(AM_LIBTOOLFLAGS) and $(LIBTOOLFLAGS).
259         * Makefile.in: Regenerate.
261 2009-08-20  Dave Korn  <dave.korn.cygwin@gmail.com>
263         * Makefile.am (libgomp_la_LDFLAGS): Add -bindir flag.
264         * Makefile.in: Regenerate.
266 2009-08-19  Tobias Burnus  <burnus@net-b.de>
268         PR fortran/41102
269         omp_lib.h.in: Fix -std=f95 errors.
272 2009-08-14  David Edelsohn  <edelsohn@gnu.org>
274         * testsuite/libgomp.graphite: Move from gcc.dg/graphite.
275         * testsuite/libgomp.graphite/graphite_autopar.exp: Delete.
276         * testsuite/libgomp.graphite/graphite.exp: New.
278 2009-08-05  Andreas Tobler  <a.tobler@schweiz.org>
280         * testsuite/libgomp.fortran/fortran.exp: Add flags in case of shared
281         only build.
283 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
285         * config/linux/mutex.h (gomp_mutex_unlock): Add comment about
286         needed memory barrier semantics.
287         * config/linux/mips/mutex.h: New file.
289 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
291         * configure.ac (_AC_ARG_VAR_PRECIOUS): Use m4_rename_force.
293 2009-07-16  Joseph Myers  <joseph@codesourcery.com>
295         * configure: Regenerate.
297 2009-07-11  Richard Sandiford  <rdsandiford@googlemail.com>
299         PR testsuite/40699
300         PR testsuite/40707
301         PR testsuite/40709
302         * testsuite/lib/libgomp.exp: Revert 2009-07-02 and 2009-06-30 commits.
303         * testsuite/libgomp.c/c.exp, testsuite/libgomp.c++/c++.exp,
304         testsuite/libgomp.fortran/fortran.exp: Revert 2009-06-30 commits.
306 2009-07-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
308         * testsuite/lib/libgomp.exp (libgomp_init): Use the ALWAYS_CFLAGS
309         options when choosing a multilib.
311 2009-06-30  Richard Sandiford  <r.sandiford@uk.ibm.com>
313         * testsuite/lib/libgomp.exp (libgomp_init): Don't add "." to
314         ld_library_path.  Use add_path.  Add just find_libgcc_s to
315         ld_library_path, not every libgcc multilib directory.
316         * testsuite/libgomp.c/c.exp (ld_library_path): Don't call
317         gcc-set-multilib-library-path; rely on $always_ld_library_path instead.
318         * testsuite/libgomp.c++/c++.exp (ld_library_path): Likewise.
319         Use add_path.
320         * testsuite/libgomp.fortran/fortran.exp (ld_library_path): Likewise.
322 2009-06-09  Nathan Froyd  <froydnj@codesourcery.com>
324         * Makefile.am (LTLDFLAGS): Define.
325         (LINK): Define.
326         * Makefile.in: Regenerate.
328 2009-05-27  Janne Blomqvist  <jb@gcc.gnu.org>
330         PR fortran/39718
331         * testsuite/libgomp.fortran/fortran.exp: Don't link with
332         libgfortranbegin, check existence of libgfortran.a instead of
333         libgfortranbegin.a.
335 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
337         PR libgomp/40174
338         * team.c (gomp_thread_start): Destroy thr->release semaphore.
339         (gomp_free_pool_helper): Likewise.
341 2009-04-20  Vasilis Liaskovitis  <vliaskov@gmail.com>
342             Jakub Jelinek  <jakub@redhat.com>
344         PR fortran/35423
345         * testsuite/libgomp.fortran/workshare2.f90: New test.
347 2009-04-09  Nick Clifton  <nickc@redhat.com>
349         * iter.c: Change copyright header to refer to version 3 of the
350         GNU General Public License with version 3.1 of the GCC Runtime
351         Library Exception and to point readers at the COPYING3 and
352         COPYING3.RUNTIME files and the FSF's license web page.
353         * alloc.c: Likewise.
354         * barrier.c: Likewise.
355         * config/bsd/proc.c: Likewise.
356         * config/linux/affinity.c: Likewise.
357         * config/linux/alpha/futex.h: Likewise.
358         * config/linux/bar.c: Likewise.
359         * config/linux/bar.h: Likewise.
360         * config/linux/ia64/futex.h: Likewise.
361         * config/linux/ia64/mutex.h: Likewise.
362         * config/linux/lock.c: Likewise.
363         * config/linux/mips/futex.h: Likewise.
364         * config/linux/mutex.c: Likewise.
365         * config/linux/mutex.h: Likewise.
366         * config/linux/powerpc/futex.h: Likewise.
367         * config/linux/proc.c: Likewise.
368         * config/linux/ptrlock.c: Likewise.
369         * config/linux/ptrlock.h: Likewise.
370         * config/linux/s390/futex.h: Likewise.
371         * config/linux/sem.c: Likewise.
372         * config/linux/sem.h: Likewise.
373         * config/linux/sparc/futex.h: Likewise.
374         * config/linux/wait.h: Likewise.
375         * config/linux/x86/futex.h: Likewise.
376         * config/mingw32/proc.c: Likewise.
377         * config/mingw32/time.c: Likewise.
378         * config/posix/affinity.c: Likewise.
379         * config/posix/bar.c: Likewise.
380         * config/posix/bar.h: Likewise.
381         * config/posix/lock.c: Likewise.
382         * config/posix/mutex.h: Likewise.
383         * config/posix/proc.c: Likewise.
384         * config/posix/ptrlock.h: Likewise.
385         * config/posix/sem.c: Likewise.
386         * config/posix/sem.h: Likewise.
387         * config/posix/time.c: Likewise.
388         * config/posix95/lock.c: Likewise.
389         * critical.c: Likewise.
390         * env.c: Likewise.
391         * error.c: Likewise.
392         * fortran.c: Likewise.
393         * iter_ull.c: Likewise.
394         * libgomp.h: Likewise.
395         * libgomp_f.h.in: Likewise.
396         * libgomp_g.h: Likewise.
397         * loop.c: Likewise.
398         * loop_ull.c: Likewise.
399         * omp.h.in: Likewise.
400         * omp_lib.f90.in: Likewise.
401         * omp_lib.h.in: Likewise.
402         * ordered.c: Likewise.
403         * parallel.c: Likewise.
404         * sections.c: Likewise.
405         * single.c: Likewise.
406         * task.c: Likewise.
407         * team.c: Likewise.
408         * work.c: Likewise.
410 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
412         * testsuite/config/default.exp: Change copyright header to refer to
413         version 3 of the GNU General Public License and to point readers
414         at the COPYING3 file and the FSF's license web page.
416 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
418         PR middle-end/39573
419         * libgomp.c++/pr39573.C: New test.
421 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
423         PR other/39591
424         * testsuite/libgomp.c/pr39591-1.c: New test.
425         * testsuite/libgomp.c/pr39591-2.c: New test.
426         * testsuite/libgomp.c/pr39591-3.c: New test.
428 2009-03-25  Uros Bizjak  <ubizjak@gmail.com>
430         * testsuite/libgomp.c/atomic-5.c: Cleanup cpuid usage.
431         * testsuite/libgomp.c/atomic-6.c: Ditto.
433 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
435         PR c/39495
436         * testsuite/libgomp.c/loop-12.c: New test.
437         * testsuite/libgomp.c/loop-11.c: New test.
438         * testsuite/libgomp.c++/loop-11.C: New test.
439         * testsuite/libgomp.c++/loop-12.C: New test.
440         * testsuite/libgomp.c++/for-8.C: New test.
442 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
444         * configure: Regenerate.
446 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
448         PR middle-end/39154
449         * testsuite/libgomp.c/pr39154.c: New test.
451 2009-01-30  Ian Lance Taylor  <iant@google.com>
453         * acinclude.m4 (LIBCOMP_CHECK_LINKER_FEATURES): Set
454         libgomp_ld_is_gold.  Get gold version number.
455         (LIBGOMP_ENABLE_SYMVERS): Gold always support symbol versioning.
456         * configure: Rebuild.
458 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
460         * testsuite/lib/libgomp.exp: Add -B option for targets that
461         use libgfortran.a%s in their specs.
463 2009-01-07  Jakub Jelinek  <jakub@redhat.com>
465         PR libgomp/38086
466         * acinclude.m4 (HAVE_AS_SYMVER_DIRECTIVE): New check.
467         * libgomp.h (LIBGOMP_GNU_SYMBOL_VERSIONING): Undefine if
468         HAVE_AS_SYMVER_DIRECTIVE is not defined.
469         * configure: Regenerated.
470         * config.h.in: Likewise.
472 2008-12-28  Jakub Jelinek  <jakub@redhat.com>
474         PR c++/38650
475         * testsuite/libgomp.c/pr38650.c: New test.
476         * testsuite/libgomp.c++/pr38650.C: New test.
478 2008-12-27  Jakub Jelinek  <jakub@redhat.com>
480         * testsuite/libgomp.c/collapse-1.c (main): Add private(k) clause.
482 2008-12-26  Uros Bizjak  <ubizjak@gmail.com>
484         * testsuite/libgomp.c/atomic-6.c: Add -mieee for alpha*-*-* targets.
486 2008-12-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
488         * configure: Regenerate.
490 2008-12-08  Jakub Jelinek  <jakub@redhat.com>
492         PR middle-end/36802
493         * testsuite/libgomp.c/pr36802-1.c: New test.
494         * testsuite/libgomp.c/pr36802-2.c: New test.
495         * testsuite/libgomp.c/pr36802-3.c: New test.
497 2008-12-01  Janis Johnson  <janis187@us.ibm.com>
499         PR libgomp/38270
500         * config/linux/powerpc/mutex.h: New.
502 2008-12-01  Jakub Jelinek  <jakub@redhat.com>
504         PR c++/38257
505         * testsuite/libgomp.c++/for-7.C: New test.
507         PR c++/38348
508         * testsuite/libgomp.c++/for-6.C: New test.
510 2008-11-26  Janis Johnson  <janis187@us.ibm.com>
512         PR testsuite/28870
513         * testsuite/lib/libgomp.exp: Include new timeout library files.
514         (libgomp_target_compile): Set timeout value from new proc.
516 2008-11-13  Steve Ellcey  <sje@cup.hp.com>
518         PR libgomp/37938
519         * config/linux/ia64/mutex.h: New.
521 2008-11-04  Tobias Burnus  <burnus@net-b.de>
523         PR libgomp/37935
524         * libgomp.texi (Runtime library routines, environment variables):
525         Update for OpenMP version 3.0.
527 2008-09-26  Peter O'Gorman  <pogma@thewrittenword.com>
528             Steve Ellcey  <sje@cup.hp.com>
530         * configure: Regenerate for new libtool.
531         * Makefile.in: Ditto.
532         * testsuite/Makefile.in: Ditto.
534 2008-09-19  Jakub Jelinek  <jakub@redhat.com>
535             Andreas Tobler  <a.tobler@schweiz.org>
537         * config/bsd/proc.c: New file.
538         * configure.tgt (*-*-darwin*): Use config_path "bsd posix".
539         * configure.ac: Check for header <sys/sysctl.h>
540         * configure: Regenerate.
541         * config.h.in: Likewise.
543 2008-09-05  Janis Johnson  <janis187@us.ibm.com>
545         * testsuite/ligbomp.c/c.exp: Unset lang_test_file only if it exists.
547 2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
549         * Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
550         * Makefile.in: Regenerated.
551         * testsuite/Makefile.in: Regenerated.
553 2008-08-21  Nathan Froyd  <froydnj@codesourcery.com>
555         * testsuite/lib/libgomp.exp (libgomp_init): Only set things that
556         depend on blddir if blddir exists.
557         (libgomp_target_compile): Likewise.
558         * testsuite/libgomp.c++/c++.exp: Likewise.
559         * testsuite/libgomp.fortran/fortran.exp: Likewise.
561 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
563         * libgomp.texi: Update to GFDL 1.2.  Update copyright years.
564         Do not list GPL as Invariant Section.
566 2008-07-28  Ilie Garbacea  <ilie@mips.com>
567             Chao-ying Fu  <fu@mips.com>
569         * configure.tgt: Enable futex for MIPS.
570         * config/linux/mips/futex.h: New file.
572 2008-07-16  Jakub Jelinek  <jakub@redhat.com>
574         * team.c (gomp_team_end): Free team immediately if it has
575         just one thread.
577 2008-07-08  David Edelsohn  <edelsohn@gnu.org>
579         * testsuite/libgomp.c++/c++.exp: Append multilib library path.
580         * testsuite/libgomp.fortran/fortran.exp: Same.
581         * testsuite/libgomp.c/c.exp: Same.
582         * testsuite/lib/libgomp.exp: Append AIX libgcc pthread multilib
583         directory to library path first.
585 2008-06-29  Krister Walfridsson  <krister.walfridsson@gmail.com>
587         * env.c (parse_stacksize): Add cast to avoid warning.
588         (parse_spincount): Likewise.
590 2008-06-27  Jakub Jelinek  <jakub@redhat.com>
592         * testsuite/libgomp.c/loop-10.c: New test.
593         * libgomp.c/loop-3.c (main): Add lastprivate clause.
594         * libgomp.c++/loop-6.C (main): Likewise.
596         PR debug/36617
597         * testsuite/libgomp.c/debug-1.c: New test.
599 2008-06-19  Jakub Jelinek  <jakub@redhat.com>
601         * testsuite/libgomp.c/nqueens-1.c: New test.
603         PR c++/36523
604         * testsuite/libgomp.c++/task-7.C: New function.
606 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
608         * configure: Regenerate.
610 2008-06-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
612         * env.c (initialize_env): Always initialize gomp_remaining_threads_lock
613         mutex when HAVE_SYNC_BUILTINS isn't defined.
615 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
617         * libgomp.texi (omp_test_lock): Fix typo.
619 2008-06-12  Tobias Burnus  <burnus@net-b.de>
621         * omp_lib.f90.in: Add "implicit none".
623 2008-06-12  Jakub Jelinek  <jakub@redhat.com>
625         PR middle-end/36506
626         * testsuite/libgomp.c/reduction-5.c: New test.
628 2008-06-11  Jakub Jelinek  <jakub@redhat.com>
630         * libgomp.h (struct gomp_task): Add in_tied_task field.
631         * task.c (gomp_init_task): Initialize it.
632         (GOMP_task): Likewise.  Call gomp_team_barrier_set_task_pending
633         unconditionally.  Don't call gomp_team_barrier_wake if
634         current task is implicit or if(0) from implicit and number of
635         running tasks is equal to nthreads - 1.
637         PR libgomp/36471
638         * omp_lib.f90.in (omp_get_ancestor_thread_num_8,
639         omp_get_team_size_8): Fix pastos.
641         PR libgomp/36469
642         * configure.ac: Add AC_CHECK_FUNCS (strtoull).
643         * configure: Regenerated.
644         * config.h.in: Regenerated.
645         * env.c (strtoull): Define to strtoul if HAVE_STRTOULL is not
646         defined.
648 2008-06-06  Andreas Tobler  <a.tobler@schweiz.org>
650         PR bootstrap/36452
651         * loop_ull.c (GOMP_loop_ull_static_start): Adjust API.
652         (GOMP_loop_ull_dynamic_start): Likewise.
653         (GOMP_loop_ull_guided_start): Likewise.
654         (GOMP_loop_ull_ordered_static_start): Likewise.
655         (GOMP_loop_ull_ordered_dynamic_start): Likewise.
656         (GOMP_loop_ull_ordered_guided_start): Likewise.
658 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
659             Richard Henderson  <rth@redhat.com>
660             Ulrich Drepper  <drepper@redhat.com>
661             Jakob Blomer  <jakob.blomer@ira.uka.de>
663         * configure.ac (LIBGOMP_GNU_SYMBOL_VERSIONING): New AC_DEFINE.
664         Substitute also OMP_*LOCK_25*.
665         * configure: Regenerated.
666         * config.h.in: Regenerated.
667         * Makefile.am (libgomp_la_SOURCES): Add loop_ull.c, iter_ull.c,
668         ptrlock.c and task.c.
669         * Makefile.in: Regenerated.
670         * testsuite/Makefile.in: Regenerated.
671         * task.c: New file.
672         * loop_ull.c: New file.
673         * iter_ull.c: New file.
674         * libgomp.h: Include ptrlock.h.
675         (enum gomp_task_kind): New type.
676         (struct gomp_team): Add task_lock, task_queue, task_count,
677         task_running_count, single_count fields.  Add
678         work_share_list_free_lock ifndef HAVE_SYNC_BUILTINS.
679         Remove work_share_lock, generation_mask,
680         oldest_live_gen, num_live_gen and init_work_shares fields, add
681         work work_share_list_alloc, work_share_list_free and work_share_chunk
682         fields.  Change work_shares from pointer to pointers into an array.
683         Change ordered_release field into gomp_sem_t ** from flexible array
684         member.  Add implicit_task and initial_work_shares fields.
685         Move close to the end of the struct.
686         (struct gomp_team_state): Add single_count, last_work_share,
687         active_level and level fields, remove work_share_generation.
688         (gomp_barrier_handle_tasks): New prototype.
689         (gomp_finish_task): New inline function.
690         (struct gomp_work_share): Move chunk_size, end, incr into
691         transparent union/struct, add chunk_size_ull, end_ll, incr_ll and
692         next_ll fields.  Reshuffle fields.  Add next_alloc,
693         next_ws, next_free and inline_ordered_team_ids fields, change
694         ordered_team_ids into pointer from flexible array member.
695         Add mode field.  Put lock and next into a different cache line
696         from most of the write-once fields.
697         (gomp_iter_ull_static_next, gomp_iter_ull_dynamic_next_locked,
698         gomp_iter_ull_guided_next_locked, gomp_iter_ull_dynamic_next,
699         gomp_iter_ull_guided_next): New prototypes.
700         (gomp_new_icv): New prototype.
701         (struct gomp_thread): Add thread_pool and task fields.
702         (struct gomp_thread_pool): New type.
703         (gomp_new_team): New prototype.
704         (gomp_team_start): Change type of last argument.
705         (gomp_new_work_share): Removed.
706         (gomp_init_work_share, gomp_fini_work_share): New prototypes.
707         (gomp_work_share_init_done): New static inline.
708         (gomp_throttled_spin_count_var, gomp_available_cpus,
709         gomp_managed_threads): New extern decls.
710         (gomp_init_task): New prototype.
711         (gomp_spin_count_var): New extern var decl.
712         (LIBGOMP_GNU_SYMBOL_VERSIONING): Undef if no visibility
713         or no alias support, or if not PIC.
714         (gomp_init_lock_30, gomp_destroy_lock_30, gomp_set_lock_30,
715         gomp_unset_lock_30, gomp_test_lock_30, gomp_init_nest_lock_30,
716         gomp_destroy_nest_lock_30, gomp_set_nest_lock_30,
717         gomp_unset_nest_lock_30, gomp_test_nest_lock_30, gomp_init_lock_25,
718         gomp_destroy_lock_25, gomp_set_lock_25, gomp_unset_lock_25,
719         gomp_test_lock_25, gomp_init_nest_lock_25, gomp_destroy_nest_lock_25,
720         gomp_set_nest_lock_25, gomp_unset_nest_lock_25,
721         gomp_test_nest_lock_25): New prototypes.
722         (omp_lock_symver, strong_alias): Define.
723         (gomp_remaining_threads_count, gomp_remaining_threads_lock): New
724         decls.
725         (gomp_end_task): New.
726         (struct gomp_task_icv, gomp_global_icv): New.
727         (gomp_thread_limit_var, gomp_max_active_levels_var): New.
728         (struct gomp_task): New.
729         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
730         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
731         (gomp_icv): New.
732         (gomp_schedule_type): Reorder enum to match
733         omp_sched_t.
734         * team.c (struct gomp_thread_start_data): Add thread_pool and task
735         fields.
736         (gomp_thread_start): Add gomp_team_barrier_wait call.
737         For non-nested case remove clearing of docked thread thr fields.
738         Use pool fields instead of global gomp_* variables.  Use
739         gomp_barrier_wait_last when needed.  Initialize ts.active_level.
740         Create tasks for each member thread.
741         (free_team): Only destroy team barrier, task_lock here and free it.
742         (gomp_free_thread): Free last_team if non-NULL.
743         (gomp_team_end): Call gomp_team_barrier_wait instead of
744         gomp_barrier_wait.  For nested case call one extra
745         gomp_barrier_wait.  Move here some destruction from free_team.
746         Call free_team on pool->last_team if any, rather than freeing
747         current team.  Destroy work_share_list_free_lock ifndef
748         HAVE_SYNC_BUILTINS.
749         (gomp_new_icv): New function.
750         (gomp_threads, gomp_threads_size, gomp_threads_used,
751         gomp_threads_dock): Removed.
752         (gomp_thread_destructor): New variable.
753         (gomp_new_thread_pool, gomp_free_pool_helper, gomp_free_thread): New
754         functions.
755         (gomp_team_start): Create new pool if current thread doesn't have
756         one.  Use pool fields instead of global gomp_* variables. 
757         Initialize thread_pool field for new threads.  Clear single_count.
758         Change last argument from ws to team, don't create
759         new team, set ts.work_share to &team->work_shares[0] and clear
760         ts.last_work_share.  Don't clear ts.work_share_generation.
761         If number of threads changed, adjust atomically gomp_managed_threads.
762         Use gomp_init_task instead of gomp_new_task,
763         set thr->task to the corresponding implicit_task array entry.
764         Create tasks for each member thread.  Initialize ts.level.
765         (initialize_team): Call pthread_key_create on
766         gomp_thread_destructor.
767         (team_destructor): New function.
768         (new_team): Removed.
769         (gomp_new_team): New function.
770         (free_team): Free gomp_work_share blocks chained through next_alloc,
771         instead of freeing work_shares and destroying work_share_lock.
772         (gomp_team_end): Call gomp_fini_work_share.  If number of threads
773         changed, adjust atomically gomp_managed_threads.  Use gomp_end_task.
774         * barrier.c (GOMP_barrier): Call gomp_team_barrier_wait instead
775         of gomp_barrier_wait.
776         * single.c (GOMP_single_copy_start): Call gomp_team_barrier_wait
777         instead of gomp_barrier_wait.  Call gomp_work_share_init_done
778         if gomp_work_share_start returned true.  Don't unlock ws->lock.
779         (GOMP_single_copy_end): Call gomp_team_barrier_wait instead
780         of gomp_barrier_wait.
781         (GOMP_single_start): Rewritten if HAVE_SYNC_BUILTINS.  Call
782         gomp_work_share_init_done if gomp_work_share_start returned true.
783         Don't unlock ws->lock.
784         * work.c: Include stddef.h.
785         (free_work_share): Use work_share_list_free_lock instead
786         of atomic chaining ifndef HAVE_SYNC_BUILTINS.  Add team argument.
787         Call gomp_fini_work_share and then either free ws if orphaned, or
788         put it into work_share_list_free list of the current team.
789         (alloc_work_share, gomp_init_work_share, gomp_fini_work_share): New
790         functions.
791         (gomp_work_share_start, gomp_work_share_end,
792         gomp_work_share_end_nowait): Rewritten.
793         * omp_lib.f90.in Change some tabs to spaces to prevent warnings.
794         (openmp_version): Set to 200805.
795         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
796         omp_sched_guided, omp_sched_auto): New parameters.
797         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
798         omp_set_max_active_levels, omp_get_max_active_levels,
799         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
800         omp_get_active_level): New interfaces.
801         * omp_lib.h.in (openmp_version): Set to 200805.
802         (omp_sched_kind, omp_sched_static, omp_sched_dynamic,
803         omp_sched_guided, omp_sched_auto): New parameters.
804         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
805         omp_set_max_active_levels, omp_get_max_active_levels,
806         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
807         omp_get_active_level): New externals.
808         * loop.c: Include limits.h.
809         (GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Handle
810         GFS_AUTO.
811         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start):
812         Likewise.  Use gomp_icv.
813         (gomp_loop_static_start, gomp_loop_dynamic_start): Clear
814         ts.static_trip here.
815         (gomp_loop_static_start, gomp_loop_ordered_static_start): Call
816         gomp_work_share_init_done after gomp_loop_init.  Don't unlock ws->lock.
817         (gomp_loop_dynamic_start, gomp_loop_guided_start): Call
818         gomp_work_share_init_done after gomp_loop_init.  If HAVE_SYNC_BUILTINS,
819         don't unlock ws->lock, otherwise lock it.
820         (gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start): Call
821         gomp_work_share_init_done after gomp_loop_init.  Lock ws->lock.
822         (gomp_parallel_loop_start): Call gomp_new_team instead of
823         gomp_new_work_share.  Call gomp_loop_init on &team->work_shares[0].
824         Adjust gomp_team_start caller.  Pass 0 as second argument to
825         gomp_resolve_num_threads.
826         (gomp_loop_init): For GFS_DYNAMIC, multiply ws->chunk_size by incr.
827         If adding ws->chunk_size nthreads + 1 times after end won't
828         overflow, set ws->mode to 1.
829         * libgomp_g.h (GOMP_loop_ull_static_start, GOMP_loop_ull_dynamic_start,
830         GOMP_loop_ull_guided_start, GOMP_loop_ull_runtime_start,
831         GOMP_loop_ull_ordered_static_start,
832         GOMP_loop_ull_ordered_dynamic_start,
833         GOMP_loop_ull_ordered_guided_start,
834         GOMP_loop_ull_ordered_runtime_start, GOMP_loop_ull_static_next,
835         GOMP_loop_ull_dynamic_next, GOMP_loop_ull_guided_next,
836         GOMP_loop_ull_runtime_next, GOMP_loop_ull_ordered_static_next,
837         GOMP_loop_ull_ordered_dynamic_next, GOMP_loop_ull_ordered_guided_next,
838         GOMP_loop_ull_ordered_runtime_next, GOMP_task, GOMP_taskwait): New
839         prototypes.
840         * libgomp.map: Export lock routines also @@OMP_2.0.
841         (GOMP_loop_ordered_dynamic_first,
842         GOMP_loop_ordered_guided_first, GOMP_loop_ordered_runtime_first,
843         GOMP_loop_ordered_static_first): Remove.
844         (GOMP_loop_ull_dynamic_next, GOMP_loop_ull_dynamic_start,
845         GOMP_loop_ull_guided_next, GOMP_loop_ull_guided_start,
846         GOMP_loop_ull_ordered_dynamic_next,
847         GOMP_loop_ull_ordered_dynamic_start,
848         GOMP_loop_ull_ordered_guided_next,
849         GOMP_loop_ull_ordered_guided_start,
850         GOMP_loop_ull_ordered_runtime_next,
851         GOMP_loop_ull_ordered_runtime_start,
852         GOMP_loop_ull_ordered_static_next,
853         GOMP_loop_ull_ordered_static_start,
854         GOMP_loop_ull_runtime_next, GOMP_loop_ull_runtime_start,
855         GOMP_loop_ull_static_next, GOMP_loop_ull_static_start,
856         GOMP_task, GOMP_taskwait): Export @@GOMP_2.0.
857         (omp_set_schedule, omp_get_schedule,
858         omp_get_thread_limit, omp_set_max_active_levels,
859         omp_get_max_active_levels, omp_get_level,
860         omp_get_ancestor_thread_num, omp_get_team_size, omp_get_active_level,
861         omp_set_schedule_, omp_set_schedule_8_,
862         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
863         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
864         omp_get_max_active_levels_, omp_get_level_,
865         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
866         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
867         New exports @@OMP_3.0.
868         * omp.h.in (omp_sched_t): New type.
869         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
870         omp_set_max_active_levels, omp_get_max_active_levels,
871         omp_get_level, omp_get_ancestor_thread_num, omp_get_team_size,
872         omp_get_active_level): New prototypes.
873         * env.c (gomp_spin_count_var, gomp_throttled_spin_count_var,
874         gomp_available_cpus, gomp_managed_threads, gomp_max_active_levels_var,
875         gomp_thread_limit_var, gomp_remaining_threads_count,
876         gomp_remaining_threads_lock): New variables.
877         (parse_spincount): New function.
878         (initialize_env): Call gomp_init_num_threads unconditionally.
879         Initialize gomp_available_cpus.  Call parse_spincount,
880         initialize gomp_{,throttled_}spin_count_var
881         depending on presence and value of OMP_WAIT_POLICY and
882         GOMP_SPINCOUNT env vars.  Handle GOMP_BLOCKTIME env var.
883         Handle OMP_WAIT_POLICY, OMP_MAX_ACTIVE_LEVELS,
884         OMP_THREAD_LIMIT, OMP_STACKSIZE env vars.  Handle unit specification
885         for GOMP_STACKSIZE.  Initialize gomp_remaining_threads_count and
886         gomp_remaining_threads_lock if needed.  Use gomp_global_icv.
887         (gomp_nthreads_var, gomp_dyn_var, gomp_nest_var,
888         gomp_run_sched_var, gomp_run_sched_chunk): Remove.
889         (gomp_global_icv): New.
890         (parse_schedule): Use it.  Parse "auto".
891         (omp_set_num_threads): Use gomp_icv.
892         (omp_set_dynamic, omp_get_dynamic, omp_set_nested, omp_get_nested):
893         Likewise.
894         (omp_get_max_threads): Move from parallel.c.
895         (omp_set_schedule, omp_get_schedule, omp_get_thread_limit,
896         omp_set_max_active_levels, omp_get_max_active_levels): New functions,
897         add ialias.
898         (parse_stacksize, parse_wait_policy): New functions.
899         * fortran.c: Rewrite lock wrappers, if symbol versioning provide
900         both wrappers for compatibility and new locks.
901         (omp_set_schedule, omp_get_schedule,
902         omp_get_thread_limit, omp_set_max_active_levels,
903         omp_get_max_active_levels, omp_get_level,
904         omp_get_ancestor_thread_num, omp_get_team_size,
905         omp_get_active_level): New ialias_redirect.
906         (omp_set_schedule_, omp_set_schedule_8_,
907         omp_get_schedule_, omp_get_schedule_8_, omp_get_thread_limit_,
908         omp_set_max_active_levels_, omp_set_max_active_levels_8_,
909         omp_get_max_active_levels_, omp_get_level_,
910         omp_get_ancestor_thread_num_, omp_get_ancestor_thread_num_8_,
911         omp_get_team_size_, omp_get_team_size_8_, omp_get_active_level_):
912         New functions.
913         * parallel.c: Include limits.h.
914         (gomp_resolve_num_threads): Add count argument.  Rewritten.
915         (GOMP_parallel_start): Call gomp_new_team and pass that as last
916         argument to gomp_team_start.  Pass 0 as second argument to
917         gomp_resolve_num_threads.
918         (GOMP_parallel_end): Decrease gomp_remaining_threads_count
919         if gomp_thread_limit_var != ULONG_MAX.
920         (omp_in_parallel): Implement using ts.active_level.
921         (omp_get_max_threads): Move to env.c.
922         (omp_get_level, omp_get_ancestor_thread_num,
923         omp_get_team_size, omp_get_active_level): New functions,
924         add ialias.
925         * sections.c (GOMP_sections_start): Call gomp_work_share_init_done
926         after gomp_sections_init.  If HAVE_SYNC_BUILTINS, call
927         gomp_iter_dynamic_next instead of the _locked variant and don't take
928         lock around it, otherwise acquire it before calling
929         gomp_iter_dynamic_next_locked.
930         (GOMP_sections_next): If HAVE_SYNC_BUILTINS, call
931         gomp_iter_dynamic_next instead of the _locked variant and don't take
932         lock around it.
933         (GOMP_parallel_sections_start): Call gomp_new_team instead of
934         gomp_new_work_share.  Call gomp_sections_init on &team->work_shares[0].
935         Adjust gomp_team_start caller.  Pass count as second argument to
936         gomp_resolve_num_threads, don't adjust num_threads after the call.
937         Use gomp_icv.
938         * iter.c (gomp_iter_dynamic_next_locked): Don't multiply
939         ws->chunk_size by incr.
940         (gomp_iter_dynamic_next): Likewise.  If ws->mode, use more efficient
941         code.
942         * libgomp_f.h.in (omp_lock_25_arg_t, omp_nest_lock_25_arg_t): New
943         types.
944         (omp_lock_25_arg, omp_nest_lock_25_arg): New macros.
945         (omp_check_defines): Check even the compat defines.
946         * config/linux/ptrlock.c: New file.
947         * config/linux/ptrlock.h: New file.
948         * config/linux/wait.h: New file.
949         * config/posix/ptrlock.c: New file.
950         * config/posix/ptrlock.h: New file.
951         * config/linux/bar.h (gomp_team_barrier_wait,
952         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
953         (gomp_team_barrier_set_task_pending,
954         gomp_team_barrier_clear_task_pending,
955         gomp_team_barrier_set_waiting_for_tasks,
956         gomp_team_barrier_waiting_for_tasks,
957         gomp_team_barrier_done): New inlines.
958         (gomp_barrier_t): Rewritten.
959         (gomp_barrier_state_t): New typedef.
960         (gomp_barrier_init, gomp_barrier_reinit, gomp_barrier_destroy,
961         gomp_barrier_wait_start): Rewritten.
962         (gomp_barrier_wait_end): Change second argument to
963         gomp_barrier_state_t.
964         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
965         inlines.
966         * config/linux/bar.c: Include wait.h instead of libgomp.h and
967         futex.h.
968         (gomp_barrier_wait_end): Rewritten.
969         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
970         gomp_team_barrier_wake, gomp_barrier_wait_last): New functions.
971         * config/posix/bar.h (gomp_barrier_t): Add generation field.
972         (gomp_barrier_state_t): New typedef.
973         (gomp_team_barrier_wait,
974         gomp_team_barrier_wait_end, gomp_team_barrier_wake): New prototypes.
975         (gomp_barrier_wait_start): Or all but low 2 bits from generation
976         into the return value.  Return gomp_barrier_state_t.
977         (gomp_team_barrier_set_task_pending,
978         gomp_team_barrier_clear_task_pending,
979         gomp_team_barrier_set_waiting_for_tasks,
980         gomp_team_barrier_waiting_for_tasks,
981         gomp_team_barrier_done): New inlines.
982         (gomp_barrier_wait_end): Change second argument to
983         gomp_barrier_state_t.
984         (gomp_barrier_last_thread, gomp_barrier_wait_last): New static
985         inlines.
986         * config/posix/bar.c (gomp_barrier_init): Clear generation field.
987         (gomp_barrier_wait_end): Change second argument to
988         gomp_barrier_state_t. 
989         (gomp_team_barrier_wait, gomp_team_barrier_wait_end,
990         gomp_team_barrier_wake): New functions.
991         * config/linux/mutex.c: Include wait.h instead of libgomp.h and
992         futex.h.
993         (gomp_futex_wake, gomp_futex_wait): New variables.
994         (gomp_mutex_lock_slow): Call do_wait instead of futex_wait.
995         * config/linux/lock.c: Rewrite to make locks task owned,
996         for backwards compatibility provide the old entrypoints
997         if symbol versioning.  Include wait.h instead of libgomp.h and
998         futex.h.
999         (gomp_set_nest_lock_25): Call do_wait instead of futex_wait.
1000         * config/posix95/lock.c: Rewrite to make locks task owned,
1001         for backwards compatibility provide the old entrypoints
1002         if symbol versioning.
1003         * config/posix/lock.c: Rewrite to make locks task owned,
1004         for backwards compatibility provide the old entrypoints
1005         if symbol versioning.
1006         * config/linux/proc.c (gomp_init_num_threads): Use gomp_global_icv.
1007         (get_num_procs, gomp_dynamic_max_threads): Use gomp_icv.
1008         * config/posix/proc.c, config/mingw32/proc.c: Similarly.
1009         * config/linux/powerpc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1010         (sys_futex0): Return error code.
1011         (futex_wake, futex_wait): If ENOSYS was returned, clear
1012         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1013         (cpu_relax, atomic_write_barrier): New static inlines.
1014         * config/linux/alpha/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1015         (futex_wake, futex_wait): If ENOSYS was returned, clear
1016         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1017         (cpu_relax, atomic_write_barrier): New static inlines.
1018         * config/linux/x86/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1019         (sys_futex0): Return error code.
1020         (futex_wake, futex_wait): If ENOSYS was returned, clear
1021         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1022         (cpu_relax, atomic_write_barrier): New static inlines.
1023         * config/linux/s390/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1024         (sys_futex0): Return error code.
1025         (futex_wake, futex_wait): If ENOSYS was returned, clear
1026         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1027         (cpu_relax, atomic_write_barrier): New static inlines.
1028         * config/linux/ia64/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1029         (sys_futex0): Return error code.
1030         (futex_wake, futex_wait): If ENOSYS was returned, clear
1031         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1032         (cpu_relax, atomic_write_barrier): New static inlines.
1033         * config/linux/sparc/futex.h (FUTEX_WAIT, FUTEX_WAKE): Remove.
1034         (sys_futex0): Return error code.
1035         (futex_wake, futex_wait): If ENOSYS was returned, clear
1036         FUTEX_PRIVATE_FLAG in gomp_futex_wa{ke,it} and retry.
1037         (cpu_relax, atomic_write_barrier): New static inlines.
1038         * config/linux/sem.c: Include wait.h instead of libgomp.h and
1039         futex.h.
1040         (gomp_sem_wait_slow): Call do_wait instead of futex_wait.
1041         * config/linux/affinity.c: Assume HAVE_SYNC_BUILTINS.
1042         * config/linux/omp-lock.h (omp_lock_25_t, omp_nest_lock_25_t): New
1043         types.
1044         (omp_nest_lock_t): Change owner into void *, add lock field.
1045         * config/posix95/omp-lock.h: Include semaphore.h.
1046         (omp_lock_25_t, omp_nest_lock_25_t): New types.
1047         (omp_lock_t): Use sem_t instead of mutex if semaphores
1048         aren't broken.
1049         (omp_nest_lock_t): Likewise.  Change owner to void *.
1050         * config/posix/omp-lock.h: Include semaphore.h.
1051         (omp_lock_25_t, omp_nest_lock_25_t): New types.
1052         (omp_lock_t): Use sem_t instead of mutex if semaphores
1053         aren't broken.
1054         (omp_nest_lock_t): Likewise.  Add owner field.
1056 2008-06-06  Jakub Jelinek  <jakub@redhat.com>
1058         * testsuite/libgomp.c/collapse-1.c: New test.
1059         * testsuite/libgomp.c/collapse-2.c: New test.
1060         * testsuite/libgomp.c/collapse-3.c: New test.
1061         * testsuite/libgomp.c/icv-1.c: New test.
1062         * testsuite/libgomp.c/icv-2.c: New test.
1063         * testsuite/libgomp.c/lib-2.c: New test.
1064         * testsuite/libgomp.c/lock-1.c: New test.
1065         * testsuite/libgomp.c/lock-2.c: New test.
1066         * testsuite/libgomp.c/lock-3.c: New test.
1067         * testsuite/libgomp.c/loop-4.c: New test.
1068         * testsuite/libgomp.c/loop-5.c: New test.
1069         * testsuite/libgomp.c/loop-6.c: New test.
1070         * testsuite/libgomp.c/loop-7.c: New test.
1071         * testsuite/libgomp.c/loop-8.c: New test.
1072         * testsuite/libgomp.c/loop-9.c: New test.
1073         * testsuite/libgomp.c/nested-3.c: New test.
1074         * testsuite/libgomp.c/nestedfn-6.c: New test.
1075         * testsuite/libgomp.c/sort-1.c: New test.
1076         * testsuite/libgomp.c/task-1.c: New test.
1077         * testsuite/libgomp.c/task-2.c: New test.
1078         * testsuite/libgomp.c/task-3.c: New test.
1079         * testsuite/libgomp.c/task-4.c: New test.
1080         * testsuite/libgomp.c++/c++.exp: Add libstdc++-v3 build includes
1081         to C++ testsuite default compiler options.
1082         * testsuite/libgomp.c++/collapse-1.C: New test.
1083         * testsuite/libgomp.c++/collapse-2.C: New test.
1084         * testsuite/libgomp.c++/ctor-10.C: New test.
1085         * testsuite/libgomp.c++/for-1.C: New test.
1086         * testsuite/libgomp.c++/for-2.C: New test.
1087         * testsuite/libgomp.c++/for-3.C: New test.
1088         * testsuite/libgomp.c++/for-4.C: New test.
1089         * testsuite/libgomp.c++/for-5.C: New test.
1090         * testsuite/libgomp.c++/loop-8.C: New test.
1091         * testsuite/libgomp.c++/loop-9.C: New test.
1092         * testsuite/libgomp.c++/loop-10.C: New test.
1093         * testsuite/libgomp.c++/task-1.C: New test.
1094         * testsuite/libgomp.c++/task-2.C: New test.
1095         * testsuite/libgomp.c++/task-3.C: New test.
1096         * testsuite/libgomp.c++/task-4.C: New test.
1097         * testsuite/libgomp.c++/task-5.C: New test.
1098         * testsuite/libgomp.c++/task-6.C: New test.
1099         * testsuite/libgomp.fortran/allocatable1.f90: New test.
1100         * testsuite/libgomp.fortran/allocatable2.f90: New test.
1101         * testsuite/libgomp.fortran/allocatable3.f90: New test.
1102         * testsuite/libgomp.fortran/allocatable4.f90: New test.
1103         * testsuite/libgomp.fortran/collapse1.f90: New test.
1104         * testsuite/libgomp.fortran/collapse2.f90: New test.
1105         * testsuite/libgomp.fortran/collapse3.f90: New test.
1106         * testsuite/libgomp.fortran/collapse4.f90: New test.
1107         * testsuite/libgomp.fortran/lastprivate1.f90: New test.
1108         * testsuite/libgomp.fortran/lastprivate2.f90: New test.
1109         * testsuite/libgomp.fortran/lib4.f90: New test.
1110         * testsuite/libgomp.fortran/lock-1.f90: New test.
1111         * testsuite/libgomp.fortran/lock-2.f90: New test.
1112         * testsuite/libgomp.fortran/nested1.f90: New test.
1113         * testsuite/libgomp.fortran/nestedfn4.f90: New test.
1114         * testsuite/libgomp.fortran/strassen.f90: New test.
1115         * testsuite/libgomp.fortran/tabs1.f90: New test.
1116         * testsuite/libgomp.fortran/tabs2.f: New test.
1117         * testsuite/libgomp.fortran/task1.f90: New test.
1118         * testsuite/libgomp.fortran/task2.f90: New test.
1119         * testsuite/libgomp.fortran/vla4.f90: Add dg-warning.
1120         * testsuite/libgomp.fortran/vla5.f90: Likewise.
1121         * testsuite/libgomp.c/pr26943-2.c: Likewise.
1122         * testsuite/libgomp.c/pr26943-3.c: Likewise.
1123         * testsuite/libgomp.c/pr26943-4.c: Likewise.
1125 2008-05-23  Jakub Jelinek  <jakub@redhat.com>
1127         PR c++/36308
1128         * testsuite/libgomp.c++/ctor-11.C: New test.
1129         * testsuite/libgomp.c++/ctor-12.C: New test.
1131 2008-05-15  Janis Johnson  <janis187@us.ibm.com>
1133         * testsuite/lib/libgomp.exp: Load torture-options.exp from gcc lib.
1135 2008-05-07  Jakub Jelinek  <jakub@redhat.com>
1137         PR middle-end/36106
1138         * testsuite/libgomp.c/atomic-5.c: New test.
1139         * testsuite/libgomp.c/atomic-6.c: New test.
1140         * testsuite/libgomp.c/autopar-1.c: New test.
1142 2008-04-21  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1144         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS)
1145         (LIBGOMP_CHECK_ATTRIBUTE_VISIBILITY)
1146         (LIBGOMP_CHECK_ATTRIBUTE_DLLEXPORT)
1147         (LIBGOMP_CHECK_ATTRIBUTE_ALIAS): Fix cache variable names.
1148         * configure: Regenerate.
1149         * Makefile.in, testsuite/Makefile.in: Likewise.
1151 2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
1153         PR bootstrap/35457
1154         * aclocal.m4: Regenerate.
1155         * configure: Regenerate.
1157 2008-03-18  Jakub Jelinek  <jakub@redhat.com>
1159         PR middle-end/35611
1160         * testsuite/libgomp.c/atomic-4.c: New test.
1162         PR libgomp/35625
1163         * iter.c (gomp_iter_guided_next_locked): If q > n, set end to ws->end.
1164         (gomp_iter_guided_next): Likewise.
1165         * testsuite/libgomp.c/pr35625.c: New test.
1167 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1169         * aclocal.m4: Regenerate.
1170         * configure: Likewise.
1171         * Makefile.in: Likewise.
1172         * testsuite/Makefile.in: Likewise.
1174 2008-03-13  Jakub Jelinek  <jakub@redhat.com>
1176         PR middle-end/35185
1177         * testsuite/libgomp.c++/pr35185.C: New test.
1179 2008-03-12  Jakub Jelinek  <jakub@redhat.com>
1181         PR middle-end/35549
1182         * testsuite/libgomp.c/pr35549.c: New test.
1184 2008-03-06  Jakub Jelinek  <jakub@redhat.com>
1186         * testsuite/libgomp.c/atomic-3.c: New test.
1188 2008-03-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1190         PR fortran/33197
1191         * testsuite/libgomp.fortran/fortran.exp: Add .f08 and
1192         .F08 file suffixes.
1194 2008-03-03  Peter O'Gorman  <pogma@thewrittenword.com>
1196         PR libgomp/33131
1197         * configure.ac: Add ACX_HEADER_STRING.
1198         * env.c: Include strings.h.
1199         * aclocal.m4: Regenerate.
1200         * config.h.in: Regenerate.
1201         * configure: Regenerate.
1202         * Makefile.in: Regenerate.
1203         * testsuite/Makefile.in: Regenerate.
1205 2008-02-15  Jakub Jelinek  <jakub@redhat.com>
1207         PR middle-end/35196
1208         * testsuite/libgomp.c/pr35196.c: New test.
1210         PR middle-end/35130
1211         * testsuite/libgomp.fortran/pr35130.f90: New test.
1212         * testsuite/libgomp.c/pr35130.c: New test.
1214 2008-01-25  Jakub Jelinek  <jakub@redhat.com>
1216         PR middle-end/33880
1217         * testsuite/libgomp.c/pr33880.c: New test.
1218         * testsuite/libgomp.fortran/pr33880.f90: New test.
1220 2008-01-24  David Edelsohn  <edelsohn@gnu.org>
1222         * configure: Regenerate.
1224 2008-01-08  Jakub Jelinek  <jakub@redhat.com>
1226         * configure.ac: Move futex checking into ../config/futex.m4.
1227         * configure: Rebuilt.
1228         * aclocal.m4: Rebuilt.
1229         * Makefile.in: Rebuilt.
1231         * configure.tgt: Rename have_tls to gcc_cv_have_tls to match
1232         2007-10-15 ../config/tls.m4 change.
1234 2007-12-19  Jakub Jelinek  <jakub@redhat.com>
1236         PR c++/34513
1237         * testsuite/libgomp.c/pr34513.c: New test.
1238         * testsuite/libgomp.c++/pr34513.C: New test.
1240 2007-12-17  Jack Howarth  <howarth@bromo.med.uc.edu>
1242         PR target/32765
1243         * testsuite/libgomp.fortran/crayptr2.f90: Move dg-options for darwin.
1245 2007-12-04  Jakub Jelinek  <jakub@redhat.com>
1247         * omp.h.in (__GOMP_NOTHROW): Define.  Use it on omp_* prototypes.
1249 2007-12-03  Jakub Jelinek  <jakub@redhat.com>
1251         * testsuite/libgomp.c/private-1.c: New test.
1253 2007-11-29  Andris Pavenis <andris.pavenis@iki.fi>
1254             Paolo Bonzini  <bonzini@gnu.org>
1256         * Makefile.am: Use space as vpath separator.  Use 'vpath %'
1257         instead of 'VPATH ='.
1258         * Makefile.in: Regenerate.
1260 2007-11-23  Matthias Klose  <doko@ubuntu.com>
1262         * configure.ac: Adjust makeinfo version check.
1263         * configure: Regenerate.
1265 2007-11-10  Jakub Jelinek  <jakub@redhat.com>
1267         PR fortran/34020
1268         * testsuite/libgomp.fortran/pr34020.f90: New test.
1270 2007-11-06  Jakub Jelinek  <jakub@redhat.com>
1272         PR c++/33894
1273         * testsuite/libgomp.c++/atomic-1.C: New test.
1275 2007-10-25  Jakub Jelinek  <jakub@redhat.com>
1277         PR libgomp/33275
1278         * testsuite/libgomp.fortran/omp_parse3.f90 (test_threadprivate):
1279         Make x and y integers rather than (implicit) reals.  Add private (j)
1280         clause to the last omp parallel.
1282 2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
1284         * configure: Regenerate following changes to ../config/tls.m4.
1286 2007-09-28  Jakub Jelinek  <jakub@redhat.com>
1288         * testsuite/libgomp.fortran/stack.f90: New test.
1290 2007-09-10  Danny Smith  <dannysmith@users.sourceforge.net>
1292         * config/mingw32/proc.c: New file.
1294 2007-09-05  Uros Bizjak  <ubizjak@gmail.com>
1296         * testsuite/libgomp.c/atomic-1.c: Include cpuid.h for i386 targets.
1297         (main): Use __get_cpuid to get i386 target fetaures.
1298         * testsuite/libgomp.c/atomic-2.c: Include cpuid.h for x86_64 targets.
1299         (main): Use __get_cpuid to get x86_64 target fetaures.
1301 2007-08-15  Jack Howarth  <howarth@bromo.med.uc.edu>
1303         PR target/32765
1304         * testsuite/libgomp.fortran/pr32550.f90: Use -static-libgcc on Darwin.
1305         * testsuite/libgomp.fortran/crayptr2.f90: Likwise.
1307 2007-07-12  Jakub Jelinek  <jakub@redhat.com>
1309         PR fortran/32550
1310         * testsuite/libgomp.fortran/pr32550.f90: New test.
1311         * testsuite/libgomp.fortran/crayptr2.f90: New test.
1313 2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
1315         * aclocal.m4: Regenerated.
1317 2007-07-05  Tobias Burnus  <burnus@net-b.de>
1319         PR fortran/32359
1320         * testsuite/libgomp.fortran/pr32359.f90: New.
1322 2007-07-02  Jakub Jelinek  <jakub@redhat.com>
1324         PR libgomp/32468
1325         * sections.c (GOMP_parallel_sections_start): Only decrease
1326         number of threads to COUNT if dyn_var is true.
1327         * testsuite/libgomp.c/pr32468.c: New test.
1329 2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1331         PR libgomp/26308
1332         * config/posix/lock.c (_XOPEN_SOURCE): Don't define on Tru64 UNIX.
1334 2007-06-21  Jakub Jelinek  <jakub@redhat.com>
1336         PR middle-end/32362
1337         * testsuite/libgomp.c/pr32362-1.c: New test.
1338         * testsuite/libgomp.c/pr32362-2.c: New test.
1339         * testsuite/libgomp.c/pr32362-3.c: New test.
1341 2007-06-07  Jakub Jelinek  <jakub@redhat.com>
1343         * team.c (gomp_team_start): Fix setting up thread_attr
1344         stack size.
1346 2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
1348         * configure: Regenerate.
1350 2007-05-23  Steve Ellcey  <sje@cup.hp.com>
1352         * Makefile.in: Regenerate.
1353         * configure: Regenerate.
1354         * aclocal.m4: Regenerate.
1355         * testsuite/Makefile.in: Regenerate.
1357 2007-05-04  Jakub Jelinek  <jakub@redhat.com>
1359         * config/linux/proc.c: New file.
1361         PR libgomp/28482
1362         * configure.tgt: Don't link with -Wl,-z,nodlopen even on Linux.
1364 2007-04-19  Daniel Franke  <franke.daniel@gmail.com>
1366         * libgomp.texi (GOMP_CPU_AFFINITY): Updated.
1368 2007-04-16  Matthias Klose  <doko@debian.org>
1370         * configure.tgt (i[456]86-*-linux*): Only add ia32 specific
1371         flags if not building with -m64.
1372         * testsuite/lib/libgomp-dg.exp (libgomp_init): Don't add -march
1373         flag for i?86-*-* targets, if current target matches -m64.
1375 2007-04-14  Steve Ellcey  <sje@cup.hp.com>
1377         * Makefile.am: Add -I .. to ACLOCAL_AMFLAGS.
1378         * Makefile.in: Regenerate.
1380 2007-04-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1382         PR testsuite/31369
1383         * testsuite/libgomp.c++/c++.exp: Don't use concat when setting
1384         ld_library_path.
1385         * testsuite/libgomp.fortran/fortran.exp: Likewise.
1387 2007-04-04  Jakub Jelinek  <jakub@redhat.com>
1389         * libgomp.h (gomp_cpu_affinity, gomp_cpu_affinity_len): New extern
1390         decls.
1391         (gomp_init_affinity, gomp_init_thread_affinity): New prototypes.
1392         * env.c (gomp_cpu_affinity, gomp_cpu_affinity_len): New variables.
1393         (parse_affinity): New function.
1394         (initialize_env): Call it and gomp_init_affinity.
1395         * team.c (gomp_team_start): If gomp_cpu_affinity != NULL,
1396         create new pthread_attr_t and call gomp_init_thread_affinity
1397         on it for each thread before passing the attribute to pthread_create.
1398         * config/linux/affinity.c: New file.
1399         * config/posix/affinity.c: New file.
1400         * configure.ac (HAVE_PTHREAD_AFFINITY_NP): New test.
1401         * configure: Rebuilt.
1402         * config.h.in: Rebuilt.
1403         * Makefile.am (libgomp_la_SOURCES): Add affinity.c.
1404         * Makefile.in: Rebuilt.
1406 2007-03-23  Andreas Tobler  <a.tobler@schweiz.org>
1408         * testsuite/lib/libgomp.exp (libgomp_init): Add -shared-libgcc for
1409         *-*-darwin*.
1410         * testsuite/libgomp.c++/c++.exp: Look for shared libstdc++ library
1411         and use it if found.
1413 2007-03-18  Uros Bizjak  <ubizjak@gmail.com>
1415         * testsuite/config/default.exp: New file.
1416         * testsuite/lib/libgomp.exp: New file.
1417         * testsuite/lib/libgomp.dg (load_gcc_lib, libgomp_init,
1418         libgomp_target_compile, libgomp_option_help, libgomp_option_proc,
1419         load_lib *, load_gcc_lib *): Move to libgomp.exp.
1420         (libgomp_load): Remove.
1421         * testsuite/lib/libgomp.exp (libgomp_init): Compute
1422         always_ld_library_path, not ld_library_path.  Set additional_flags
1423         to -march=i486 for ilp32 x86_64-*-* and i386-*-* targets.
1424         (target_compile): Do not call libgomp_init.  Append lang_library_path
1425         and lang_link_flags to options.
1426         * testsuite/libgomp.c/c.exp: Set DEFAULT_FLAGS to -O2.  Set
1427         ld_library_path from always_ld_library_path.  Set LD_LIBRARY_PATH
1428         here.
1429         * testsuite/libgomp.c++/c++.exp: Set ld_library_path from
1430         always_ld_library_path.  Set LD_LIBRARY_PATH here.
1431         * testsuite/libgomp.fortran/fortran.exp: Ditto.
1432         * testsuite/libgomp.c/atomic-1.c: Set dg-options to
1433         "-O2 -march=pentium" for ilp32 x86 targets. Simplify check for
1434         CX8 flag.
1435         * testsuite/libgomp.c/atomic-2.c: Set dg-options to "-O2 -mcx16" for
1436         lp64 x86 targets. Do not check for SSE3 bit. Do not define bit_SSE3.
1437         * testsuite/libgomp.c/pr29947-1.c: Remove default dg-options.
1438         * testsuite/libgomp.c/pr29947-1.c: Ditto.
1439         * testsuite/libgomp.c/atomic-10.c: Ditto.
1441 2007-03-21  Jakub Jelinek  <jakub@redhat.com>
1443         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: Add
1444         dg-final cleanup-modules line.
1445         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Likewise.
1446         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: Likewise.
1447         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: Likewise.
1448         * testsuite/libgomp.fortran/threadprivate2.f90: Likewise.
1449         * testsuite/libgomp.fortran/reduction5.f90: Likewise.
1450         * testsuite/libgomp.fortran/threadprivate3.f90: Likewise.
1451         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.
1453 2007-03-18  Andreas Schwab  <schwab@suse.de>
1455         * acinclude.m4: Adjust regular expression for ld version
1456         extraction.
1457         * configure: Regenerate.
1459 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
1461         * Makefile.am: Add install-pdf target as copied from
1462         automake v1.10 rules.
1463         * Makefile.in: Regenerate
1465 2007-02-07  Jakub Jelinek  <jakub@redhat.com>
1467         PR libgomp/28486
1468         * configure: Regenerate.
1470         PR c++/30703
1471         * testsuite/libgomp.c++/pr30703.C: New test.
1473 2007-02-02  Jakub Jelinek  <jakub@redhat.com>
1475         Revert:
1476         2006-07-05  Eric Christopher  <echristo@apple.com>
1477         * configure.ac: Depend addition of -pthread on host OS.
1478         * configure: Regenerate.
1480 2007-01-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1482         * libgomp.texi: Fix spacing after abbreviations.
1484 2007-01-31  Daniel Franke <franke.daniel@gmail.com>
1486         PR libgomp/30546
1487         * configure.ac: Add check for makeinfo
1488         * Makefile.am: Redefined target libgomp.info, build libgomp.info only
1489         if an appropiate version of makeinfo is found.
1490         * aclocal.m4: Regenerated.
1491         * configure: Regenerated.
1492         * Makefile.in: Regenerated.
1493         * testsuite/Makefile.in: Regenerated.
1495 2007-01-29  Daniel Franke <franke.daniel@gmail.com>
1497         PR libgomp/30540
1498         * libgomp.texi: More about implementation-dependent settings.
1500 2007-01-26  Tobias Burnus  <burnus@net-b.de>
1502         * testsuite/libgomp.fortran/fortran.exp: Support .f03 extension.
1504 2007-01-24  Jakub Jelinek  <jakub@redhat.com>
1506         PR middle-end/30494
1507         * testsuite/libgomp.c/pr30494.c: New test.
1509 2007-01-15  Tom Tromey  <tromey@redhat.com>
1511         * configure: Rebuilt.
1512         * configure.ac: Fixed comment.
1514 2007-01-14  Daniel Franke  <franke.daniel@gmail.com>
1516         * libgomp.texi: Document implementation specific default values of
1517         environment variables.
1519 2006-12-21  Daniel Franke  <franke.daniel@gmail.com>
1521         PR libgomp/28209
1522         * libgomp.texi: New file.
1523         * configure.ac: Add --enable-generated-files-in-srcdir option.
1524         * Makefile.am: Add info, dvi, pdf, html targets. On request, copy
1525         files to srcdir.
1526         * Makefile.in: Regenerated.
1527         * config.h.in: Regenerated.
1528         * testsuite/Makefile.in: Regenerated.
1529         * NOTES: Removed.
1531 2006-12-04  Daniel Franke  <franke.daniel@gmail.com>
1533         PR libgomp/29949
1534         * env.c (omp_set_num_threads): Set illegal thread count to 1.
1536 2006-12-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1538         * configure: Regenerate.
1540 2006-12-04  Jakub Jelinek  <jakub@redhat.com>
1542         PR libgomp/29947
1543         * loop.c (gomp_loop_init): Make parameters signed.  Set ws->end to
1544         start if there shouldn't be any loop iterations.
1545         (gomp_loop_ordered_static_start): Remove start == end test.
1546         * testsuite/libgomp.c/pr29947-1.c: New test.
1547         * testsuite/libgomp.c/pr29947-2.c: New test.
1549 2006-12-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1551         * configure.tgt: Force initial-exec TLS model on Linux only.
1553 2006-11-13  Daniel Jacobowitz  <dan@codesourcery.com>
1555         * configure: Regenerated.
1557 2006-11-09  Uros Bizjak  <ubizjak@gmail.com>
1559         * env.c (parse_schedule): Reject out of range values.
1560         (parse_unsigned_long): Reject out of range, negative or zero values.
1562 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
1564         PR fortran/29629
1565         * testsuite/libgomp.fortran/pr29629.f90: New test.
1567 2006-10-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
1569         PR libgomp/29494
1570         * configure.tgt: Use posix95 configuration for Solaris 2.5.1 and 2.6.
1571         * config/posix95: New directory.
1572         * config/posix95/omp-lock.h: New file.
1573         * config/posix95/lock.c: Likewise.
1575 2006-10-14  Geoffrey Keating  <geoffk@apple.com>
1577         * aclocal.m4: Regenerate.
1578         * configure: Regenerate.
1580 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
1582         * testsuite/libgomp.c/barrier-1.c: Change timestamp tests from
1583         '<' to '<='.
1585 2006-10-05  Danny Smith  <dannysmith@users.sourceforge.net>
1587         * acinclude.m4 (HAVE_ATTRIBUTE_ALIAS): Remove __USER_LABEL_PREFIX__ from
1588         test.
1589         * configure: Regenerate.
1590         * fortran.c  (ialias_redirect): Add __USER_LABEL_PREFIX__ to alias.
1592 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
1594         PR middle-end/25261
1595         PR middle-end/28790
1596         * testsuite/libgomp.c/nestedfn-4.c: New test.
1597         * testsuite/libgomp.c/nestedfn-5.c: New test.
1598         * testsuite/libgomp.fortran/nestedfn3.f90: New test.
1600         PR fortran/29097
1601         * testsuite/libgomp.fortran/condinc1.f: New test.
1602         * testsuite/libgomp.fortran/condinc2.f: New test.
1603         * testsuite/libgomp.fortran/condinc3.f90: New test.
1604         * testsuite/libgomp.fortran/condinc4.f90: New test.
1605         * testsuite/libgomp.fortran/condinc1.inc: New file.
1607 2006-09-18  Tom Tromey  <tromey@redhat.com>
1609         * configure: Rebuilt.
1611 2006-09-13  Joseph S. Myers  <joseph@codesourcery.com>
1613         PR c/28768
1614         PR preprocessor/14634
1615         * configure.ac (HAVE_CLOCK_GETTIME): Add missing second argument
1616         to AC_DEFINE.
1617         * configure: Regenerate.
1619 2006-09-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1621         * testsuite/libgomp.fortran/reduction3.f90: Change
1622         -2147483648 to -huge(i)-1 to avoid overflow.
1623         * testsuite/libgomp.fortran/reduction4.f90: Change
1624         Z'ffffffff' to not(0) to avoid overflow.
1626 2006-08-26  Joseph S. Myers  <joseph@codesourcery.com>
1628         PR libgomp/25938
1629         * Makefile.am (libsubincludedir): New.
1630         (nodist_include_HEADERS): Rename to nodist_libsubinclude_HEADERS.
1631         * Makefile.in: Regenerate.
1633 2006-08-17  Jakub Jelinek  <jakub@redhat.com>
1635         PR libgomp/28725
1636         * env.c: Include ctype.h.
1637         (parse_schedule, parse_unsigned_long, parse_boolean): Allow
1638         leading and/or trailing whitespace and compare strings case
1639         insensitively.
1641 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
1643         PR fortran/28390
1644         * testsuite/libgomp.fortran/pr28390.f: New test.
1646 2006-07-05  Eric Christopher  <echristo@apple.com>
1648         * configure.ac: Depend addition of -pthread on host OS.
1649         * configure: Regenerate.
1651 2006-06-21  Jakub Jelinek  <jakub@redhat.com>
1653         * critical.c (GOMP_critical_name_start): Fix *pptr initialization
1654         when gomp_mutex_t is larger than pointer and HAVE_SYNC_BUILTINS is
1655         defined.
1657 2006-06-20  Jakub Jelinek  <jakub@redhat.com>
1659         PR libgomp/26175
1660         PR libgomp/26477
1661         * configure.ac: If neither --enable-linux-futex nor
1662         --disable-linux-futex is passed, determine the default by checking
1663         for compiling and/or running against NPTL.  With --enable-linux-futex,
1664         check if SYS_gettid and SYS_futex are defined.
1665         * configure: Rebuilt.
1667 2006-06-14  Richard Henderson  <rth@redhat.com>
1669         PR libgomp/28008
1670         * env.c (initialize_env): Avoid using PTHREAD_STACK_MIN when
1671         undefined.  Use GOMP_STACKSIZE not OMP_STACKSIZE for environment.
1673 2006-06-09  Richard Henderson  <rth@redhat.com>
1675         * env.c (gomp_nthreads_var): Change to unsigned long.
1676         (gomp_run_sched_chunk): Likewise.
1677         (parse_unsigned_long): Rename from parse_num_threads and generalize.
1678         (initialize_env): Initialize gomp_thread_attr.
1679         * libgomp.h (gomp_nthreads_var): Update decl.
1680         (gomp_run_sched_chunk): Likewise.
1681         (gomp_thread_attr): Declare.
1682         * team.c (gomp_thread_attr): Export.
1683         (initialize_team): Don't initialize it.
1685 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
1687         PR fortran/27916
1688         * testsuite/libgomp.fortran/pr27916-1.f90: New test.
1689         * testsuite/libgomp.fortran/pr27916-2.f90: New test.
1691 2006-06-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1693         * config/mingw32/time.c: New file.
1694         * configure.tgt: Use it.
1696 2006-05-23  Carlos O'Donell  <carlos@codesourcery.com>
1698         * Makefile.am: Add install-html target. Add install-html to .PHONY
1699         * Makefile.in: Regenerate.
1701 2006-05-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1703         PR libgomp/27612
1704         * testsuite/libgomp.c/sections-1.c: Require sync_int_long.
1705         * testsuite/libgomp.c/critical-1.c: Likewise.
1706         * testsuite/libgomp.c/loop-1.c: Likewise.
1707         * testsuite/libgomp.c/loop-2.c: Likewise.
1708         * testsuite/libgomp.c/single-1.c: Likewise.
1709         * testsuite/libgomp.c/ordered-1.c: Likewise.
1710         * testsuite/libgomp.c/ordered-2.c: Likewise.
1712 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
1714         PR middle-end/27416
1715         * libgomp.fortran/pr27416-1.f90: New test.
1717 2006-05-03  Jakub Jelinek  <jakub@redhat.com>
1719         PR fortran/27395
1720         * testsuite/libgomp.fortran/pr27395-1.f90: New test.
1721         * testsuite/libgomp.fortran/pr27395-2.f90: New test.
1723 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1725         PR c++/26943
1726         * testsuite/libgomp.c/pr26943-1.c: New test.
1727         * testsuite/libgomp.c/pr26943-2.c: New test.
1728         * testsuite/libgomp.c/pr26943-3.c: New test.
1729         * testsuite/libgomp.c/pr26943-4.c: New test.
1730         * testsuite/libgomp.c++/pr27337.C: Remove barrier.
1731         * testsuite/libgomp.c++/pr26943.C: New test.
1733 2006-05-02  Jakub Jelinek  <jakub@redhat.com>
1735         PR middle-end/27337
1736         * testsuite/libgomp.c++/pr27337.C: New test.
1738 2006-04-26  Jakub Jelinek  <jakub@redhat.com>
1740         PR c/26171
1741         * testsuite/libgomp.c/pr26171.c: New test.
1743 2006-04-25  Richard Henderson  <rth@redhat.com>
1745         PR libgomp/25865
1746         * configure.ac: Use GCC_CHECK_TLS.
1747         * acinclude.m4 (LIBGOMP_CHECK_TLS): Remove.
1748         * Makefile.in, aclocal.m4, configure: Regenerate.
1750 2006-04-10  Matthias Klose  <doko@debian.org>
1752         * testsuite/lib/libgomp.exp (libgomp_init): Recognize multilib
1753         directory names containing underscores.
1755 2006-03-21  Jakub Jelinek  <jakub@redhat.com>
1757         PR c++/26691
1758         * testsuite/libgomp.c++/pr26691.C: New test.
1760 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
1762         * testsuite/libgomp.fortran/retval2.f90: New test.
1764 2006-03-09  Diego Novillo  <dnovillo@redhat.com>
1766         * testsuite/libgomp.c++: New directory.
1768 2006-02-25  Shantonu Sen  <ssen@opendarwin.org>
1770         * config/posix/sem.h: Define BROKEN_POSIX_SEMAPHORES functions.
1771         * config/posix/sem.c: Implement the above.
1773 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
1775         * configure.ac (HAVE_BROKEN_POSIX_SEMAPHORES): Check for darwin and
1776         define HAVE_BROKEN_POSIX_SEMAPHORES.
1777         * configure: Rebuilt.
1778         * config.h.in: Rebuilt.
1780 2006-02-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1782         PR bootstrap/26161
1783         * configure.ac: Remove AC_CHECK_HEADER for pthread.h. Add comment
1784         for the other pthread check.
1785         * configure: Regenerate.
1786         * config.h.in: Regenerate.
1788 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
1790         PR libgomp/25938
1791         PR libgomp/25984
1792         * Makefile.am (fincludedir): New variable.
1793         (nodist_include_HEADERS): Remove Fortran files.
1794         (nodist_finclude_HEADERS): New variable.
1795         * Makefile.in: Regenerated.
1797 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
1799         * testsuite/libgomp.fortran/vla7.f90: Add -w to options.
1800         Remove tests for returning assumed character length arrays.
1802 2006-02-12  Roger Sayle  <roger@eyesopen.com>
1803             John David Anglin  <dave@hiauly1.hia.nrc.ca>
1805         PR libgomp/25936
1806         * configure.tgt: Link against -lrt for sem_init on HPUX v11 systems.
1808 2006-02-08  Ulrich Weigand  <uweigand@de.ibm.com>
1810         * testsuite/lib/libgomp-dg.exp: Load scanrtl.exp library.
1812 2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1814         * testsuite/lib/libgomp-dg.exp (libgomp_init): Compute multilib related
1815         part of LD_LIBRARY_PATH manually.
1817 2006-02-03  H.J. Lu  <hongjiu.lu@intel.com>
1819         PR libgomp/25852
1820         * testsuite/lib/libgomp-dg.exp (blddir): Set it in
1821         libgomp_init.
1823 2005-01-25  Paolo Bonzini  <bonzini@gnu.org>
1825         PR libgomp/25884
1826         * Makefile.am (omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Remove.
1827         * configure.ac (PERL): Don't set.
1828         (gstdint.h, omp.h, omp_lib.h, omp_lib.f90, libgomp_f.h): Create here.
1829         (OMP_LOCK_SIZE, OMP_LOCK_ALIGN, OMP_LOCK_KIND, OMP_NEST_LOCK_SIZE,
1830         OMP_NEST_LOCK_ALIGN, OMP_NEST_LOCK_KIND): New substitutions.
1831         * omp.h.in: Wrap the new configure substitutions with @ characters.
1832         * omp_lib.h.in, omp_lib.f90.in, libgomp_f.h.in: Likewise.
1833         * aclocal.m4, configure, Makefile.in: Regenerate.
1834         * mkomp_h.pl: Delete.
1836 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
1838         PR libgomp/25259
1839         * configure.ac: Use GCC_HEADER_STDINT.
1840         * libgomp.h: Include gstdint.h.
1841         * libgomp_f.h.in: Don't include stdint.h or inttypes.h.
1842         * configure, Makefile.in, testsuite/Makefile.in, aclocal.m4: Rebuild.
1844 2006-01-24  Richard Henderson  <rth@redhat.com>
1846         PR libgomp/25942
1847         * configure.ac: Add AM_MAINTAINER_MODE.
1848         * Makefile.in, aclocal.m4, configure, testsuite/Makefile.in: Rebuild.
1850 2006-01-24  Diego Novillo  <dnovillo@redhat.com>
1852         * Makefile.in: Regenerate.
1853         * testsuite/Makefile.in: Regenerate.
1854         * aclocal.m4: Regenerate.
1856 2006-01-23  Andreas Tobler  <a.tobler@schweiz.ch>
1858         * config/posix/proc.c: Conditional include of sys/loadavg.h for
1859         Solaris.
1860         * configure.ac: Add check for loadavg.h.
1861         (link_gomp): Adjust comment.
1862         * configure: Regenerate.
1863         * config.h.in: Regenerate.
1865 2006-01-21  Steve Ellcey  <sje@cup.hp.com>
1867         PR libgomp/25877
1868         * configure.ac: Remove check for alloca.h.
1869         * configure: Regenerate.
1870         * config.h.in: Regenerate.
1871         * libgomp.h: define gomp_alloca to be __builtin_alloca.
1872         * team.c: Remove use of alloca.h.
1873         Call gomp_alloca instead of alloca.
1875 2006-01-20  Steve Ellcey  <sje@cup.hp.com>
1877         PR libgomp/25877
1878         * team.c: Add include of alloca.h.
1879         * configure.ac: Add check for alloca.h.
1880         * configure: Regenerate.
1881         * config.h.in: Regenerate.
1883 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
1885         PR fortran/25219
1886         * testsuite/libgomp.fortran/pr25219.f90: New test.
1888 2005-12-05  Uros Bizjak  <uros@kss-loka.si>
1890         * testsuite/libgomp.c/pr24455.c, testsuite/libgomp.c/copyin-1.c,
1891         testsuite/libgomp.c/copyin-2.c, testsuite/libgomp.c/copyin-3.c,
1892         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
1893         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
1894         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455.C,
1895         testsuite/libgomp.fortran/threadprivate1.f90,
1896         testsuite/libgomp.fortran/threadprivate2.f90,
1897         testsuite/libgomp.fortran/threadprivate3.f90,
1898         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
1899         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
1900         testsuite/libgomp.fortran/omp_parse3.f90: Change required
1901         effective-target to TLS runtime.
1903         * testsuite/libgomp.fortran/pr25162.f: Require
1904         effective-target TLS runtime.
1906 2005-12-01  Jakub Jelinek  <jakub@redhat.com>
1908         * testsuite/libgomp.fortran/nestedfn2.f90: New test.
1909         * testsuite/libgomp.c/nestedfn-3.c: New test.
1911 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
1913         PR fortran/25162
1914         * testsuite/libgomp.fortran/pr25162.f: New test.
1916 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
1918         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Fall back to
1919         CLOCK_REALTIME if clock_* (CLOCK_MONOTONIC, &ts) call failed.
1921 2005-11-25  Jakub Jelinek  <jakub@redhat.com>
1923         * alloc.c, barrier.c, critical.c, env.c, error.c, fortran.c, iter.c,
1924         libgomp.h, libgomp_f.h.in, libgomp_g.h, loop.c, mkomp_h.pl, omp.h.in,
1925         omp_lib.f90.in, omp_lib.h.in, ordered.c, parallel.c, sections.c,
1926         single.c, team.c, work.c, config/linux/alpha/futex.h,
1927         config/linux/bar.c, config/linux/bar.h, config/linux/ia64/futex.h,
1928         config/linux/lock.c, config/linux/mutex.c, config/linux/mutex.h,
1929         config/linux/powerpc/futex.h, config/linux/s390/futex.h,
1930         config/linux/sem.c, config/linux/sem.h, config/linux/sparc/futex.h,
1931         config/linux/x86/futex.h, config/posix/bar.c, config/posix/bar.h,
1932         config/posix/lock.c, config/posix/mutex.h, config/posix/proc.c,
1933         config/posix/sem.c, config/posix/sem.h, config/posix/time.c: Update
1934         FSF address.
1936 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
1938         * Makefile.am: Move libgomp_f.h from nodist_include_HEADERS
1939         to nodist_noinst_HEADERS.
1940         * Makefile.in: Rebuilt.
1942         * config/posix/omp-lock.h (omp_nest_lock_t): Change into struct,
1943         add integer count field.
1944         * config/posix/lock.c (omp_destroy_nest_lock): Adjust for
1945         omp_nest_lock_t type change.
1946         (omp_init_nest_lock): Likewise.  Initialize count to 0.
1947         (omp_set_nest_lock): Adjust for omp_nest_lock_t type change.
1948         Increment count.
1949         (omp_unset_nest_lock): Adjust for omp_nest_lock_t type change.
1950         Decrement count.
1951         (omp_test_nest_lock): Adjust for omp_nest_lock_t type change.
1952         Increment count if successful and return the new nesting level.
1953         * config/linux/lock.c (omp_test_nest_lock): Return new nesting level.
1954         * omp_lib.f90.in (omp_test_lock): Fix LOCK argument type.
1955         * testsuite/libgomp.c/lib-1.c: New test.
1956         * testsuite/libgomp.fortran/lib1.f90: New test.
1957         * testsuite/libgomp.fortran/lib2.f: New test.
1958         * testsuite/libgomp.fortran/lib3.f: New test.
1960 2005-11-17  Richard Henderson  <rth@redhat.com>
1962         PR 24845
1963         * Makefile.am (nodist_toolexeclib_HEADERS): New.
1964         * configure.ac (link_gomp): New.  Substitute it.
1965         (AC_CONFIG_FILES): Add libgomp.spec.
1966         * libgomp.spec.in: New file.
1967         * Makefile.in, testsuite/Makefile.in, configure: Rebuild.
1968         * testsuite/lib/libgomp-dg.exp: Add -B${blddir}/ to flags.
1970 2005-11-18  Jakub Jelinek  <jakub@redhat.com>
1972         * testsuite/libgomp.fortran/reduction1.f90: Adjust for
1973         reduction(-:var) behaving the same as reduction(+:var).
1974         * testsuite/libgomp.c/reduction-4.c: New test.
1976 2005-11-15  Uros Bizjak  <uros@kss-loka.si>
1978         * testsuite/libgomp.c/pr24455-1.c, testsuite/libgomp.c/pr24455.c,
1979         testsuite/libgomp.c/copyin-1.c, testsuite/libgomp.c/copyin-2.c,
1980         testsuite/libgomp.c/copyin-3.c,
1981         testsuite/libgomp.c++/copyin-1.C, testsuite/libgomp.c++/copyin-2.C,
1982         testsuite/libgomp.c++/ctor-5.C, testsuite/libgomp.c++/ctor-8.C,
1983         testsuite/libgomp.c++/ctor-9.C, testsuite/libgomp.c++/pr24455-1.C,
1984         testsuite/libgomp.c++/pr24455.C,
1985         testsuite/libgomp.fortran/threadprivate1.f90,
1986         testsuite/libgomp.fortran/threadprivate2.f90,
1987         testsuite/libgomp.fortran/threadprivate3.f90,
1988         testsuite/libgomp.fortran/appendix-a/a.22.7.f9,
1989         testsuite/libgomp.fortran/appendix-a/a.22.8.f9,
1990         testsuite/libgomp.fortran/omp_parse3.f90: Require
1991         effective-target TLS.
1993 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
1995         * HEADER: Remove.
1997 2005-11-13  Jakub Jelinek  <jakub@redhat.com>
1999         PR libgomp/24797
2000         * team.c (initialize_team): Pass NULL rather than free as
2001         pthread_key_create destructor.  Initialize thread specific data
2002         pointer in initial thread to a static local variable rather than
2003         malloced memory.
2005 2005-11-11  Uros Bizjak  <uros@kss-loka.si>
2007         * testsuite/lib/libgomp-dg.exp: Locate libgcc.a and append
2008         its location to ld_library_path.
2010 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
2012         * testsuite/libgomp.c/c.exp: Rename from dg.exp.
2014 2005-11-10  Diego Novillo  <dnovillo@redhat.com>
2016         * testsuite/libgomp.c: Rename from libgomp.dg.
2018 2005-11-09  Diego Novillo  <dnovillo@redhat.com>
2020         * testsuite/libgomp.c++/pr24455.C: Add copyin clause for
2021         threadprivate variable 'i'.
2023 2005-11-09  Jakub Jelinek  <jakub@redhat.com>
2025         * config/linux/s390/futex.h: New file.
2026         * configure.tgt: Use it.
2028         * testsuite/libgomp.fortran/omp_parse4.f90: Move n initialization
2029         before the parallel.
2031 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
2033         PR c++/24734
2034         * testsuite/libgomp.c++/master-1.C: New test.
2036 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
2038         * testsuite/libgomp.dg/copyin-3.c: New test.
2040 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
2042         * testsuite/libgomp.fortran/retval1.f90: New test.
2043         * testsuite/libgomp.fortran/vla7.f90: New test.
2045 2005-11-06  Jakub Jelinek  <jakub@redhat.com>
2047         * testsuite/libgomp.fortran/vla2.f90: New test.
2048         * testsuite/libgomp.fortran/vla3.f90: New test.
2049         * testsuite/libgomp.fortran/vla4.f90: New test.
2050         * testsuite/libgomp.fortran/vla5.f90: New test.
2051         * testsuite/libgomp.fortran/vla6.f90: New test.
2053 2005-11-01  Jakub Jelinek  <jakub@redhat.com>
2055         * config/linux/sparc/futex.h: New file.
2056         * configure.tgt: Use it.
2057         * testsuite/lib/libgomp-dg.exp: Use -mcpu=v9 for sparc testing.
2059         * critical.c: Include stdlib.h.
2060         * acinclude.m4 (LIBGOMP_CHECK_SYNC_BUILTINS): Avoid warnings about
2061         ignoring return value.
2062         * configure.ac: Don't put -Wc,-pthread into XCFLAGS until after
2063         LIBGOMP_CHECK_SYNC_BUILTINS check.
2064         * configure: Rebuilt.
2066 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
2068         * testsuite/libgomp.fortran/vla1.f90: New test.
2070 2005-10-31  Richard Henderson  <rth@redhat.com>
2072         * testsuite/libgomp.fortran/character2.f90: Fix race condition
2073         setting 's' in different threads.
2075 2005-10-31  Jakub Jelinek  <jakub@redhat.com>
2077         * libgomp.h (attribute_hidden, ialias): Define.
2078         * config/posix/proc.c (omp_get_num_procs): Add ialias.
2079         * config/posix/time.c (omp_get_wtime, omp_get_wtick): Likewise.
2080         * config/posix/lock.c (omp_init_lock, omp_init_nest_lock,
2081         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
2082         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
2083         omp_test_lock, omp_test_nest_lock): Likewise.
2084         * config/linux/lock.c (omp_init_lock, omp_init_nest_lock,
2085         omp_destroy_lock, omp_destroy_nest_lock, omp_set_lock,
2086         omp_set_nest_lock, omp_unset_lock, omp_unset_nest_lock,
2087         omp_test_lock, omp_test_nest_lock): Likewise.
2088         * env.c (omp_set_dynamic, omp_set_nested, omp_set_num_threads,
2089         omp_get_dynamic, omp_get_nested): Likewise.
2090         * parallel.c (omp_get_num_threads, omp_get_max_threads,
2091         omp_get_thread_num, omp_in_parallel): Likewise.
2092         * fortran.c (ialias_redirect): Define.
2093         (omp_init_lock, omp_init_nest_lock, omp_destroy_lock,
2094         omp_destroy_nest_lock, omp_set_lock, omp_set_nest_lock,
2095         omp_unset_lock, omp_unset_nest_lock, omp_test_lock,
2096         omp_test_nest_lock, omp_set_dynamic, omp_set_nested,
2097         omp_set_num_threads, omp_get_dynamic, omp_get_nested,
2098         omp_in_parallel, omp_get_max_threads, omp_get_num_procs,
2099         omp_get_num_threads, omp_get_thread_num, omp_get_wtick,
2100         omp_get_wtime): Add ialias_redirect.
2102 2005-10-30  Jakub Jelinek  <jakub@redhat.com>
2104         * fortran.c: Include stdlib.h.
2106 2005-10-29  Jakub Jelinek  <jakub@redhat.com>
2108         * Makefile.am (env.o, env.lo): Depend on libgomp_f.h.
2109         * Makefile.in: Regenerated.
2111 2005-10-28  Jakub Jelinek  <jakub@redhat.com>
2113         * mkomp_h.pl: Remove all -Wc, option prefixes in $COMPILE.
2114         * libgomp_f.h.in (omp_check_defines): New function.
2115         * env.c: Include libgomp_f.h.
2116         (initialize_env): Call omp_check_defines.
2118         * testsuite/libgomp.dg/copyin-2.c: New test.
2119         * testsuite/libgomp.c++/copyin-2.C: New test.
2120         * testsuite/libgomp.fortran/threadprivate3.f90: New test.
2122         * testsuite/libgomp.fortran/threadprivate2.f90: New test.
2123         * testsuite/libgomp.fortran/sharing2.f90: New test.
2125         * testsuite/libgomp.dg/copyin-1.c: New test.
2126         * testsuite/libgomp.c++/copyin-1.C: New test.
2128 2005-10-26  Jakub Jelinek  <jakub@redhat.com>
2130         * testsuite/libgomp.fortran/crayptr1.f90: New test.
2132         * testsuite/libgomp.fortran/workshare1.f90: New test.
2134         * libgomp.fortran/appendix-a/a.28.5.f90: Change into compile
2135         only test.
2136         * libgomp.fortran/sharing1.f90: New test.
2138 2005-10-24  Jakub Jelinek  <jakub@redhat.com>
2140         PR c++/24502
2141         * testsuite/libgomp.c++/loop-7.C: New test.
2143         * testsuite/libgomp.dg/nestedfn-2.c: New test.
2145         * testsuite/libgomp.dg/nestedfn-1.c: New test.
2146         * testsuite/libgomp.fortran/reduction6.f90: New test.
2147         * testsuite/libgomp.fortran/nestedfn1.f90: New test.
2149 2005-10-23  Richard Henderson  <rth@redhat.com>
2151         * testsuite/libgomp.c++/ctor-1.C: New.
2152         * testsuite/libgomp.c++/ctor-2.C: New.
2153         * testsuite/libgomp.c++/ctor-3.C: New.
2154         * testsuite/libgomp.c++/ctor-4.C: New.
2155         * testsuite/libgomp.c++/ctor-5.C: New.
2156         * testsuite/libgomp.c++/ctor-6.C: New.
2157         * testsuite/libgomp.c++/ctor-7.C: New.
2158         * testsuite/libgomp.c++/ctor-8.C: New.
2159         * testsuite/libgomp.c++/ctor-9.C: New.
2161 2005-10-21  Diego Novillo  <dnovillo@redhat.com>
2163         PR 24455
2164         * testsuite/libgomp.c++/pr24455-1.C: New test.
2165         * testsuite/libgomp.c++/pr24455.C: New test.
2166         * testsuite/libgomp.dg/pr24455-1.c: New test.
2167         * testsuite/libgomp.dg/pr24455.c: New test.
2169 2005-10-20  Richard Henderson  <rth@redhat.com>
2171         * testsuite/libgomp.c++/loop-6.C: New.
2172         * testsuite/libgomp.dg/loop-3.c: New.
2174 2005-10-20  Jakub Jelinek  <jakub@redhat.com>
2176         * testsuite/libgomp.fortran/jacobi.f: Don't make i and j
2177         explicitly private.
2178         * testsuite/libgomp.fortran/omp_parse1.f90 (test_do): Make i
2179         explicitly shared.
2181 2005-10-19  Diego Novillo  <dnovillo@redhat.com>
2183         * testsuite/libgomp.fortran/jacobi.f: New test.
2185 2005-10-19  Richard Henderson  <rth@redhat.com>
2187         * configure.tgt (i?86-linux): Default to with_arch instead of
2188         CFLAGS.  Add -mtune to match target_cpu.
2189         (x86_64-linux): Tune to i686.
2191         * fortran.c (omp_test_nest_lock_): Fix typo.
2193 2005-10-19  Jakub Jelinek  <jakub@redhat.com>
2195         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
2196         gomp_ordered_sync): Do nothing if team->nthreads == 1.
2197         * testsuite/libgomp.dg/ordered-3.c: New test.
2199         * testsuite/libgomp.dg/appendix-a/a.18.1.c: Remove unconditional abort.
2200         Remove volatile keyword.
2202         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: Reorder variables
2203         in COMMON block to avoid warnings on 64-bit targets.
2205 2005-10-18  Diego Novillo  <dnovillo@redhat.com>
2207         * testsuite/libgomp.dg/shared-3.c: New test.
2209 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
2211         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: Removed.
2212         * testsuite/libgomp.fortran/reduction5.f90: New test.
2214 2005-10-18  Jakub Jelinek  <jakub@redhat.com>
2216         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: Add -ffixed-form to
2217         dg-options.
2218         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: Likewise.  Enable
2219         flush loop now that __sync_synchronize has proper memory barrier.
2220         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: Fix a typo.
2221         Add -ffixed-form to dg-options.
2223 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
2225         * testsuite/libgomp.fortran/fortran.exp: Also gather tests
2226         from subdirectories.
2227         * testsuite/libgomp.fortran/appendix-a/a.15.1.f90: New test.
2228         * testsuite/libgomp.fortran/appendix-a/a.16.1.f90: New test.
2229         * testsuite/libgomp.fortran/appendix-a/a.18.1.f90: New test.
2230         * testsuite/libgomp.fortran/appendix-a/a.19.1.f90: New test.
2231         * testsuite/libgomp.fortran/appendix-a/a.2.1.f90: New test.
2232         * testsuite/libgomp.fortran/appendix-a/a.21.1.f90: New test.
2233         * testsuite/libgomp.fortran/appendix-a/a.22.7.f90: New test.
2234         * testsuite/libgomp.fortran/appendix-a/a.22.8.f90: New test.
2235         * testsuite/libgomp.fortran/appendix-a/a.26.1.f90: New test.
2236         * testsuite/libgomp.fortran/appendix-a/a.28.1.f90: New test.
2237         * testsuite/libgomp.fortran/appendix-a/a.28.2.f90: New test.
2238         * testsuite/libgomp.fortran/appendix-a/a.28.3.f90: New test.
2239         * testsuite/libgomp.fortran/appendix-a/a.28.4.f90: New test.
2240         * testsuite/libgomp.fortran/appendix-a/a.28.5.f90: New test.
2241         * testsuite/libgomp.fortran/appendix-a/a.3.1.f90: New test.
2242         * testsuite/libgomp.fortran/appendix-a/a.31.3.f90: New test.
2243         * testsuite/libgomp.fortran/appendix-a/a.31.4.f90: New test.
2244         * testsuite/libgomp.fortran/appendix-a/a.31.5.f90: New test.
2245         * testsuite/libgomp.fortran/appendix-a/a.33.3.f90: New test.
2246         * testsuite/libgomp.fortran/appendix-a/a.38.1.f90: New test.
2247         * testsuite/libgomp.fortran/appendix-a/a.39.1.f90: New test.
2248         * testsuite/libgomp.fortran/appendix-a/a.4.1.f90: New test.
2249         * testsuite/libgomp.fortran/appendix-a/a.40.1.f90: New test.
2250         * testsuite/libgomp.fortran/appendix-a/a.5.1.f90: New test.
2251         * testsuite/libgomp.fortran/appendix-a/a10.1.f90: New test.
2253 2005-10-17  Jakub Jelinek  <jakub@redhat.com>
2255         * testsuite/libgomp.dg/dg.exp: Only unset lang_* if
2256         lang_library_path exists.  Use find instead of glob to gather tests.
2257         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: Removed.
2259 2005-10-17  Diego Novillo  <dnovillo@redhat.com>
2261         * testsuite/libgomp.dg/appendix-a/a.15.1.c: New test.
2262         * testsuite/libgomp.dg/appendix-a/a.16.1.c: New test.
2263         * testsuite/libgomp.dg/appendix-a/a.18.1.c: New test.
2264         * testsuite/libgomp.dg/appendix-a/a.19.1.c: New test.
2265         * testsuite/libgomp.dg/appendix-a/a.2.1.c: New test.
2266         * testsuite/libgomp.dg/appendix-a/a.21.1.c: New test.
2267         * testsuite/libgomp.dg/appendix-a/a.26.1.c: New test.
2268         * testsuite/libgomp.dg/appendix-a/a.29.1.c: New test.
2269         * testsuite/libgomp.dg/appendix-a/a.3.1.c: New test.
2270         * testsuite/libgomp.dg/appendix-a/a.39.1.c: New test.
2271         * testsuite/libgomp.dg/appendix-a/a.4.1.c: New test.
2272         * testsuite/libgomp.dg/appendix-a/a.5.1.c: New test.
2273         * testsuite/libgomp.dg/appendix-a/appendix-a.exp: New file.
2275 2005-10-15  Jakub Jelinek  <jakub@redhat.com>
2277         * testsuite/libgomp.dg/vla-1.c: New test.
2279         * testsuite/libgomp.fortran/reference2.f90: New test.
2281         * testsuite/libgomp.fortran/character2.f90: Remove explicit
2282         declaration of omp_get_thread_num.
2283         * testsuite/libgomp.fortran/threadprivate1.f90: Likewise.  Add
2284         use omp_lib.
2286         * testsuite/libgomp.fortran/reduction1.f90: New test.
2287         * testsuite/libgomp.fortran/reduction2.f90: New test.
2288         * testsuite/libgomp.fortran/reduction3.f90: New test.
2289         * testsuite/libgomp.fortran/reduction4.f90: New test.
2291 2005-10-13  Richard Henderson  <rth@redhat.com>
2293         * Makefile.am (libgomp_la_SOURCES): Add bar.c.
2294         * Makefile.in: Regenerate.
2295         * barrier.c (GOMP_barrier): Use gomp_barrier_wait.
2296         * libgomp.h: Include bar.h.
2297         (struct gomp_barrier): Remove.
2298         (struct gomp_team): Add barrier.  Replace master_barrier with
2299         master_release.  Replace threads with ordered_release.
2300         (struct gomp_thread): Replace barrier with release.
2301         * ordered.c (gomp_ordered_first): Update for ordered_release change.
2302         (gomp_ordered_last, gomp_ordered_next, gomp_ordered_static_init,
2303         gomp_ordered_static_next, gomp_ordered_sync): Likewise.
2304         * single.c (GOMP_single_copy_start): Use gomp_barrier_wait.
2305         (GOMP_single_copy_end): Likewise.
2306         * team.c (gomp_threads_dock): New.
2307         (gomp_barrier_init, gomp_barrier_destroy): Remove.
2308         (gomp_thread_start): Use gomp_barrier_wait.
2309         (new_team, free_team): Update for gomp_team changes.
2310         (gomp_team_start): Use gomp_barrier_wait and gomp_barrier_reinit.
2311         (gomp_team_end): Use gomp_barrier_wait.
2312         (initialize_team): Update for gomp_thread changes.
2313         * work.c (gomp_work_share_end): Use gomp_barrier_wait_start.
2314         (gomp_work_share_end_nowait): Use atomic ops when available.
2315         * config/linux/bar.c, config/linux/bar.h: New files.
2316         * config/posix/bar.c, config/posix/bar.h: New files.
2318 2005-10-13  Jakub Jelinek  <jakub@redhat.com>
2320         * single.c (GOMP_single_copy_end): Don't segfault if team is NULL.
2321         * testsuite/libgomp.dg/single-2.c: New test.
2323         * testsuite/libgomp.dg/dg.exp (lang_library_path, lang_test_file,
2324         lang_link_flags): Unset, so that they aren't inherited from previously
2325         sourced *.exp.
2327         * testsuite/libgomp.fortran/threadprivate1.f90: New test.
2329 2005-10-12  Richard Henderson  <rth@redhat.com>
2331         * testsuite/lib/libgomp-dg.exp: Set blddir at toplevel.
2332         (libgomp_init): Use lang_test_file, lang_library_path, and
2333         lang_link_flags, set by the subdirectory files.  Add -fopenmp here.
2335         * testsuite/libgomp.fortran/fortran.exp (lang_library_path): New.
2336         (lang_test_file, lang_link_flags): New.
2337         (DEFAULT_FFLAGS, ALWAYS_CFLAGS, multilibs, blddir): Remove.
2339         * testsuite/libgomp.c++/c++.exp, testsuite/libgomp.c++/loop-1.C,
2340         testsuite/libgomp.c++/loop-2.C, testsuite/libgomp.c++/loop-3.C,
2341         testsuite/libgomp.c++/loop-4.C, testsuite/libgomp.c++/nested-1.C,
2342         testsuite/libgomp.c++/parallel-1.C,
2343         testsuite/libgomp.c++/reduction-1.C,
2344         testsuite/libgomp.c++/reduction-2.C,
2345         testsuite/libgomp.c++/reduction-3.C,
2346         testsuite/libgomp.c++/sections-1.C, testsuite/libgomp.c++/shared-1.C,
2347         testsuite/libgomp.c++/shared-2.C, testsuite/libgomp.c++/single-1.C,
2348         testsuite/libgomp.c++/single-2.C, testsuite/libgomp.c++/single-3.C:
2349         New files, largely cribbed from the C testsuite.
2351 2005-10-12  Jakub Jelinek  <jakub@redhat.com>
2353         * testsuite/libgomp.fortran/character1.f90: New test.
2354         * testsuite/libgomp.fortran/character2.f90: New test.
2356         * testsuite/libgomp.dg/nested-1.c: New test.
2357         * testsuite/libgomp.dg/nested-2.c: New test.
2358         * testsuite/libgomp.fortran/do1.f90: New test.
2359         * testsuite/libgomp.fortran/do2.f90: New test.
2361         * testsuite/libgomp.fortran/reference1.f90: New test.
2363 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
2365         * testsuite/libgomp.dg/reduction-1.c: New test.
2366         * testsuite/libgomp.dg/reduction-2.c: New test.
2367         * testsuite/libgomp.dg/reduction-3.c: New test.
2369 2005-10-10  Jakub Jelinek  <jakub@redhat.com>
2371         * testsuite/libgomp.dg/atomic-1.c: New test.
2372         * testsuite/libgomp.dg/atomic-2.c: New test.
2374 2005-10-09  Richard Henderson  <rth@redhat.com>
2376         * critical.c (atomic_lock): New.
2377         (initialize_critical): Initialize it.
2378         (GOMP_atomic_start, GOMP_atomic_end): New.
2379         * libgomp.map: Export them.
2380         * libgomp_g.h: Declare them.
2382         * testsuite/libgomp.dg/atomic-10.c: Move from gcc testsuite.
2384 2005-10-02  Richard Henderson  <rth@redhat.com>
2386         * configure.ac: Move save_CFLAGS hack earlier.  Append -Wall/-Werror
2387         to XCFLAGS instead of CFLAGS.
2389 2005-09-30  Richard Henderson  <rth@redhat.com>
2391         * configure.ac: Determine whether -pthread or -lpthread is needed.
2392         * Makefile.am (libgomp_la_LDFLAGS): Remove explicit -lpthread.
2393         * Makefine.in, configure: Rebuild.
2395 2005-09-28  Richard Henderson  <rth@redhat.com>
2397         * testsuite/libgomp.dg/omp-loop03.c: Fix return code.
2398         * testsuite/libgomp.dg/omp-single-3.c: New test.
2400 2005-09-28  Diego Novillo  <dnovillo@redhat.com>
2402         * testsuite/libgomp.dg/omp-single-2.c: New test.
2403         * testsuite/libgomp.dg/shared-2.c: Fix return code.
2405 2005-09-27  Richard Henderson  <rth@redhat.com>
2407         * testsuite/libgomp.dg/omp-loop03.c: Add initial barrier.
2408         * testsuite/libgomp.dg/omp-parallel-for.c: Specify static schedule.
2410 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
2412         * testsuite/libgomp.dg/omp-loop03.c: New test.
2414 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
2416         * testsuite/libgomp.dg/omp-parallel-for.c: New test.
2418 2005-09-27  Diego Novillo  <dnovillo@redhat.com>
2420         * testsuite/libgomp.dg/omp-single-1.c: New test.
2421         * testsuite/libgomp.dg/shared-1.c: Return 0.
2422         Add prototype for abort.
2423         * testsuite/libgomp.dg/shared-2.c: Likewise.
2425 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
2427         * testsuite/libgomp.fortran/omp_parse3.f90: Fix non-conforming
2428         constructs.
2430 2005-09-26  Diego Novillo  <dnovillo@redhat.com>
2432         * testsuite/libgomp.dg/shared-1.c: New test.
2433         * testsuite/libgomp.dg/shared-2.c: New test.
2435 2005-09-24  Richard Henderson  <rth@redhat.com>
2437         * testsuite/libgomp.dg/omp_workshare3.c: Mark dg-error.
2439 2005-09-24  Richard Henderson  <rth@redhat.com>
2441         * iter.c (gomp_iter_static_next): Round up when computing number
2442         of iterations.  Don't bother distributing a remainder equally.
2444         * testsuite/libgomp.dg/omp-loop01.c (main1): Rename from main.
2445         Don't call srand.  Zero b before testing.
2446         (main): New.
2448 2005-09-24  Jakub Jelinek  <jakub@redhat.com>
2450         * testsuite/libgomp.fortran/omp_atomic1.f90: New test.
2451         * testsuite/libgomp.fortran/omp_atomic2.f90: New test.
2453 2005-09-23  Jakub Jelinek  <jakub@redhat.com>
2455         * testsuite/libgomp.fortran/omp_parse1.f90: Add a test for !$omp do
2456         without !$omp end do, followed immediately by subroutine end.
2458 2005-09-23  Diego Novillo  <dnovillo@redhat.com>
2460         * testsuite/libgomp.dg/omp-parallel-if.c: New test.
2462 2005-09-22  Richard Henderson  <rth@redhat.com>
2464         * critical.c (GOMP_critical_name_start): Change argument to void**.
2465         Reuse the pointer space if the mutex fits.
2466         (GOMP_critical_name_end): Likewise.
2467         (initialize_critical): Don't define if GOMP_MUTEX_INIT_0.
2468         * libgomp_g.h (GOMP_critical_name_start): Update decl.
2469         (GOMP_critical_name_end): Likewise.
2470         * config/linux/mutex.h (GOMP_MUTEX_INIT_0): New.
2471         * config/posix/mutex.h (GOMP_MUTEX_INIT_0): New.
2473 2005-09-20  Richard Henderson  <rth@redhat.com>
2475         * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
2476         (create_lock_lock): New.
2477         (initialize_critical): Initialize it.
2478         * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
2479         * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
2481 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
2483         * testsuite/libgom.dg/omp-loop01.c: Include stdio.h.
2485 2005-09-20  Diego Novillo  <dnovillo@redhat.com>
2487         * testsuite/libgomp.dg/omp-loop01.c: New test.
2488         * testsuite/libgomp.dg/omp-loop02.c: New test.
2490 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
2492         * configure.ac (AC_PROG_FC): Add.
2493         (USE_FORTRAN): New automake conditional.
2494         * configure: Rebuilt.
2495         * Makefile.am (libgomp_la_SOURCES): Add fortran.c.
2496         (nodist_include_HEADERS): Add omp_lib.h, omp_lib.f90 and libgomp_f.h.
2497         If USE_FORTRAN, add also omp_lib.mod and omp_lib_kinds.mod.
2498         Add rules to build them.
2499         * Makefile.in: Rebuilt.
2500         * mkomp_h.pl: Compute and replace also OMP_LOCK_KIND and
2501         OMP_NEST_LOCK_KIND.
2502         * libgomp.map: Add Fortran wrappers.
2503         * libgomp_f.h.in: New file.
2504         * omp_lib.h.in: New file.
2505         * omp_lib.f90.in: New file.
2506         * fortran.c: New file.
2507         * testsuite/lib/libgomp-dg.exp: Load a few more .exp files.
2508         Append libgfortran directory to LD_LIBRARY_PATH if it exists.
2509         Add -Lpath_to_libgfortran and -lgfortran -lgfortranbegin if
2510         libgfortran has been built.
2511         * testsuite/libgomp.fortran/fortran.exp: New file.
2512         * testsuite/libgomp.fortran/omp_cond1.f: New test.
2513         * testsuite/libgomp.fortran/omp_cond2.f: New test.
2514         * testsuite/libgomp.fortran/omp_cond3.F90: New test.
2515         * testsuite/libgomp.fortran/omp_cond4.F90: New test.
2516         * testsuite/libgomp.fortran/omp_hello.f: New test.
2517         * testsuite/libgomp.fortran/omp_orphan.f: New test.
2518         * testsuite/libgomp.fortran/omp_parse1.f90: New test.
2519         * testsuite/libgomp.fortran/omp_parse2.f90: New test.
2520         * testsuite/libgomp.fortran/omp_parse3.f90: New test.
2521         * testsuite/libgomp.fortran/omp_parse4.f90: New test.
2522         * testsuite/libgomp.fortran/omp_reduction.f: New test.
2523         * testsuite/libgomp.fortran/omp_workshare1.f: New test.
2524         * testsuite/libgomp.fortran/omp_workshare2.f: New test.
2526 2005-08-30  Richard Henderson  <rth@redhat.com>
2528         * loop.c (GOMP_loop_static_start): Provide fallback wrapper
2529         function for when aliases are not usable.
2530         (GOMP_loop_dynamic_start, GOMP_loop_guided_start,
2531         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
2532         GOMP_loop_ordered_guided_start, GOMP_loop_static_next,
2533         GOMP_loop_dynamic_next, GOMP_loop_guided_next,
2534         GOMP_loop_ordered_static_next, GOMP_loop_ordered_dynamic_next,
2535         GOMP_loop_ordered_guided_next): Likewise.
2536         * ordered.c (GOMP_ordered_start): Likewise.
2538 2005-08-01  Diego Novillo  <dnovillo@redhat.com>
2540         * testsuite/libgomp.dg/dg.exp: Use -O2 for now.
2541         * testsuite/libgomp.dg/omp_hello.c: Fix return code
2542         * testsuite/libgomp.dg/omp_matvec.c: Likewise.
2543         * testsuite/libgomp.dg/omp_orphan.c: Likewise
2544         * testsuite/libgomp.dg/omp_reduction.c: Likewise
2545         * testsuite/libgomp.dg/omp_workshare1.c: Likewise
2546         * testsuite/libgomp.dg/omp_workshare2.c: Likewise
2547         * testsuite/libgomp.dg/omp_workshare3.c: Likewise
2548         * testsuite/libgomp.dg/omp_workshare4.c: Likewise
2550 2005-07-07  Eric Christopher  <echristo@redhat.com>
2551             Diego Novillo  <dnovillo@redhat.com>
2553         * testsuite/libgomp.dg/dg.exp: Add -fopenmp to DEFAULT_CFLAGS.
2554         * testsuite/libgomp.dg/omp_hello.c: Add standard includes, fix
2555         up code.
2556         * testsuite/libgomp.dg/omp_matvec.c: Ditto.
2557         * testsuite/libgomp.dg/omp_orphan.c: Ditto.
2558         * testsuite/libgomp.dg/omp_reduction.c: Ditto.
2559         * testsuite/libgomp.dg/omp_workshare1.c: Ditto.
2560         * testsuite/libgomp.dg/omp_workshare2.c: Ditto.
2561         * testsuite/libgomp.dg/omp_workshare3.c: Ditto.
2562         * testsuite/libgomp.dg/omp_workshare4.c: Ditto.
2564 2005-06-13  Diego Novillo  <dnovillo@redhat.com>
2566         * TOPLEVEL.patch: Remove.
2568 2005-05-16  Richard Henderson  <rth@redhat.com>
2570         * configure.ac: Test for clock_gettime.
2571         * config.h.in, configure: Rebuild.
2572         * config/posix/time.c: Use recommended TIME_WITH_SYS_TIME pattern.
2573         (omp_get_wtime): Use clock_gettime if available.
2574         (omp_get_wtick): Use clock_getres if available.
2576 2005-05-11  Richard Henderson  <rth@redhat.com>
2578         * config/linux/ia64/futex.h: New file.
2579         * configure.tgt: Use it.
2581         * team.c (gomp_barrier_init, gomp_barrier_destroy): Mark inline.
2583 2005-05-07  Richard Henderson  <rth@redhat.com>
2585         * config/linux/powerpc/futex.h: New file.
2586         * configure.tgt: Use it.
2588         * config/linux/i486/futex.h: Merge ...
2589         * config/linux/x86_64/futex.h: ... into ...
2590         * config/linux/x86/futex.h: ... here.
2591         * configure.tgt: Update to match.
2593 2005-05-06  Richard Henderson  <rth@redhat.com>
2595         * config/linux/alpha/futex.h: Conditionally define SYS_futex.
2596         * config/linux/i486/futex.h: Likewise.
2597         * config/linux/x86_64/futex.h: Likewise.
2599         * config/linux/lock.c: New file.
2600         * config/linux/omp-lock.h: New file.
2602         * critical.c, env.h: Don't include omp.h
2603         * config/posix/lock.c: Include libgomp.h instead of omp.h.
2604         * config/posix/time.c: Likewise.
2605         * config/posix/omp-lock.h: New file.
2606         * libgomp.h: Include omp-lock.h and omp.h.
2607         * Makefile.am (nodist_include_HEADERS): New.
2608         (omp.h): New rule.
2609         * configure.ac (PERL): New.
2610         * mkomp_h.pl: New file.
2611         * omp.h.in: Rename from omp.h; replace omp_lock_t and omp_nest_lock_t
2612         with templates.
2613         * Makefile.in, configure, testsuite/Makefile.in: Rebuild.
2615         * testsuite/lib/libgomp-dg.exp (libgomp_init): Add include into
2616         build directory.  Re-add -march=i486 hack.
2618         * testsuite/lib/libgomp-dg.exp (libgomp_compile_flags): Remove.
2619         (libgomp_link_flags): Remove.
2620         (libgomp_initialized): Remove.
2621         (libgomp_init): Don't protect from reinitialization.  Copy code
2622         from libstdc++ for getting the multilib set correctly.
2624 2005-05-05  Richard Henderson  <rth@redhat.com>
2626         * config/linux/alpha/futex.h: New file.
2627         * configure.tgt (alpha*-*-linux*): Use it.
2629         * config/posix/mutex.c: New file.
2630         * config/posix/sem.c: Use libgomp.h.
2632         * configure.tgt (x86_64-linux): Also test CC for -m32.
2633         * config/linux/x86_64/futex.h (futex_wait): Fix r10 usage.
2635         * testsuite/lib/libgomp-dg.exp (libgomp_link_flags): Add /
2636         after $gccpath.
2638         * Makefile.am (SUBDIRS): New.
2639         (libgomp_la_LDFLAGS): Add -lpthread.
2640         * configure.ac (AM_INIT_AUTOMAKE): Enable dependencies.
2641         * Makefile.in, aclocal.m4, config.h.in, configure: Rebuild.
2643         * libgomp_g.h: New file.
2644         * libgomp.h: Split out all public declarations to libgomp_g.h.
2645         Use pragma GCC visibility instead of ATTRIBUTE_HIDDEN.
2646         * config/linux/mutex.h: Remove ATTRIBUTE_HIDDEN.
2647         * config/linux/sem.h: Likewise.
2648         * config/posix/sem.h: Likewise.
2650         * Makefile.am (AM_LDFLAGS): New.
2651         (libgomp_version_script): Split out from ...
2652         (libgomp_la_LDFLAGS): ... here.
2653         (libgomp_version_info): New.
2654         * acinclude.m4 (LIBGOMP_CHECK_TLS): Use LIBGOMP_ENABLE.
2655         (LIBGOMP_ENABLE): New.
2656         (LIBGOMP_CHECK_LINKER_FEATURES): New.
2657         (LIBGOMP_ENABLE_SYMVERS): New.
2658         * configure.ac (AC_INIT): Version 1.0.
2659         (enable-version-specific-runtime-libs): Use LIBGOMP_ENABLE.
2660         (enable-linux-futex): Likewise.  Rename from enable-futex.
2661         (libtool_VERSION): New.
2662         (LIBGOMP_ENABLE_SYMVERS): Use it.
2663         * configure.tgt: Check with_gnu_ld wrt have_tls optimizations.
2664         * Makefile.in, aclocal.m4, configure: Rebuild.
2666         * config/linux/mutex.c: Include libgomp.h instead of mutex.h.
2667         (gomp_mutex_unlock_slow): Fix typo.
2668         * config/linux/sem.c: Similarly.
2669         (gomp_sem_post_slow): Fix typo.
2670         * config/linux/sem.h (gomp_sem_post_slow): Fix typo.
2671         * config/linux/i486/futex.h: Remove USE_LINUX_SYSENTER code.
2672         [__PIC__] (sys_futex0): Don't use tmp output in asm.
2674         * Makefile.am (AM_CFLAGS): Expand with XCFLAGS.
2675         (libgomp_la_LDFLAGS): Add top_srcdir to path.
2676         * acinclude.m4: Copy libtool.m4 stuff from libgfortran.
2677         * configure.ac: Check for getloadavg.  Substitute XCFLAGS and
2678         XLDFLAGS.  Add XCFLAGS to CFLAGS around LIBGOMP_CHECK_SYNC_BUILTINS.
2679         * configure.tgt: Set XCFLAGS and XLDFLAGS instead of CFLAGS and
2680         LDFLAGS.  Pull enable_futex check to top-level.
2681         * libgomp.h: Fix sem.h and mutex.h includes.  Define ATTRIBUTE_HIDDEN.
2682         * Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
2684         First attempt at real configury.
2685         * Makefile, config.h: Remove file.
2686         * Makefile.am, Makefile.in: New file.
2687         * acinclude.m4 aclocal.m4: New file.
2688         * configure.ac, configure.tgt, configure: New file.
2690         * config/posix/lock.c: Rename from sys-lock.c.
2691         * config/posix/mutex.h: Rename from sys-mutex.h.
2692         * config/posix/sem.c: Rename from sys-sem.c.
2693         * config/posix/sem.h: Rename from sys-sem.h.
2694         * config/posix/proc.c: Rename from sys-proc.c.
2695         * config/posix/time.c: Rename from sys-proc.c.
2697         * config/linux/mutex.c: New file.
2698         * config/linux/mutex.h: New file.
2699         * config/linux/sem.c: New file.
2700         * config/linux/sem.h: New file.
2701         * config/linux/i486/futex.h: New file.
2702         * config/linux/x86_64/futex.h: New file.
2704 2005-05-04  Richard Henderson  <rth@redhat.com>
2706         * iter.c (gomp_iter_dynamic_next, gomp_iter_guided_next): New.
2707         * libgomp.h: Declare them.
2708         * loop.c (gomp_loop_dynamic_start, gomp_loop_guided_start,
2709         gomp_loop_dynamic_next, gomp_loop_guided_next): Use them.
2711 2005-05-04  Richard Henderson  <rth@redhat.com>
2713         * libgomp-1 code drop
2715 2005-05-04  Richard Henderson  <rth@redhat.com>
2717         * iter.c (gomp_iter_static_next): Return tri-state on 0.
2718         * ordered.c (gomp_ordered_static_next): Remove not_last argument.
2719         * libgomp.h (struct gomp_team_state): Make static_trip unsigned.
2720         (gomp_iter_static_next): Update.
2721         (gomp_ordered_static_next): Update.
2722         * loop.c (gomp_loop_static_start): Update for gomp_iter_static_next.
2723         (gomp_loop_ordered_static_start): Likewise.  Exit early for a
2724         totally empty range.
2725         (gomp_loop_ordered_static_next): Refine test for calling
2726         gomp_ordered_static_next.
2727         * testsuite/ordered-1.c: Add case for more threads than iterations.
2729         * iter.c (gomp_iter_runtime_next_locked): Remove.
2730         * loop.c (gomp_loop_static_start, gomp_loop_dynamic_start,
2731         gomp_loop_guided_start, gomp_loop_ordered_static_start,
2732         gomp_loop_ordered_dynamic_start, gomp_loop_ordered_guided_start,
2733         gomp_loop_static_next, gomp_loop_dynamic_next, gomp_loop_guided_next,
2734         gomp_loop_ordered_static_next, gomp_loop_ordered_dynamic_next,
2735         gomp_loop_ordered_guided_next): Downcase name, make static, add
2736         an external alias with the old name.
2737         (GOMP_loop_runtime_start, GOMP_loop_ordered_runtime_start,
2738         GOMP_loop_runtime_next, GOMP_loop_ordered_runtime_next): Use a
2739         switch and call one of the above static functions.
2740         * libgomp.h: Update.
2742         * work.c (gomp_work_share_start): Lock the mutex for !first too.
2743         * loop.c (GOMP_loop_static_start, GOMP_loop_dynamic_start,
2744         GOMP_loop_guided_start, GOMP_loop_runtime_start,
2745         GOMP_loop_ordered_static_start, GOMP_loop_ordered_dynamic_start,
2746         GOMP_loop_ordered_guided_start): Update to match.
2747         * sections.c (GOMP_sections_start): Likewise.
2748         * single.c (GOMP_single_start, GOMP_single_copy_start): Likewise.
2750         * ordered.c (gomp_ordered_first, gomp_ordered_last, gomp_ordered_next,
2751         gomp_ordered_static_init, gomp_ordered_static_next): Rename s/_loop//.
2752         Use bounds check instead of modulus.
2753         (gomp_ordered_sync): Split out of GOMP_ordered_start.
2754         (gomp_ordered_last): Don't sync with ordered_owner here.
2755         (gomp_ordered_next): Likewise.
2756         (gomp_ordered_static_loop_next): Likewise.
2757         * loop.c, libgomp.h: Update to match.
2759         * libgomp.h (GOMP_barrier): Declare.
2761         * testsuite/barrier-1.c: New file.
2762         * testsuite/critical-1.c: New file.
2763         * testsuite/ordered-2.c: New file.
2764         * testsuite/ordered-1.c: New file.
2765         * testsuite/sections-1.c: New file.
2766         * testsuite/single-1.c: New file.
2767         * testsuite/Makefile (TESTS): Add them.
2769 2005-05-04  Richard Henderson  <rth@redhat.com>
2771         * libgomp.h (struct gomp_work_share): Add ordered_owner.
2772         * loop.c (GOMP_loop_static_start): If not the startup thread,
2773         acquire the mutex to wait for initialization complete.
2774         (GOMP_loop_ordered_static_start): Likewise.
2775         (GOMP_loop_ordered_runtime_start): Likewise.
2776         (GOMP_loop_ordered_static_first): Remove.
2777         (GOMP_loop_ordered_dynamic_first): Remove.
2778         (GOMP_loop_ordered_guided_first): Remove.
2779         (GOMP_loop_ordered_runtime_first): Remove.
2780         * ordered.c (gomp_ordered_loop_first): Post to own release when
2781         we're the first thread.
2782         (gomp_ordered_loop_last): Wait on release if not owner.
2783         (gomp_ordered_loop_next): Likewise.
2784         (gomp_ordered_static_loop_init): New.
2785         (gomp_ordered_static_loop_next): Use ordered_owner.
2786         (GOMP_ordered_start): Likewise.
2787         * work.c (gomp_new_work_share): Initialize ordered_owner.
2789 2005-05-03  Richard Henderson  <rth@redhat.com>
2791         * Makefile (OPT): New.
2792         (CFLAGS): Use it.
2794         * loop.c (GOMP_loop_end, GOMP_loop_end_nowait): New.
2795         * sections.c (GOMP_sections_end, GOMP_sections_end_nowait): New.
2796         * libgomp.h, libgomp.map, NOTES: Update to match.
2798         * team.c (struct gomp_thread_start_data): Remove ts, fn, data.
2799         Add initialized and thr members.
2800         (gomp_thread_start): Pause when initially spawned to wait for
2801         the whole team to be created.
2802         (gomp_team_start): Release team members at the end.
2804         * testsuite/loop-1.c (N): New.  Use it instead of hardcoded 100.
2805         (f_foo_1): Use GOMP_loop_end.
2806         (f_foo_2): Use GOMP_loop_end_nowait.
2808         * testsuite/loop-2.c: New file.
2809         * testsuite/Makefile (TESTS): Add it.
2811 2005-05-03  Richard Henderson  <rth@redhat.com>
2813         * iter.c (gomp_iter_static_next): Fix overflow check typo.
2814         (gomp_iter_dynamic_next_locked): Fix overflow check thinko.
2815         * team.c (new_team): Initialize oldest_live_gen to 1 if no
2816         initial work_share.
2818         * testsuite/Makefile: New file.
2819         * testsuite/loop-1.c: New file.
2821 2005-05-03  Richard Henderson  <rth@redhat.com>
2823         Initial implementation and checkin.