aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog6
-rwxr-xr-xgold/configure27
-rw-r--r--gold/configure.ac14
3 files changed, 45 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 345ec62..4e39648 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-29 Ian Lance Taylor <iant@google.com>
+
+ * configure.ac: Set the MCMODEL_MEDIUM conditional to false if
+ using a version of gcc before 4.1.
+ * configure: Rebuild.
+
2009-12-28 Chris Demetriou <cgd@google.com>
* attributes.cc (Output_attributes_section_data::do_write): Use
diff --git a/gold/configure b/gold/configure
index 1bb2d3d..4817e44 100755
--- a/gold/configure
+++ b/gold/configure
@@ -6045,7 +6045,32 @@ else
fi
- if test "$target_cpu" = "x86_64"; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc >= 4.1" >&5
+$as_echo_n "checking for gcc >= 4.1... " >&6; }
+if test "${gold_cv_prog_gcc41+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if !defined __GNUC__
+error
+#elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)
+error
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gold_cv_prog_gcc41=yes
+else
+ gold_cv_prog_gcc41=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gold_cv_prog_gcc41" >&5
+$as_echo "$gold_cv_prog_gcc41" >&6; }
+
+ if test "$target_cpu" = "x86_64" -a "$gold_cv_prog_gcc41" = "yes"; then
MCMODEL_MEDIUM_TRUE=
MCMODEL_MEDIUM_FALSE='#'
else
diff --git a/gold/configure.ac b/gold/configure.ac
index f279b45..7102670 100644
--- a/gold/configure.ac
+++ b/gold/configure.ac
@@ -227,8 +227,20 @@ AM_CONDITIONAL(FN_PTRS_IN_SO_WITHOUT_PIC, [
*) true;;
esac])
+dnl Test for gcc 4.1 or later. Full support for -mcmodel=medium is
+dnl only available in gcc 4.1.
+AC_CACHE_CHECK([for gcc >= 4.1], [gold_cv_prog_gcc41],
+[AC_COMPILE_IFELSE([
+#if !defined __GNUC__
+error
+#elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)
+error
+#endif
+], [gold_cv_prog_gcc41=yes], [gold_cv_prog_gcc41=no])])
+
dnl Whether we can test -mcmodel=medium.
-AM_CONDITIONAL(MCMODEL_MEDIUM, [test "$target_cpu" = "x86_64"])
+AM_CONDITIONAL(MCMODEL_MEDIUM,
+[test "$target_cpu" = "x86_64" -a "$gold_cv_prog_gcc41" = "yes"])
dnl Test for __thread support.
AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],