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
On 22/08/11 11:33, Matthias Klose wrote:
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?
We seem to have no problem build a compiler that defaults to thumb by using --with-mode=thumb. How does that work?
Andrew
On 22/08/11 11:33, Matthias Klose wrote:
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).
Ok, I *think* I see the problem: you're not supposed to list the default library as a multilib.
Try this:
------8<------------>8------ ifeq ($(with_float),hard) MULTILIB_OPTIONS = mfloat-abi=softfp MULTILIB_DIRNAMES = sf .... else MULTILIB_OPTIONS = mfloat-abi=hard MULTILIB_DIRNAMES = hf .... endif ------8<------------>8------
Andrew
Matthias, does the solution below work for you?
On Tue, Aug 23, 2011 at 03:03:03PM +0100, Andrew Stubbs wrote:
On 22/08/11 11:33, Matthias Klose wrote:
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).
Ok, I *think* I see the problem: you're not supposed to list the default library as a multilib.
Try this:
------8<------------>8------ ifeq ($(with_float),hard) MULTILIB_OPTIONS = mfloat-abi=softfp MULTILIB_DIRNAMES = sf .... else MULTILIB_OPTIONS = mfloat-abi=hard MULTILIB_DIRNAMES = hf .... endif ------8<------------>8------
Andrew
linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
linaro-toolchain@lists.linaro.org