Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: 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

All,

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
"thumb-interwork-4.0.3.diff".

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?

Thanks,

Dave.
Received on 2007-10-13


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa