summaryrefslogtreecommitdiffstats
path: root/sys/arm64
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2016-03-31 18:52:00 +0000
committered <ed@FreeBSD.org>2016-03-31 18:52:00 +0000
commit910e4d679c8dddad93fe7407ff0625354b39c285 (patch)
tree3d8c734dbc00dd69e8df1fdf7b64427a2564642c /sys/arm64
parent3cf5a6567ade399b22a201f57f86c8dc3e373ba6 (diff)
downloadFreeBSD-src-910e4d679c8dddad93fe7407ff0625354b39c285.zip
FreeBSD-src-910e4d679c8dddad93fe7407ff0625354b39c285.tar.gz
Make Position Independent Executables work for CloudABI.
- Set BI_CAN_EXEC_DYN, so we can execute ET_DYN ELF files in addition to regular ET_EXECs. - Provide an AT_BASE entry in the auxiliary vector, so the executable knows at which address it got loaded and can apply relocations.
Diffstat (limited to 'sys/arm64')
-rw-r--r--sys/arm64/cloudabi64/cloudabi64_sysvec.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/arm64/cloudabi64/cloudabi64_sysvec.c b/sys/arm64/cloudabi64/cloudabi64_sysvec.c
index cb569cd..a26007a 100644
--- a/sys/arm64/cloudabi64/cloudabi64_sysvec.c
+++ b/sys/arm64/cloudabi64/cloudabi64_sysvec.c
@@ -157,5 +157,6 @@ Elf64_Brandinfo cloudabi64_brand = {
.brand = ELFOSABI_CLOUDABI,
.machine = EM_AARCH64,
.sysvec = &cloudabi64_elf_sysvec,
+ .flags = BI_CAN_EXEC_DYN,
.compat_3_brand = "CloudABI",
};
OpenPOWER on IntegriCloud