aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgcc/ChangeLog8
-rw-r--r--libgcc/Makefile.in2
-rw-r--r--libgcc/configure37
-rw-r--r--libgcc/configure.ac8
4 files changed, 54 insertions, 1 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index c8726ab..677753e 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -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.
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
index 938d070..080aae2 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
@@ -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)
diff --git a/libgcc/configure b/libgcc/configure
index b6c003c..f522427 100644
--- a/libgcc/configure
+++ b/libgcc/configure
@@ -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}
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
index e735019..ce467dd 100644
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -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}