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