Generally link to libgomp for -ftree-parallelize-loops=*.

gcc/
	* config/arc/arc.h (LINK_COMMAND_SPEC): For
	-ftree-parallelize-loops=*, link to libgomp and its dependencies.
	* config/ia64/hpux.h (LIB_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
	* gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's
	dependencies.
	libgomp/
	* libgomp.spec.in: Update comment about libgomp's dependencies.
	* configure.ac: Likewise.
	* configure: Regenerate.

From-SVN: r204517
This commit is contained in:
Thomas Schwinge 2013-11-07 16:07:34 +01:00 committed by Thomas Schwinge
parent 7190fdc190
commit de14871c88
10 changed files with 37 additions and 13 deletions

View File

@ -1,3 +1,13 @@
2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
* config/arc/arc.h (LINK_COMMAND_SPEC): For
-ftree-parallelize-loops=*, link to libgomp and its dependencies.
* config/ia64/hpux.h (LIB_SPEC): Likewise.
* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
* gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's
dependencies.
2013-11-07 Jakub Jelinek <jakub@redhat.com>
* tree-ssa-loop-niter.c: Include tree-ssanames.h.

View File

@ -174,7 +174,8 @@ along with GCC; see the file COPYING3. If not see
%(linker) %l " LINK_PIE_SPEC "%X %{o*} %{A} %{d} %{e*} %{m} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{x} %{z} %{Z} %{!A:%{!nostdlib:%{!nostartfiles:%S}}}\
%{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
%{fopenmp:%:include(libgomp.spec)%(link_gomp)} %(mflib)\
%{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
%(mflib)\
%{fprofile-arcs|fprofile-generate|coverage:-lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
%{!A:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} }}}}}}"

View File

@ -92,7 +92,7 @@ do { \
#undef LIB_SPEC
#define LIB_SPEC \
"%{!shared: \
%{mt|pthread:%{fopenmp:-lrt} -lpthread} \
%{mt|pthread:%{fopenmp|ftree-parallelize-loops=*:-lrt} -lpthread} \
%{p:%{!mlp64:-L/usr/lib/hpux32/libp} \
%{mlp64:-L/usr/lib/hpux64/libp} -lprof} \
%{pg:%{!mlp64:-L/usr/lib/hpux32/libp} \

View File

@ -120,7 +120,8 @@ along with GCC; see the file COPYING3. If not see
#undef LIB_SPEC
#define LIB_SPEC \
"%{!shared:\
%{fopenmp:%{static:-a archive_shared} -lrt %{static:-a archive}}\
%{fopenmp|ftree-parallelize-loops=*:%{static:-a archive_shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a archive_shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}\

View File

@ -58,19 +58,22 @@ along with GCC; see the file COPYING3. If not see
#if ((TARGET_DEFAULT | TARGET_CPU_DEFAULT) & MASK_GNU_LD)
#define LIB_SPEC \
"%{!shared:\
%{!p:%{!pg:%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{!p:%{!pg:%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
%{p:%{!pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
-lprof %{static:-a archive}\
%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
%{pg:%{static:%{!mhp-ld:-a shared}%{mhp-ld:-a archive_shared}}\
-lgprof %{static:-a archive}\
%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
@ -78,19 +81,22 @@ along with GCC; see the file COPYING3. If not see
#else
#define LIB_SPEC \
"%{!shared:\
%{!p:%{!pg:%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{!p:%{!pg:%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
%{p:%{!pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
-lprof %{static:-a archive}\
%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\
%{pg:%{static:%{mgnu-ld:-a shared}%{!mgnu-ld:-a archive_shared}}\
-lgprof %{static:-a archive}\
%{fopenmp:%{static:-a shared} -lrt %{static:-a archive}}\
%{fopenmp|ftree-parallelize-loops=*:%{static:-a shared} -lrt\
%{static:-a archive}}\
%{mt|pthread:-lpthread} -lc\
%{static:%{!nolibdld:-a shared -ldld -a archive -lc}\
%{!mt:%{!pthread:-a shared -lc -a archive}}}}}\

View File

@ -924,7 +924,7 @@ static const char *const multilib_defaults_raw[] = MULTILIB_DEFAULTS;
#define DRIVER_SELF_SPECS ""
#endif
/* Adding -fopenmp should imply pthreads. This is particularly important
/* Linking to libgomp implies pthreads. This is particularly important
for targets that use different start files and suchlike. */
#ifndef GOMP_SELF_SPECS
#define GOMP_SELF_SPECS "%{fopenmp|ftree-parallelize-loops=*: -pthread}"

View File

@ -1,3 +1,9 @@
2013-11-07 Thomas Schwinge <thomas@codesourcery.com>
* libgomp.spec.in: Update comment about libgomp's dependencies.
* configure.ac: Likewise.
* configure: Regenerate.
2013-10-16 Tobias Burnus <burnus@net-b.de>
* libgomp.texi: (Runtime Library Routines): Update references for

2
libgomp/configure vendored
View File

@ -16154,7 +16154,7 @@ else
fi
# Set up the set of libraries that we need to link against for libgomp.
# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
# Note that the GOMP_SELF_SPEC in gcc.c may force -pthread,
# which will force linkage against -lpthread (or equivalent for the system).
# That's not 100% ideal, but about the best we can do easily.
if test $enable_shared = yes; then

View File

@ -274,7 +274,7 @@ else
fi
# Set up the set of libraries that we need to link against for libgomp.
# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
# Note that the GOMP_SELF_SPEC in gcc.c may force -pthread,
# which will force linkage against -lpthread (or equivalent for the system).
# That's not 100% ideal, but about the best we can do easily.
if test $enable_shared = yes; then

View File

@ -1,3 +1,3 @@
# This spec file is read by gcc when linking. It is used to specify the
# standard libraries we need in order to link with -fopenmp.
# standard libraries we need in order to link with libgomp.
*link_gomp: @link_gomp@