Rockbox mail archiveSubject: gcc, armv5, armv6 and multilib
gcc, armv5, armv6 and multilib
From: Dave Chapman <dave_at_dchapman.com>
Date: Sat, 13 Oct 2007 13:18:39 +0100
When trying to compile code for the TCC77x (arm946e-s core - an armv5
cpu), I got an error saying that my libgcc.a "uses FPA instructions" but
that my code did not.
After some googling, the problem appears to be that armv4 (our existing
ARM targets) and armv5 use a different floating point ABI, so the same
libgcc.a could not be used.
I got the same problem when trying to change the Gigabeat S port
(arm1136jf-s - armv6) to actually compile with the correct CPU type
(tools/configure currently incorrectly specified arm9tdmi (an armv4
core, same as the gigabeat F).
I think I've solved the problem by adding the following lines to
gcc-4.0.3/gcc/config/arm/t-arm-elf and rebuilding gcc:
MULTILIB_OPTIONS += mcpu=arm9e/mcpu=arm7tdmi/mcpu=arm1136jf-s
MULTILIB_DIRNAMES += armv5te armv4t armv6
This is the same file that is patched by rockboxdev.sh to enable
building a thumb version of libgcc.a, so we could incorporate this
change by modifying that patch and rename it to something generic like
"rockbox-arm-multilib-4.0.3.diff" (as it specifies all of the ARM
multilib options we need for Rockbox) instead of the current
But I don't completely understand the multilib feature, so would welcome
confirmation from someone who does that what I've done is sensible, and
if it isn't sensible, how should we do it?
Received on 2007-10-13