Hi,

the current gcc-4.6 packages build for both softfp and hard, so that the armel
and (not yet existing) armhf packages can be installed together in the system.
To enable multilib, I currently use the rather complicated arm-multilib.diff,
which works, but doesn't seem to be correct. With the much simpler arm-ml2.diff,
the directory for the default multilib is not resolved to . (as done for e.g.
amd64).

[amd64] $ gcc -print-multi-directory
.

[armel] $ gcc -print-multi-directory
sf

If I understand the code correctly, this comes from the hard setting of
MULTILIB_DEFAULTS in the arm target. If you look at mips, you see

#ifndef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
    { MULTILIB_ENDIAN_DEFAULT, MULTILIB_ISA_DEFAULT, MULTILIB_ABI_DEFAULT }
#endif

which records the proper selected defaults.

Should something similiar be done for arm?

  Matthias

# DP: ARM hard/soft float multilib

Index: gcc-4.6-4.6.1/src/gcc/config/arm/t-linux-eabi
===================================================================
--- gcc-4.6-4.6.1.orig/src/gcc/config/arm/t-linux-eabi  2011-01-03 
20:52:22.000000000 +0000
+++ gcc-4.6-4.6.1/src/gcc/config/arm/t-linux-eabi       2011-08-21 
21:08:47.583351817 +0000
@@ -24,6 +24,20 @@
 MULTILIB_OPTIONS       =
 MULTILIB_DIRNAMES      =
 
+ifeq ($(with_float),hard)
+MULTILIB_OPTIONS       = mfloat-abi=softfp/mfloat-abi=hard
+MULTILIB_DIRNAMES      = sf .
+MULTILIB_EXCEPTIONS    =
+MULTILIB_MATCHES       = mfloat-abi?hard=mhard-float 
mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
+MULTILIB_OSDIRNAMES    = arm-linux-gnueabi:arm-linux-gnueabi 
../lib:arm-linux-gnueabihf
+else
+MULTILIB_OPTIONS       = mfloat-abi=softfp/mfloat-abi=hard
+MULTILIB_DIRNAMES      = . hf
+MULTILIB_EXCEPTIONS    =
+MULTILIB_MATCHES       = mfloat-abi?hard=mhard-float 
mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
+MULTILIB_OSDIRNAMES    = ../lib:arm-linux-gnueabi 
arm-linux-gnueabihf:arm-linux-gnueabihf
+endif
+
 #MULTILIB_OPTIONS     += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
 #MULTILIB_DIRNAMES    += fa606te fa626te fmp626 fa726te
 #MULTILIB_EXCEPTIONS  += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te 
*mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te*
--- src/gcc/config/arm/t-linux-eabi~    2011-08-22 12:02:07.041405569 +0200
+++ src/gcc/config/arm/t-linux-eabi     2011-08-22 12:05:38.151716029 +0200
@@ -24,6 +24,12 @@
 MULTILIB_OPTIONS       =
 MULTILIB_DIRNAMES      =
 
+MULTILIB_OPTIONS       = mfloat-abi=softfp/mfloat-abi=hard
+MULTILIB_DIRNAMES      = sf hf
+MULTILIB_EXCEPTIONS    =
+MULTILIB_MATCHES       = mfloat-abi?hard=mhard-float 
mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft
+MULTILIB_OSDIRNAMES    = arm-linux-gnueabi arm-linux-gnueabihf
+
 #MULTILIB_OPTIONS     += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te
 #MULTILIB_DIRNAMES    += fa606te fa626te fmp626 fa726te
 #MULTILIB_EXCEPTIONS  += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te 
*mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te*
_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-toolchain

Reply via email to