diff options
author | Richard Sandiford <richard@codesourcery.com> | 2006-10-29 11:13:14 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2006-10-29 11:13:14 +0000 |
commit | 4551169f831b3b41c5ab40d5c8c94d22e479a41c (patch) | |
tree | bf8f66085211cfd059a02f06010d2a8b21c8d8da | |
parent | 5f687d19e06bbdeccc7a0b6d831ae884d177b522 (diff) | |
download | gcc-4551169f831b3b41c5ab40d5c8c94d22e479a41c.zip gcc-4551169f831b3b41c5ab40d5c8c94d22e479a41c.tar.gz gcc-4551169f831b3b41c5ab40d5c8c94d22e479a41c.tar.bz2 |
configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE.
gcc/
* configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the
-mno-shared assembler option on mips targets.
* configure, config.in: Regenerate.
* config/mips/linux.h (NO_SHARED_SPECS): New macro.
(DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty.
* config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS.
From-SVN: r118138
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config.in | 6 | ||||
-rw-r--r-- | gcc/config/mips/linux.h | 9 | ||||
-rw-r--r-- | gcc/config/mips/linux64.h | 2 | ||||
-rwxr-xr-x | gcc/configure | 36 | ||||
-rw-r--r-- | gcc/configure.ac | 4 |
6 files changed, 66 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 20b251c..ce69fe7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,14 @@ 2006-10-29 Richard Sandiford <richard@codesourcery.com> + * configure.ac (HAVE_AS_NO_SHARED): New AC_DEFINE. Test for the + -mno-shared assembler option on mips targets. + * configure, config.in: Regenerate. + * config/mips/linux.h (NO_SHARED_SPECS): New macro. + (DRIVER_SELF_SPECS): Define to NO_SHARED_SPECS if non-empty. + * config/mips/linux64.h (DRIVER_SELF_SPECS): Include NO_SHARED_SPECS. + +2006-10-29 Richard Sandiford <richard@codesourcery.com> + * config/mips/mips.c (mips_classify_symbol): Test DECL_WEAK as well as TREE_PUBLIC when deciding whether to return SYMBOL_GOT_GLOBAL. diff --git a/gcc/config.in b/gcc/config.in index 91146bb..2fc1177 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -239,6 +239,12 @@ #endif +/* Define if the assembler understands -mno-shared. */ +#ifndef USED_FOR_TARGET +#undef HAVE_AS_NO_SHARED +#endif + + /* Define if your assembler supports offsetable %lo(). */ #ifndef USED_FOR_TARGET #undef HAVE_AS_OFFSETABLE_LO10 diff --git a/gcc/config/mips/linux.h b/gcc/config/mips/linux.h index bed5e31..f84867a 100644 --- a/gcc/config/mips/linux.h +++ b/gcc/config/mips/linux.h @@ -179,3 +179,12 @@ Boston, MA 02110-1301, USA. */ %{profile:-lc_p} %{!profile: -lc}}" #define MD_UNWIND_SUPPORT "config/mips/linux-unwind.h" + +#ifdef HAVE_AS_NO_SHARED +/* Default to -mno-shared for non-PIC. */ +#define NO_SHARED_SPECS \ + "%{mshared|mno-shared|fpic|fPIC|fpie|fPIE:;:-mno-shared}", +#define DRIVER_SELF_SPECS NO_SHARED_SPECS +#else +#define NO_SHARED_SPECS +#endif diff --git a/gcc/config/mips/linux64.h b/gcc/config/mips/linux64.h index 4ccf938..8c189ff 100644 --- a/gcc/config/mips/linux64.h +++ b/gcc/config/mips/linux64.h @@ -21,7 +21,9 @@ Boston, MA 02110-1301, USA. */ /* Force the default endianness and ABI flags onto the command line in order to make the other specs easier to write. */ +#undef DRIVER_SELF_SPECS #define DRIVER_SELF_SPECS \ +NO_SHARED_SPECS \ "%{!EB:%{!EL:%(endian_spec)}}", \ "%{!mabi=*: -mabi=n32}" diff --git a/gcc/configure b/gcc/configure index 54a2a17..cbf94b5 100755 --- a/gcc/configure +++ b/gcc/configure @@ -15590,6 +15590,42 @@ if test $gcc_cv_as_mips_explicit_relocs = yes; then else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS" fi fi + echo "$as_me:$LINENO: checking assembler for -mno-shared support" >&5 +echo $ECHO_N "checking assembler for -mno-shared support... $ECHO_C" >&6 +if test "${gcc_cv_as_mips_no_shared+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gcc_cv_as_mips_no_shared=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 16 \) \* 1000 + 0` + then gcc_cv_as_mips_no_shared=yes +fi + elif test x$gcc_cv_as != x; then + echo 'nop' > conftest.s + if { ac_try='$gcc_cv_as -mno-shared -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_mips_no_shared=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +echo "$as_me:$LINENO: result: $gcc_cv_as_mips_no_shared" >&5 +echo "${ECHO_T}$gcc_cv_as_mips_no_shared" >&6 +if test $gcc_cv_as_mips_no_shared = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_AS_NO_SHARED 1 +_ACEOF + +fi ;; esac diff --git a/gcc/configure.ac b/gcc/configure.ac index 1dafd85..0b42531 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2952,6 +2952,10 @@ LCF0: then target_cpu_default=MASK_EXPLICIT_RELOCS else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS" fi]) + gcc_GAS_CHECK_FEATURE([-mno-shared support], + gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],, + [AC_DEFINE(HAVE_AS_NO_SHARED, 1, + [Define if the assembler understands -mno-shared.])]) ;; esac |