This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: ARM thumbmode architecture question
Steffen Dettmer <steffen.dettmer@googlemail.com> writes:
> Where can I find more information about compiling options of libgcc.a?
> (I thought it was compiled as part of gcc building [and thus
> assumed it would be built with correct compiler options]. Could
> it be that I used bad limiting options when the arm-elf-gcc was
> compiled?)
There isn't really a simple answer to that question. libgcc.a can be
built multiple times with different options. The exact list can be
extracted from gcc --print-multi-lib with some effort. Which options
are used in your particular case depends on your configuration.
>>> I searched the internet and read about `trampolines' and the
>>> general possibility to have small wrapper functions in ARM code
>>> able to execute very long calls (gigabyte range).
>>> Compilers/linkers could theoretically automatically use such
>>> "wrappers". This information is in contrast to the previous one.
>>
>> The linker does have support for this. ÂWhich version of the
>> linker are you using?
>
> $ gcc -Wl,--version
> GNU ld version 2.16.1
>
> (does this mean it is from binutils-2.16.1 from June 2005?)
Yes. The current version is 2.21. In the NEWS file I see this for
binutils 2.19: "The ARM EABI linker will now generate stubs for function
calls to symbols that are too far away. The placement of the stubs is
controlled by a new linker command line option: --stub-group-size=N."
So you may want to consider trying binutils 2.21.
> is `veneer generation' the correct term for what I called `trampoline'?
In this case I would typically call it a stub function.
Ian