Age | Commit message (Collapse) | Author |
|
on i386, x86_64, and arm.
This patch adds the generation of rcrt1.o which is used by gcc when compiling with the --static-pie flag.
rcrt1.o differs from crt1.o and Scrt1.o in that it the executable has a dynamic section but no relocations have been performed prior to _start being called.
crt1.o assumes there to be no dynamic relocations, and Scrt1.o has all relocations performed prior to execution by lsdo.
The new reloc_static_pie function handles parsing the dynamic section, and performing the relocations in a architecture agnostic method.
It also sets _dl_load_base which is used when initalizing TLS to ensure loading from the proper location.
This allows for easier porting of static-pie support to additional architectures as only modifications to crt1.S to find the load address are required.
Signed-off-by: linted <linted@users.noreply.github.com>
|
|
* ldso/ldso/arm/aeabi_read_tp.S: Add Thumb version.
* ldso/ldso/arm/dl-startup.h: Do not force ARM encoding, adjust
for Thumb.
* ldso/ldso/arm/resolve.S: Force Thumb encoding on Thumb-only
processors.
* libc/sysdeps/linux/arm/crt1.S: Do not force ARM encoding, adjust
for Thumb.
Signed-off-by: Mickaël Guêné <mickael.guene@st.com>
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
|
|
* libc/sysdeps/linux/arm/crt1.S: Define _start for __FDPIC__.
Signed-off-by: Mickaël Guêné <mickael.guene@st.com>
Signed-off-by: Christophe Lyon <christophe.lyon@st.com>
|
|
This matches a similar change made to glibc.
No functional changes here.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
* fix a problem with Thumb PIE binaries,
where the GOT was located incorrectly because of an offset 8
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
This patch fixes position-independent executables (PIEs) for Thumb-2. In
Thumb assembly, instructions reading pc give a value 4 greater than the
address of the instruction, rather than 8 greater as in ARM mode, so the
offset to the GOT needs to have the right offset. (The Thumb-1 code
already gets this right; it's the code shared by ARM and Thumb-2 that
needs fixing.)
|
|
The attached patch adds support for compiling arm uClibc as pure Thumb code.
This is needed because some recent ARM codes do not implement traditional ARM
mode. Specifically:
* Cortex-M1 - An extremely minimal FPGA based core that only implements
Thumb-1 (aka ARMv6-M).
* Cortex-M3 - A Thumb-2 only ARMv7-M core.
Most of uClibc already builds in Thumb mode, all that is left are a handful of
assembly bits.
Tested on arm-uclinuxeabi.
|
|
The patch below tweaks the ARM nommu startup code so that doubleword stack
alignment is preserved. This is required on EABI targets.
|
|
|
|
|
|
|
|
|
|
|
|
__PIC__. Add these weaks to mips/crt1.S as well.
|
|
|
|
|
|
|
|
|
|
properly with the new ABI
|
|
|
|
|
|
has a chance of perhaps working...
|