diff options
Diffstat (limited to 'ports/sysdeps/arm/preconfigure')
-rw-r--r-- | ports/sysdeps/arm/preconfigure | 50 |
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 |