public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
* [PATCH roland/arm-preconfigure] Clean up ARM preconfigure.
@ 2013-03-08 22:52 Roland McGrath
  2013-03-09  1:32 ` Joseph S. Myers
  0 siblings, 1 reply; 5+ messages in thread
From: Roland McGrath @ 2013-03-08 22:52 UTC (permalink / raw)
  To: libc-ports

There are multiple problems with the ARM preconfigure script.

1. It uses "echo" and "exit" rather than proper friendly Autoconf methods
   for emitting messages and diagnosing errors.
2. Its indentation does not meet our standards for shell script fragments.
3. The submachine selection logic is only performed for
   arm*-*-linux-gnueabi* configurations, though it has nothing whatsoever
   to do with Linux.
4. The CFLAGS tweak is highly suspect.

This fixes the first three of those things.

The CFLAGS tweak at the very least needs a comment explaining what it's
there for, and why it is being done at configure time instead of just
adding to sysdep-CFLAGS in sysdeps/arm/Makefile or something like that.
But I have no idea what those rationales are, so I can't help there.


Thanks,
Roland


ports/ChangeLog.arm
2013-03-08  Roland McGrath  <roland@hack.frob.com>

	* sysdeps/arm/preconfigure.in: New file.
	* sysdeps/arm/preconfigure: Replaced with generated file.

--- a/ports/sysdeps/arm/preconfigure
+++ b/ports/sysdeps/arm/preconfigure
@@ -1,53 +1,58 @@
+# This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+ # Local preconfigure fragment for sysdeps/arm
+
 case "$machine" in
 arm*)
-	base_machine=arm
-	case $config_os in
-	linux-gnueabi*)
-		# Lets ask the compiler which ARM family we've got
-		# Unfortunately it doesn't define any flags for implementations
-		# that you might pass to -mcpu or -mtune
-		# Note if you add patterns here you must ensure that
-		# an appropriate directory exists in sysdeps/arm
-		archcppflag=`echo "" |
-		$CC $CFLAGS $CPPFLAGS -E -dM - |
-		  grep '__ARM_ARCH_[0-9].*__' |
-		  sed -e 's/^#define //' -e 's/ .*//'`
+  case $config_os in
+  linux-gnueabi*)
+    if  "${CFLAGS+set}" != "set" ; then
+      CFLAGS="-g -O2"
+    fi
+    CFLAGS="$CFLAGS -fno-unwind-tables"
+    ;;
+  linux*)
+    as_fn_error $? "Old ABI no longer supported" "$LINENO" 5
+    ;;
+  esac
+
+  base_machine=arm
+  # Lets ask the compiler which ARM family we've got
+  # Unfortunately it doesn't define any flags for implementations
+  # that you might pass to -mcpu or -mtune
+  # Note if you add patterns here you must ensure that
+  # an appropriate directory exists in sysdeps/arm
+  archcppflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
+    sed -n 's/^#define \(__ARM_ARCH_[0-9].*__\) .*$/\1/p'`
 
-		case x$archcppflag in
-		x__ARM_ARCH_[89]*__)
-		  machine=armv7
-		  echo "Found compiler is configured for something newer than v7 - using v7"
-		  ;;
+  case "x$archcppflag" in
+  x__ARM_ARCH_89*__)
+    machine=armv7
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Found compiler is configured for something newer than v7 - using v7" >&5
+$as_echo "$as_me: Found compiler is configured for something newer than v7 - using v7" >&6;}
+    ;;
 
-		x__ARM_ARCH_7A__)
-		  machine=armv7
-		  echo "Found compiler is configured for $machine"
-		  ;;
+  x__ARM_ARCH_7A__)
+    machine=armv7
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Found compiler is configured for $machine" >&5
+$as_echo "$as_me: Found compiler is configured for $machine" >&6;}
+    ;;
 
-		x__ARM_ARCH_6T2__)
-		  machine=armv6t2
-		  echo "Found compiler is configured for $machine"
-		  ;;
-		x__ARM_ARCH_6*__)
-		  machine=armv6
-		  echo "Found compiler is configured for $machine"
-		  ;;
-		*)
-		  machine=arm
-		  echo 2>&1 "arm/preconfigure: Did not find ARM architecture type; using default"
-		  ;;
-		esac
+  x__ARM_ARCH_6T2__)
+    machine=armv6t2
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Found compiler is configured for $machine" >&5
+$as_echo "$as_me: Found compiler is configured for $machine" >&6;}
+    ;;
+  x__ARM_ARCH_6*__)
+    machine=armv6
+    { $as_echo "$as_me:${as_lineno-$LINENO}: Found compiler is configured for $machine" >&5
+$as_echo "$as_me: Found compiler is configured for $machine" >&6;}
+    ;;
+  *)
+    machine=arm
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: arm/preconfigure: Did not find ARM architecture type; using default" >&5
+$as_echo "$as_me: WARNING: arm/preconfigure: Did not find ARM architecture type; using default" >&2;}
+    ;;
+  esac
 
-		machine=arm/$machine
-		if [ "${CFLAGS+set}" != "set" ]; then
-		  CFLAGS="-g -O2"
-		fi
-		CFLAGS="$CFLAGS -fno-unwind-tables"
-		;;
-	linux*)
-		echo "Old ABI no longer supported" 2>&1
-		exit 1
-		;;
-	esac
-	;;
+  machine=arm/$machine
 esac
--- /dev/null
+++ b/ports/sysdeps/arm/preconfigure.in
@@ -0,0 +1,53 @@
+GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+# Local preconfigure fragment for sysdeps/arm
+
+case "$machine" in
+arm*)
+  case $config_os in
+  linux-gnueabi*)
+    if [ "${CFLAGS+set}" != "set" ]; then
+      CFLAGS="-g -O2"
+    fi
+    CFLAGS="$CFLAGS -fno-unwind-tables"
+    ;;
+  linux*)
+    AC_MSG_ERROR([Old ABI no longer supported])
+    ;;
+  esac
+
+  base_machine=arm
+  # Lets ask the compiler which ARM family we've got
+  # Unfortunately it doesn't define any flags for implementations
+  # that you might pass to -mcpu or -mtune
+  # Note if you add patterns here you must ensure that
+  # an appropriate directory exists in sysdeps/arm
+  archcppflag=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
+    sed -n 's/^#define \(__ARM_ARCH_[0-9].*__\) .*$/\1/p'`
+
+  case "x$archcppflag" in
+  x__ARM_ARCH_[89]*__)
+    machine=armv7
+    AC_MSG_NOTICE([Found compiler is configured for something newer than v7 - using v7])
+    ;;
+
+  x__ARM_ARCH_7A__)
+    machine=armv7
+    AC_MSG_NOTICE([Found compiler is configured for $machine])
+    ;;
+
+  x__ARM_ARCH_6T2__)
+    machine=armv6t2
+    AC_MSG_NOTICE([Found compiler is configured for $machine])
+    ;;
+  x__ARM_ARCH_6*__)
+    machine=armv6
+    AC_MSG_NOTICE([Found compiler is configured for $machine])
+    ;;
+  *)
+    machine=arm
+    AC_MSG_WARN([arm/preconfigure: Did not find ARM architecture type; using default])
+    ;;
+  esac
+
+  machine=arm/$machine
+esac

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-12  0:07 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-08 22:52 [PATCH roland/arm-preconfigure] Clean up ARM preconfigure Roland McGrath
2013-03-09  1:32 ` Joseph S. Myers
2013-03-09  2:17   ` Roland McGrath
2013-03-11 23:57     ` Joseph S. Myers
2013-03-12  0:07       ` Roland McGrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).