re PR c/43553 (libgcc built with -DHAVE_CC_TLS against xgcc when emutls in use)
authorJack Howarth <howarth@bromo.med.uc.edu>
Tue, 30 Mar 2010 13:08:52 +0000 (13:08 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 30 Mar 2010 13:08:52 +0000 (13:08 +0000)
2010-03-30  Jack Howarth <howarth@bromo.med.uc.edu>

PR c/43553
* Makefile.in (INTERNAL_CFLAGS): Add @set_use_emutls@.
* configure.ac: Use GCC_CHECK_EMUTLS to see if emulated TLS
is used and substitute set_use_emutls.
* configure: Regenerated.

From-SVN: r157821

libgcc/ChangeLog
libgcc/Makefile.in
libgcc/configure
libgcc/configure.ac

index c8726ab312fb5d10206fb31bf6a8250a8c051a4d..677753efc07458d0d0ad733c215ea31c89ffd52c 100644 (file)
@@ -1,3 +1,11 @@
+2010-03-30  Jack Howarth <howarth@bromo.med.uc.edu>
+
+       PR c/43553
+       * Makefile.in (INTERNAL_CFLAGS): Add @set_use_emutls@.
+       * configure.ac: Use GCC_CHECK_EMUTLS to see if emulated TLS
+       is used and substitute set_use_emutls.
+       * configure: Regenerated.
+
 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
 
        * config/lm32/t-lm32: Remove misplaced MULTILIB_OPTIONS.
index 938d07083b4a0732061ffcaccc2fcbb8e2eb0e11..080aae2870787e388d11dd50521d54a2fef4132c 100644 (file)
@@ -226,7 +226,7 @@ override CFLAGS := $(filter-out -fprofile-generate -fprofile-use,$(CFLAGS))
 # will usually contain -g, so for the moment CFLAGS goes first.  We must
 # include CFLAGS - that's where multilib options live.
 INTERNAL_CFLAGS = $(CFLAGS) $(LIBGCC2_CFLAGS) $(HOST_LIBGCC2_CFLAGS) \
-                 $(INCLUDES) @set_have_cc_tls@
+                 $(INCLUDES) @set_have_cc_tls@ @set_use_emutls@
 
 MULTIDIR := $(shell $(CC) $(CFLAGS) -print-multi-directory)
 MULTIOSDIR := $(shell $(CC) $(CFLAGS) -print-multi-os-directory)
index b6c003cf94b5b5972c2fde76432f560e35d9f179..f522427669300f43d960a29b2f4583eff5e278f7 100644 (file)
@@ -556,6 +556,7 @@ LIBOBJS
 asm_hidden_op
 extra_parts
 tmake_file
+set_use_emutls
 set_have_cc_tls
 vis_hide
 fixed_point
@@ -3811,6 +3812,42 @@ if test "$enable_tls $gcc_cv_have_cc_tls" = "yes yes"; then
 fi
 
 
+# See if we have emulated thread-local storage.
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the thread-local storage support is from emutls" >&5
+$as_echo_n "checking whether the thread-local storage support is from emutls... " >&6; }
+if test "${gcc_cv_use_emutls+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+
+    gcc_cv_use_emutls=no
+    echo '__thread int a; int b; int main() { return a = b; }' > conftest.c
+    if { ac_try='${CC-cc} -Werror -S -o conftest.s conftest.c 1>&5'
+  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+      if grep __emutls_get_address conftest.s > /dev/null; then
+       gcc_cv_use_emutls=yes
+      fi
+    fi
+    rm -f conftest.*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_use_emutls" >&5
+$as_echo "$gcc_cv_use_emutls" >&6; }
+  if test "$gcc_cv_use_emutls" = "yes" ; then
+
+$as_echo "#define USE_EMUTLS 1" >>confdefs.h
+
+  fi
+set_use_emutls=
+if test "$enable_tls $gcc_cv_use_emutls" = "yes yes"; then
+  set_use_emutls="-DUSE_EMUTLS"
+fi
+
+
 # Conditionalize the makefile for this target machine.
 tmake_file_=
 for f in ${tmake_file}
index e735019dfc78745ccb698d6a66576de16d6e419a..ce467dda598555151a56fbf1907401accf9f96d6 100644 (file)
@@ -238,6 +238,14 @@ if test "$enable_tls $gcc_cv_have_cc_tls" = "yes yes"; then
 fi
 AC_SUBST(set_have_cc_tls)
 
+# See if we have emulated thread-local storage.
+GCC_CHECK_EMUTLS
+set_use_emutls=
+if test "$enable_tls $gcc_cv_use_emutls" = "yes yes"; then
+  set_use_emutls="-DUSE_EMUTLS"
+fi
+AC_SUBST(set_use_emutls)
+
 # Conditionalize the makefile for this target machine.
 tmake_file_=
 for f in ${tmake_file}