> > I use arm-none-eabi-ld --verbose and arm-elf-ld --verbose to print > the detailed link script for comparison, and I also read the arm.ld of > redboot in \src\hal\arm\arch\current\src. > > I found after compiling with arm eabi tool chain, there is no > ARM.exidex and ARM.extab in the generated target.ld. I edited target.ld > and then make again. I get a redboot.elf. However, after I dumped the > info of redboot.elf generated by arm-eabi. I found that __CTOR_LIST__ > ,__CTOR_END__, __DTOR_LIST__, and __DTOR_END__ have the same pointer. > It means that the constructors and destructors of redboot don't be > compiled correctly. > > > > could you give me more suggestions? I am a newbie in embedded linux.
There are a few things here if you're trying to get it to work with EABI. (1) Constructors are in a new section called .init_array -- they get created in the opposite order that they are done under arm-elf, so you would need to modify arm/arch/hal_misc.c as well as arm/arch/arm.ld (2) You need to provide .ARM.extab and .ARM.exidx as they are required by EABI. They need to be added in arm/arch/arm.ld I have a working port of eCos w/ ARM EABI support that I've given to eCosCentric. I believe they are adding this to eCosPro (someone from eCosCentric please correct me if I'm wrong here). --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
