summaryrefslogtreecommitdiff
path: root/ports/sysdeps/arm/preconfigure
diff options
context:
space:
mode:
Diffstat (limited to 'ports/sysdeps/arm/preconfigure')
-rw-r--r--ports/sysdeps/arm/preconfigure50
1 files changed, 50 insertions, 0 deletions
diff --git a/ports/sysdeps/arm/preconfigure b/ports/sysdeps/arm/preconfigure
new file mode 100644
index 0000000000..d98c167a95
--- /dev/null
+++ b/ports/sysdeps/arm/preconfigure
@@ -0,0 +1,50 @@
+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 |
+ sed -e 's/^#define //' -e 's/ .*//'`
+
+ case x$archcppflag in
+ x__ARM_ARCH_[89]*__)
+ machine=armv7
+ echo "Found compiler is configured for something newer than v7 - using v7"
+ ;;
+
+ x__ARM_ARCH_7A__)
+ machine=armv7
+ echo "Found compiler is configured for $machine"
+ ;;
+
+ x__ARM_ARCH_6T2__)
+ machine=armv6t2
+ echo "Found compiler is configured for $machine"
+ ;;
+
+ *)
+ machine=arm
+ echo 2>&1 "arm/preconfigure: Did not find ARM architecture type; using default"
+ ;;
+ esac
+
+ machine=arm/$machine
+ if [ "${CFLAGS+set}" != "set" ]; then
+ CFLAGS="-g -O2"
+ fi
+ CFLAGS="$CFLAGS -fno-unwind-tables"
+ ;;
+ *)
+ echo "Old ABI no longer supported" 2>&1
+ exit 1
+ ;;
+ esac
+ ;;
+esac