This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]