Re: PowerPC EABI - prepending ecrti/crtbegin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marco Awater <marco.awater@xxxxxx> writes:

> Currently I'm working on updating our existing PowerPC EABI toolchain
> to a more recent one. We were using GCC 3.4.2, but I've now built a
> new GCC 4.5.2 toolchain. Building the toolchain went without any
> hitches, but building an application for our target yielded unexpected
> results.
>
> My platform is an embedded OS-less environment; I have my own vectors
> and bootcode. However, when building with the new GCC, ecrti.o and
> crtbegin.o get prepended to my own code thus messing up what is meant
> to be my vector table. The old compiler did not prepend these files
> and, apart from the compiler, no changes have been made to the build
> environment (the GCC flags are the same). I've done a fair bit of
> googling and digging, but I am unsure what the intended approach is
> for platforms such as mine.
>
> Supplying -nostartfiles to the linker will stop the linker from
> prepending these files, but it also means I have to supply my own EABI
> constants (_SDA_BASE_ and co.). Is this the intended way to go about
> this? Note that I don't want or need the C++
> (constructor/destructor/exception) support as provided by these extra
> files.

Why do ecrti.o and crtbegin.o cause trouble?  Are you assuming that your
code is the very first in the file?  If that is the problem, I would
recommend adjusting your linker script to put your vector table at the
front.  I think that will be simpler than fighting against the compiler
here.

Ian


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux