OSDN Git Service

arm thumb:
authorEric Andersen <andersen@codepoet.org>
Fri, 10 Nov 2006 20:37:45 +0000 (20:37 -0000)
committerEric Andersen <andersen@codepoet.org>
Fri, 10 Nov 2006 20:37:45 +0000 (20:37 -0000)
commit90c3c3ed5eec1062168d1ac0beb41044a9de7c58
tree1ae4dd623f6b09dadc59b318e7958d71c07a6446
parentf7dfb7453d8c0a66ba0de0446d1dcfc5afc29118
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.
ldso/ldso/arm/dl-syscalls.h
libc/sysdeps/linux/arm/crti.S
libc/sysdeps/linux/arm/crtn.S