From 084e2665e2f76ce0106595e62bd31bd33d9c6190 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 29 Dec 2009 22:49:13 +0000 Subject: [PATCH] * configure.ac: Set the MCMODEL_MEDIUM conditional to false if using a version of gcc before 4.1. * configure: Rebuild. --- gold/ChangeLog | 6 ++++++ gold/configure | 27 ++++++++++++++++++++++++++- gold/configure.ac | 14 +++++++++++++- 3 files changed, 45 insertions(+), 2 deletions(-) diff --git a/gold/ChangeLog b/gold/ChangeLog index 345ec62669..4e396485dc 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,9 @@ +2009-12-29 Ian Lance Taylor + + * 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 * attributes.cc (Output_attributes_section_data::do_write): Use diff --git a/gold/configure b/gold/configure index 1bb2d3dee2..4817e444dc 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 f279b450a2..7102670ded 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],