summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-13 21:46:38 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-02-13 21:46:38 +0000
commit9a8d01ee90eeb9a2ec0ea7aac9b8925c1e4ac55e (patch)
treeb55e6dc77c9621f5c9185ca1566529c83dd91063
parent49ba6a35776ad54d2b9be833992b49454a09baac (diff)
downloadppe42-gcc-9a8d01ee90eeb9a2ec0ea7aac9b8925c1e4ac55e.tar.gz
ppe42-gcc-9a8d01ee90eeb9a2ec0ea7aac9b8925c1e4ac55e.zip
gcc/
* gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm. (GTM_SELF_SPECS): Define if not already defined. (driver_self_specs): Add GTM_SELF_SPECS. * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm. (GTM_SELF_SPECS): Define. * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise. * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise. libitm/ * configure.ac (link_itm): Fix comment. * configure: Regenerate. * testsuite/lib/libitm.exp: Do not pass -litm for the link. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184174 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/darwin.h4
-rw-r--r--gcc/config/i386/cygwin.h2
-rw-r--r--gcc/config/i386/mingw32.h2
-rw-r--r--gcc/gcc.c8
-rw-r--r--libitm/ChangeLog6
-rw-r--r--libitm/configure2
-rw-r--r--libitm/configure.ac2
-rw-r--r--libitm/testsuite/lib/libitm.exp1
9 files changed, 33 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 7a469e46648..22777f1610e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2012-02-13 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
+ (GTM_SELF_SPECS): Define if not already defined.
+ (driver_self_specs): Add GTM_SELF_SPECS.
+ * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
+ (GTM_SELF_SPECS): Define.
+ * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
+ * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
+
2012-02-13 Jakub Jelinek <jakub@redhat.com>
* cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index 70ac80c19ac..24253320208 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -183,6 +183,8 @@ extern GTY(()) int darwin_ms_struct;
%{L*} %(link_libgcc) %o %{fprofile-arcs|fprofile-generate*|coverage:-lgcov} \
%{fopenmp|ftree-parallelize-loops=*: \
%{static|static-libgcc|static-libstdc++|static-libgfortran: libgomp.a%s; : -lgomp } } \
+ %{fgnu-tm: \
+ %{static|static-libgcc|static-libstdc++|static-libgfortran: libitm.a%s; : -litm } } \
%{!nostdlib:%{!nodefaultlibs:\
%(link_ssp) %(link_gcc_c_sequence)\
}}\
@@ -915,6 +917,8 @@ void add_framework_path (char *);
#undef GOMP_SELF_SPECS
#define GOMP_SELF_SPECS ""
+#undef GTM_SELF_SPECS
+#define GTM_SELF_SPECS ""
/* Darwin disables section anchors by default.
They should be enabled per arch where support exists in that arch. */
diff --git a/gcc/config/i386/cygwin.h b/gcc/config/i386/cygwin.h
index d84c5c3aed8..5cf7f9cf51d 100644
--- a/gcc/config/i386/cygwin.h
+++ b/gcc/config/i386/cygwin.h
@@ -126,6 +126,8 @@ along with GCC; see the file COPYING3. If not see
and the -pthread flag is not recognized. */
#undef GOMP_SELF_SPECS
#define GOMP_SELF_SPECS ""
+#undef GTM_SELF_SPECS
+#define GTM_SELF_SPECS ""
/* This matches SHLIB_SONAME and SHLIB_SOVERSION in t-cygwin. */
#if DWARF2_UNWIND_INFO
diff --git a/gcc/config/i386/mingw32.h b/gcc/config/i386/mingw32.h
index 00dcca60bb0..4fdef2664bd 100644
--- a/gcc/config/i386/mingw32.h
+++ b/gcc/config/i386/mingw32.h
@@ -187,6 +187,8 @@ do { \
#undef GOMP_SELF_SPECS
#define GOMP_SELF_SPECS "%{fopenmp|ftree-parallelize-loops=*: " \
"-mthreads -pthread}"
+#undef GTM_SELF_SPECS
+#define GTM_SELF_SPECS "%{fgnu-tm:-mthreads -pthread}"
/* mingw32 atexit function is safe to use in shared libraries. Use it
to register C++ static destructors. */
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 6f98fc9b9d6..c7c8c053ba3 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -675,6 +675,7 @@ proper position among the other output files. */
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\
%{static:} %{L*} %(mfwrap) %(link_libgcc) %o\
%{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\
+ %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\
%(mflib) " STACK_SPLIT_SPEC "\
%{fprofile-arcs|fprofile-generate*|coverage:-lgcov}\
%{!nostdlib:%{!nodefaultlibs:%(link_ssp) %(link_gcc_c_sequence)}}\
@@ -839,9 +840,14 @@ static const char *const multilib_defaults_raw[] = MULTILIB_DEFAULTS;
#define GOMP_SELF_SPECS "%{fopenmp|ftree-parallelize-loops=*: -pthread}"
#endif
+/* Likewise for -fgnu-tm. */
+#ifndef GTM_SELF_SPECS
+#define GTM_SELF_SPECS "%{fgnu-tm: -pthread}"
+#endif
+
static const char *const driver_self_specs[] = {
"%{fdump-final-insns:-fdump-final-insns=.} %<fdump-final-insns",
- DRIVER_SELF_SPECS, CONFIGURE_SPECS, GOMP_SELF_SPECS
+ DRIVER_SELF_SPECS, CONFIGURE_SPECS, GOMP_SELF_SPECS, GTM_SELF_SPECS
};
#ifndef OPTION_DEFAULT_SPECS
diff --git a/libitm/ChangeLog b/libitm/ChangeLog
index 2bcb5ebaeb6..9ce9ba71a9a 100644
--- a/libitm/ChangeLog
+++ b/libitm/ChangeLog
@@ -1,3 +1,9 @@
+2012-02-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * configure.ac (link_itm): Fix comment.
+ * configure: Regenerate.
+ * testsuite/lib/libitm.exp: Do not pass -litm for the link.
+
2012-01-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR libitm/51822
diff --git a/libitm/configure b/libitm/configure
index 5fc8703cd9c..47c7b0cd484 100644
--- a/libitm/configure
+++ b/libitm/configure
@@ -17463,7 +17463,7 @@ else
fi
# Set up the set of libraries that we need to link against for libitm.
-# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
+# Note that the GTM_SELF_SPECS in gcc.c will force -pthread for -fgnu-tm,
# 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
diff --git a/libitm/configure.ac b/libitm/configure.ac
index 7b54371fa88..2cce2b102f5 100644
--- a/libitm/configure.ac
+++ b/libitm/configure.ac
@@ -268,7 +268,7 @@ else
fi
# Set up the set of libraries that we need to link against for libitm.
-# Note that the GOMP_SELF_SPEC in gcc.c will force -pthread for -fopenmp,
+# Note that the GTM_SELF_SPECS in gcc.c will force -pthread for -fgnu-tm,
# 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
diff --git a/libitm/testsuite/lib/libitm.exp b/libitm/testsuite/lib/libitm.exp
index 74f7f80859a..b2556d14091 100644
--- a/libitm/testsuite/lib/libitm.exp
+++ b/libitm/testsuite/lib/libitm.exp
@@ -140,7 +140,6 @@ proc libitm_init { args } {
lappend ALWAYS_CFLAGS "ldflags=-L${blddir}/.libs"
}
lappend ALWAYS_CFLAGS "additional_flags=-I${srcdir}/.."
- lappend ALWAYS_CFLAGS "ldflags=-litm"
# We use atomic operations in the testcases to validate results.
if { ([istarget i?86-*-*] || [istarget x86_64-*-*])
OpenPOWER on IntegriCloud