From 353a1220e3a4ece67216c07796cb0fd2b3d2e309 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Fri, 13 May 2022 17:07:23 +0100 Subject: MIPS: Use an autoconf template to produce `preconfigure' Avoid fiddling with autoconf internals and use AC_DEFINE_UNQUOTED to define macros in the configuration headers rather than handcoding an equivalent shell sequence with the use of the `as_echo' undocumented variable. Similarly use AC_MSG_ERROR for error handling rather than the internal undocumented `as_fn_error' variable. Switch to using 1 as the exit code as it makes no sense to refer $? in the contexts involved, it's not a command failure handled there. --- sysdeps/mips/preconfigure | 7 +++++-- sysdeps/mips/preconfigure.ac | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 sysdeps/mips/preconfigure.ac diff --git a/sysdeps/mips/preconfigure b/sysdeps/mips/preconfigure index 48fc32ed5b..a5c6840ed2 100644 --- a/sysdeps/mips/preconfigure +++ b/sysdeps/mips/preconfigure @@ -1,3 +1,6 @@ +# This file is generated from configure.ac by Autoconf. DO NOT EDIT! +# Local preconfigure fragment for sysdeps/mips + case "$machine" in mips*) abiflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null | sed -n 's/^#define _MIPS_SIM \(.*\)/\1/p'` @@ -15,7 +18,7 @@ mips*) elif test "$abiflag" = "_ABI64" ; then machine=mips/mips64/n64 else - as_fn_error $? "Unable to determine ABI." "$LINENO" 5 + as_fn_error 1 "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 @@ -23,7 +26,7 @@ mips*) 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 + as_fn_error 1 "MIPS16 is only supported with the o32 ABI." "$LINENO" 5 fi with_fp_cond="defined __mips_hard_float" diff --git a/sysdeps/mips/preconfigure.ac b/sysdeps/mips/preconfigure.ac new file mode 100644 index 0000000000..038920265b --- /dev/null +++ b/sysdeps/mips/preconfigure.ac @@ -0,0 +1,34 @@ +GLIBC_PROVIDES[]dnl See aclocal.m4 in the top level source directory. +# Local preconfigure fragment for sysdeps/mips + +case "$machine" in +mips*) + 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 + AC_MSG_ERROR([Unable to determine ABI.], [1]) + 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 + AC_MSG_ERROR([MIPS16 is only supported with the o32 ABI.], [1]) + fi + + with_fp_cond="defined __mips_hard_float" + ;; +esac -- cgit 1.4.1