From 0febba23ddabcd971be5259ee20236b9e3efa690 Mon Sep 17 00:00:00 2001 From: Steve Ellcey Date: Tue, 9 Sep 2014 10:01:51 -0700 Subject: Modify ABI tests in MIPS preconfigure. --- ChangeLog | 4 ++++ sysdeps/mips/preconfigure | 58 ++++++++++++++++++++--------------------------- 2 files changed, 28 insertions(+), 34 deletions(-) diff --git a/ChangeLog b/ChangeLog index 375477905c..100e923936 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-09-09 Steve Ellcey + + * sysdeps/mips/preconfigure: Modify ABI tests. + 2014-09-07 Carlos O'Donell * sysdeps/unix/sysv/linux/hppa/c++-types.data: New file. diff --git a/sysdeps/mips/preconfigure b/sysdeps/mips/preconfigure index b215eb2c17..fb572d752f 100644 --- a/sysdeps/mips/preconfigure +++ b/sysdeps/mips/preconfigure @@ -1,34 +1,24 @@ -case "$machine" in -mips64*) base_machine=mips64 - case "$CC $CFLAGS $CPPFLAGS " in - *" -mabi=n32 "*) mips_cc_abi=n32 ;; - *" -mabi=64 "*|*" -mabi=n64 "*) mips_cc_abi=64 ;; - *" -mabi=32 "*|*" -mabi=o32 "*) mips_cc_abi=32 ;; - *) mips_cc_abi=default ;; - esac - case $config_os in - *abin32*) mips_config_abi=n32 ;; - *abi64*|*abin64*) mips_config_abi=64 ;; - *abi32*|*abio32*) mips_config_abi=32 ;; - *) mips_config_abi=$mips_cc_abi ;; - esac - case $mips_config_abi in - default) machine=mips/mips64/n32 mips_config_abi=n32 ;; - n32) machine=mips/mips64/n32 ;; - 64) machine=mips/mips64/n64 ;; - 32) machine=mips/mips32/kern64 ;; - esac - machine=$machine/$config_machine - if test $mips_config_abi != $mips_cc_abi; then - # This won't make it to config.make, but we want to - # set this in case configure tests depend on it. - CPPFLAGS="$CPPFLAGS -mabi=$mips_config_abi" - fi - ;; -mips*) base_machine=mips - case "$CC $CFLAGS $CPPFLAGS " in - *" -mips16 "*) machine=mips/mips32/mips16/$machine ;; - *) machine=mips/mips32/$machine ;; - esac - ;; -esac +abiflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define _MIPS_SIM \(.*\)/\1/p'` +mips16flag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define __mips16 \(.*\)/\1/p'` + +base_machine=mips +if test "$abiflag" = "_ABIO32" ; then + if test "$mips16flag" = "1" ; then + machine=mips/mips32/mips16 + else + machine=mips/mips32 + fi +elif test "$abiflag" = "_ABIN32" ; then + machine=mips/mips64/n32 +elif test "$abiflag" = "_ABI64" ; then + machine=mips/mips64/n64 +else + as_fn_error $? "Unable to determine ABI." "$LINENO" 5 +fi +# $config_machine is not really needed here but the slash after $machine is +# needed by the case statement in sysdeps/unix/sysv/linux/mips/configure.ac. +machine=$machine/$config_machine + +if test "$abiflag" != "_ABIO32" -a "$mips16flag" = "1"; then + as_fn_error $? "mips16 is only supported with the O32 ABI." "$LINENO" 5 +fi -- cgit 1.4.1