diff options
author | Peter Wemm <peter@FreeBSD.org> | 2003-12-23 02:42:39 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2003-12-23 02:42:39 +0000 |
commit | 9b68618df04240a0ab6d6eed0d119246f07ee2cc (patch) | |
tree | 1907b96bc90f9f9f4007eae1193fdfe639edb170 /sys/powerpc/powerpc/elf_machdep.c | |
parent | feb5832efb9ee1916742286b5574c8833c0c96a7 (diff) | |
download | src-9b68618df04240a0ab6d6eed0d119246f07ee2cc.tar.gz src-9b68618df04240a0ab6d6eed0d119246f07ee2cc.zip |
Add an additional field to the elf brandinfo structure to support
quicker exec-time replacement of the elf interpreter on an emulation
environment where an entire /compat/* tree isn't really warranted.
Notes
Notes:
svn path=/head/; revision=123742
Diffstat (limited to 'sys/powerpc/powerpc/elf_machdep.c')
-rw-r--r-- | sys/powerpc/powerpc/elf_machdep.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/powerpc/powerpc/elf_machdep.c b/sys/powerpc/powerpc/elf_machdep.c index eab70db61c7b..1a4486fadcf1 100644 --- a/sys/powerpc/powerpc/elf_machdep.c +++ b/sys/powerpc/powerpc/elf_machdep.c @@ -80,15 +80,30 @@ static Elf32_Brandinfo freebsd_brand_info = { ELFOSABI_FREEBSD, EM_PPC, "FreeBSD", - "", + NULL, "/libexec/ld-elf.so.1", - &elf32_freebsd_sysvec + &elf32_freebsd_sysvec, + NULL, }; SYSINIT(elf32, SI_SUB_EXEC, SI_ORDER_ANY, (sysinit_cfunc_t) elf32_insert_brand_entry, &freebsd_brand_info); +static Elf32_Brandinfo freebsd_brand_oinfo = { + ELFOSABI_FREEBSD, + EM_PPC, + "FreeBSD", + NULL, + "/usr/libexec/ld-elf.so.1", + &elf32_freebsd_sysvec, + NULL, + }; + +SYSINIT(oelf32, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf32_insert_brand_entry, + &freebsd_brand_oinfo); + /* Process one elf relocation with addend. */ static int elf_reloc_internal(linker_file_t lf, const void *data, int type, int local) |