This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC 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]

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


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