Module: xenomai-2.5
Branch: master
Commit: e651149d337b7f54f041793c7acf2ccb40c28e49
URL:    
http://git.xenomai.org/?p=xenomai-2.5.git;a=commit;h=e651149d337b7f54f041793c7acf2ccb40c28e49

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Mon Apr 19 15:04:24 2010 +0200

arm: rework the compiler flags to only enable interworking with EABI

---

 configure    |   86 +++++++++++++++++++++++++++++++++++-----------------------
 configure.in |   70 ++++++++++++++++++++++++++++-------------------
 2 files changed, 94 insertions(+), 62 deletions(-)

diff --git a/configure b/configure
index e0cce39..5a9c8d9 100755
--- a/configure
+++ b/configure
@@ -934,10 +934,10 @@ enable_debug
 enable_smp
 enable_x86_sep
 enable_x86_tsc
+enable_arm_eabi
 enable_arm_mach
 enable_arm_arch
 enable_arm_tsc
-enable_arm_eabi
 enable_linux_build
 with_adeos_patch
 enable_dox_doc
@@ -1598,6 +1598,7 @@ Optional Features:
   --enable-smp            Enable SMP support
   --enable-x86-sep        Enable x86 SEP instructions for issuing syscalls
   --enable-x86-tsc        Enable x86 TSC for timings
+  --enable-arm-eabi       Enable ARM EABI interface
   --enable-arm-mach       Select for which machine we are compiling. Valid
                           machines are at91rm9200, at91sam926x, at91sam9,
                           generic, generic-vfp, imx, imx21, imx51, integrator,
@@ -1608,7 +1609,6 @@ Optional Features:
                           selected with --enable-arm-mach supports several
                           architecture versions
   --disable-arm-tsc       Disable TSC emulation in user-space
-  --enable-arm-eabi       Enable ARM EABI interface
   --enable-linux-build=<linux-src-dir>
                           Build Linux in Xenomai build tree, copying sources
                           from <linux-src-dir>. If no source directory is
@@ -11678,6 +11678,19 @@ if test $XENO_TARGET_ARCH = arm ; then
   unset vfp
   unset XNARCH_ARM_TSC_TYPE
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM EABI interface" >&5
+$as_echo_n "checking for ARM EABI interface... " >&6; }
+  # Check whether --enable-arm-eabi was given.
+if test "${enable_arm_eabi+set}" = set; then :
+  enableval=$enable_arm_eabi; case "$enableval" in
+       y | yes) CONFIG_XENO_ARM_EABI=y ;;
+       *) unset CONFIG_XENO_ARM_EABI ;;
+       esac
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: 
${CONFIG_XENO_ARM_EABI:-no}" >&5
+$as_echo "${CONFIG_XENO_ARM_EABI:-no}" >&6; }
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM machine" >&5
 $as_echo_n "checking for ARM machine... " >&6; }
   # Check whether --enable-arm-mach was given.
@@ -11728,13 +11741,13 @@ if test "${enable_arm_mach+set}" = set; then :
        pxa)            arch=5
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
-       pxa3xx)         arch=xscale3
+       pxa3xx)         arch=xscale3
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
        s3c2410)        arch=4
                        tsc_type=__XN_TSC_TYPE_DECREMENTER;;
 
-       sa1100) arch=4
+       sa1100)         arch=4
                        CONFIG_XENO_ARM_SA1100=y
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
@@ -11748,6 +11761,19 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${enable_arm_mach:-no}" >&5
 $as_echo "${enable_arm_mach:-no}" >&6; }
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM EABI interface" >&5
+$as_echo_n "checking for ARM EABI interface... " >&6; }
+  # Check whether --enable-arm-eabi was given.
+if test "${enable_arm_eabi+set}" = set; then :
+  enableval=$enable_arm_eabi; case "$enableval" in
+       y | yes) CONFIG_XENO_ARM_EABI=y ;;
+       *) unset CONFIG_XENO_ARM_EABI ;;
+       esac
+fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: 
${CONFIG_XENO_ARM_EABI:-no}" >&5
+$as_echo "${CONFIG_XENO_ARM_EABI:-no}" >&6; }
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM architecture 
version" >&5
 $as_echo_n "checking for ARM architecture version... " >&6; }
   if test $arch = choose; then
@@ -11769,14 +11795,34 @@ fi
   else
        CONFIG_XENO_ARM_ARCH="$arch"
   fi
-# Set the -march flag, FPU flags are set later.
   case "$arch" in
-  4)   XENO_ARM_ARCH_FLAGS="-march=armv4t";;
+  4)   XENO_ARM_ARCH_FLAGS="-march=armv4";;
   5)   XENO_ARM_ARCH_FLAGS="-march=armv5";;
   6)   XENO_ARM_ARCH_FLAGS="-march=armv6";;
   7)   XENO_ARM_ARCH_FLAGS="-march=armv7-a";;
   *)   as_fn_error "Invalid architecture $arch, only 4, 5, xscale3, 6 and 7 
are supported" "$LINENO" 5;;
   esac
+
+  # Enable interworking
+  if test x$CONFIG_XENO_ARM_EABI = xy -a $CONFIG_XENO_ARM_ARCH -lt 6; then
+     XENO_ARM_ARCH_FLAGS="${XENO_ARM_ARCH_FLAGS}t"
+  fi
+
+  # Set FPU flags, if EABI is not enabled, all libraries in the system
+  # must be compiled with the same FPU flags, as we do not know how
+  # other components are compiled, we can not set the flags.
+  if test x$CONFIG_XENO_ARM_EABI = xy; then
+     if test x"$vfp" != x; then
+       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -mfpu=$vfp -mfloat-abi=softfp"
+     else
+       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -msoft-float"
+     fi
+  fi
+
+  if test $CONFIG_XENO_ARM_ARCH -ge 6 || test x$CONFIG_SMP != xy; then
+       CONFIG_XENO_FASTSYNCH=y
+  fi
+
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CONFIG_XENO_ARM_ARCH" >&5
 $as_echo "$CONFIG_XENO_ARM_ARCH" >&6; }
 
@@ -11814,34 +11860,6 @@ $as_echo "no" >&6; }
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: not supported by this 
board" >&5
 $as_echo "not supported by this board" >&6; }
   fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARM EABI interface" >&5
-$as_echo_n "checking for ARM EABI interface... " >&6; }
-  # Check whether --enable-arm-eabi was given.
-if test "${enable_arm_eabi+set}" = set; then :
-  enableval=$enable_arm_eabi; case "$enableval" in
-       y | yes) CONFIG_XENO_ARM_EABI=y ;;
-       *) unset CONFIG_XENO_ARM_EABI ;;
-       esac
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: 
${CONFIG_XENO_ARM_EABI:-no}" >&5
-$as_echo "${CONFIG_XENO_ARM_EABI:-no}" >&6; }
-
-  # Set FPU flags, if EABI is not enabled, all libraries in the system
-  # must be compiled with the same FPU flags, as we do not know how
-  # other components are compiled, we can not set the flags.
-  if test x$CONFIG_XENO_ARM_EABI = xy; then
-     if test x"$vfp" != x; then
-       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -mfpu=$vfp -mfloat-abi=softfp"
-     else
-       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -msoft-float"
-     fi
-  fi
-
-  if test $CONFIG_XENO_ARM_ARCH -ge 6 || test x$CONFIG_SMP != xy; then
-       CONFIG_XENO_FASTSYNCH=y
-  fi
 fi
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether building Linux in 
Xenomai build tree" >&5
diff --git a/configure.in b/configure.in
index cc23abe..0130baf 100644
--- a/configure.in
+++ b/configure.in
@@ -208,6 +208,15 @@ if test $XENO_TARGET_ARCH = arm ; then
   unset vfp
   unset XNARCH_ARM_TSC_TYPE
 
+  AC_MSG_CHECKING(for ARM EABI interface)
+  AC_ARG_ENABLE(arm-eabi,
+       AS_HELP_STRING([--enable-arm-eabi], [Enable ARM EABI interface]),
+       [case "$enableval" in
+       y | yes) CONFIG_XENO_ARM_EABI=y ;;
+       *) unset CONFIG_XENO_ARM_EABI ;;
+       esac])
+  AC_MSG_RESULT(${CONFIG_XENO_ARM_EABI:-no})
+
   AC_MSG_CHECKING(for ARM machine)
   AC_ARG_ENABLE(arm-mach,
        AS_HELP_STRING([--enable-arm-mach], [Select for which machine we are
@@ -260,13 +269,13 @@ omap3, orion, pxa, pxa3xx, s3c2410, sa1100.]),
        pxa)            arch=5
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
-       pxa3xx)         arch=xscale3
+       pxa3xx)         arch=xscale3
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
        s3c2410)        arch=4
                        tsc_type=__XN_TSC_TYPE_DECREMENTER;;
 
-       sa1100) arch=4
+       sa1100)         arch=4
                        CONFIG_XENO_ARM_SA1100=y
                        tsc_type=__XN_TSC_TYPE_FREERUNNING;;
 
@@ -276,6 +285,15 @@ omap3, orion, pxa, pxa3xx, s3c2410, sa1100.]),
        ])
   AC_MSG_RESULT(${enable_arm_mach:-no})
 
+  AC_MSG_CHECKING(for ARM EABI interface)
+  AC_ARG_ENABLE(arm-eabi,
+       AS_HELP_STRING([--enable-arm-eabi], [Enable ARM EABI interface]),
+       [case "$enableval" in
+       y | yes) CONFIG_XENO_ARM_EABI=y ;;
+       *) unset CONFIG_XENO_ARM_EABI ;;
+       esac])
+  AC_MSG_RESULT(${CONFIG_XENO_ARM_EABI:-no})
+
   AC_MSG_CHECKING(for ARM architecture version)
   if test $arch = choose; then
        AC_ARG_ENABLE(arm-arch,
@@ -294,14 +312,34 @@ omap3, orion, pxa, pxa3xx, s3c2410, sa1100.]),
   else
        CONFIG_XENO_ARM_ARCH="$arch"
   fi
-# Set the -march flag, FPU flags are set later.
   case "$arch" in
-  4)   XENO_ARM_ARCH_FLAGS="-march=armv4t";;
+  4)   XENO_ARM_ARCH_FLAGS="-march=armv4";;
   5)   XENO_ARM_ARCH_FLAGS="-march=armv5";;
   6)   XENO_ARM_ARCH_FLAGS="-march=armv6";;
   7)   XENO_ARM_ARCH_FLAGS="-march=armv7-a";;
   *)   AC_MSG_ERROR([Invalid architecture $arch, only 4, 5, xscale3, 6 and 7 
are supported]);;
   esac
+
+  # Enable interworking
+  if test x$CONFIG_XENO_ARM_EABI = xy -a $CONFIG_XENO_ARM_ARCH -lt 6; then
+     XENO_ARM_ARCH_FLAGS="${XENO_ARM_ARCH_FLAGS}t"
+  fi
+
+  # Set FPU flags, if EABI is not enabled, all libraries in the system
+  # must be compiled with the same FPU flags, as we do not know how
+  # other components are compiled, we can not set the flags.
+  if test x$CONFIG_XENO_ARM_EABI = xy; then
+     if test x"$vfp" != x; then
+       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -mfpu=$vfp -mfloat-abi=softfp"
+     else
+       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -msoft-float"
+     fi
+  fi
+
+  if test $CONFIG_XENO_ARM_ARCH -ge 6 || test x$CONFIG_SMP != xy; then
+       CONFIG_XENO_FASTSYNCH=y
+  fi
+
   AC_MSG_RESULT($CONFIG_XENO_ARM_ARCH)
 
   AC_MSG_CHECKING(for ARM SA1100 architecture)
@@ -327,30 +365,6 @@ user-space]),
   else
        AC_MSG_RESULT(not supported by this board)
   fi
-
-  AC_MSG_CHECKING(for ARM EABI interface)
-  AC_ARG_ENABLE(arm-eabi,
-       AS_HELP_STRING([--enable-arm-eabi], [Enable ARM EABI interface]),
-       [case "$enableval" in
-       y | yes) CONFIG_XENO_ARM_EABI=y ;;
-       *) unset CONFIG_XENO_ARM_EABI ;;
-       esac])
-  AC_MSG_RESULT(${CONFIG_XENO_ARM_EABI:-no})
-
-  # Set FPU flags, if EABI is not enabled, all libraries in the system
-  # must be compiled with the same FPU flags, as we do not know how
-  # other components are compiled, we can not set the flags.
-  if test x$CONFIG_XENO_ARM_EABI = xy; then
-     if test x"$vfp" != x; then
-       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -mfpu=$vfp -mfloat-abi=softfp"
-     else
-       XENO_ARM_ARCH_FLAGS="$XENO_ARM_ARCH_FLAGS -msoft-float"
-     fi
-  fi
-
-  if test $CONFIG_XENO_ARM_ARCH -ge 6 || test x$CONFIG_SMP != xy; then
-       CONFIG_XENO_FASTSYNCH=y
-  fi
 fi
 
 dnl Flags for building Linux in Xenomai build tree.


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to