This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
ARM EABI port / static constructor priority removal
- From: "Chris Zimman" <czimman at bloomberg dot com>
- To: <ecos-discuss at sourceware dot org>
- Date: Wed, 26 Mar 2008 13:44:24 -0400
- Subject: [ECOS] ARM EABI port / static constructor priority removal
I have a nearly working port of eCos for the Broadcom BCM5890 that also
includes ARM EABI (arm-none-eabi-gcc) support. The idea is that people
should be able to build eCos with a supported toolchain (aka CodeSourcery)
(and perhaps at some point ADS). Redboot builds and runs fine under EABI now
(at least on this target, but I suspect it will be OK on other ARM targets as
well).
One of the things that's holding it up is the use of
__attribute__(init_priority(_pri_))) because there appears to be an issue (I
hesitate to call this a bug until it's further understood) where 'ld -r'
combines __init_array entry ordering when creating extras.o When you link
the resulting target images, the static constructor ordering gets messed up a
little bit, and of consequently things don't work right.
Anyhow -- one of the possible solutions that came out of this was to remove
the requirement for multiple translation unit static constructor ordering.
It's a GNU only extension and generally not considered good behavior.
It's a big change, but that by itself is not a good reason not to do it. Any
thoughts?
BTW, this ARM tree has a lot of general improvements. It includes support
for ARM processors that don't have the vector tables at 0x0, has a bunch of
additional ARM9 helper routines, low power sleep in the idle loop, etc.
--Chris
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss