diff options
author | Eric Andersen <andersen@codepoet.org> | 2006-11-10 20:37:45 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2006-11-10 20:37:45 +0000 |
commit | 90c3c3ed5eec1062168d1ac0beb41044a9de7c58 (patch) | |
tree | 1ae4dd623f6b09dadc59b318e7958d71c07a6446 /include/link.h | |
parent | f7dfb7453d8c0a66ba0de0446d1dcfc5afc29118 (diff) |
arm thumb:
Put the call_via_rx code into each executable - call_via_ip cannot
possibly work if called through the PLT! ldso requires this code
too as it is not linked with the crt stuff and thumb ldso does
make calls via a register.
The patch puts the code into crti.S so that it is linked into
every normally built application (if thumb or interworking is
selected). This is only 30 extra bytes and it works - the previous
code did not because nothing both implemented and exported the
APIs (they were in libgcc, but not in the version script).
crti.S and crtn.S is also brought up to date with GCC 3.4.4 - this
is essential for thumb support because the .init and .fini sections
must use arm or thumb code to match the compilation of the libraries.
Note that code which pushes stuff into .init or .fini must be
compiled with or without -mthumb to match the uclibc compilation -
and gcc itself (which does do this) must therefore be compiled to
match.
Diffstat (limited to 'include/link.h')
0 files changed, 0 insertions, 0 deletions