]> git.ipfire.org Git - thirdparty/glibc.git/commit
aarch64: morello: dynamic linking support
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Tue, 29 Mar 2022 14:24:38 +0000 (15:24 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Tue, 22 Nov 2022 14:31:25 +0000 (14:31 +0000)
commitd94c03efc59ba18c71e105a5bcbfec19e0cd91d8
tree2c545de75ac6a8f2e6533c3162ef490a3063d275
parent24071d2e2fcfd67def1a977881aad0af6b640677
aarch64: morello: dynamic linking support

Add morello specific dl-machine.h.

Add morello dynamic relocation processing support for purecap ABI.
Only support R_AARCH64_NONE, R_AARCH64_ABS64 and R_AARCH64_RELATIVE
dynamic relocs from the lp64 ABI.

RELATIVE and IRELATIVE relocs use a helper function from cheri-rel.h
to construct a capability.  Also fixed the IRELATIVE handling for
static linking.

Use new machine routines on morello for load address computation so it
is a valid capability:

 void *elf_machine_runtime_dynamic (void)
 void elf_machine_rtld_base_setup (struct link_map *map, void *args)

The ld.so load address and RX, RW capabilities are derived from auxv
and the RW ranges are set up based on the ld.so program headers early.

__tls_get_addr should return a bounded pointer instead of fixing it in
_dl_make_tlsdesc_dynamic, this is done in a separate patch.
sysdeps/aarch64/ldsodefs.h
sysdeps/aarch64/linkmap.h
sysdeps/aarch64/morello/dl-irel.h [new file with mode: 0644]
sysdeps/aarch64/morello/dl-machine.h [new file with mode: 0644]
sysdeps/aarch64/morello/dl-tlsdesc.S [new file with mode: 0644]
sysdeps/aarch64/morello/dl-tlsdesc.h [new file with mode: 0644]
sysdeps/aarch64/morello/tlsdesc.sym [new file with mode: 0644]
sysdeps/aarch64/sys/ifunc.h