diff options
author | peter <peter@FreeBSD.org> | 2003-12-23 02:42:39 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2003-12-23 02:42:39 +0000 |
commit | 998b79089fba1b775a2a89f2c6d325d97dd21ead (patch) | |
tree | 1907b96bc90f9f9f4007eae1193fdfe639edb170 /sys/compat/ia32 | |
parent | 47e1d21299b39eba3b43f8b5986b655cadf52175 (diff) | |
download | FreeBSD-src-998b79089fba1b775a2a89f2c6d325d97dd21ead.zip FreeBSD-src-998b79089fba1b775a2a89f2c6d325d97dd21ead.tar.gz |
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.
Diffstat (limited to 'sys/compat/ia32')
-rw-r--r-- | sys/compat/ia32/ia32_sysvec.c | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/sys/compat/ia32/ia32_sysvec.c b/sys/compat/ia32/ia32_sysvec.c index 67b7db3..0b2d777 100644 --- a/sys/compat/ia32/ia32_sysvec.c +++ b/sys/compat/ia32/ia32_sysvec.c @@ -129,21 +129,34 @@ struct sysentvec ia32_freebsd_sysvec = { }; -const char freebsd32_emul_path[] = "/compat/ia32"; - static Elf32_Brandinfo ia32_brand_info = { ELFOSABI_FREEBSD, EM_386, "FreeBSD", - "/compat/ia32", - "/usr/libexec/ld-elf.so.1", - &ia32_freebsd_sysvec + NULL, + "/libexec/ld-elf.so.1", + &ia32_freebsd_sysvec, + "/libexec/ld-elf-32.so.1", }; SYSINIT(ia32, SI_SUB_EXEC, SI_ORDER_ANY, (sysinit_cfunc_t) elf32_insert_brand_entry, &ia32_brand_info); +static Elf32_Brandinfo ia32_brand_oinfo = { + ELFOSABI_FREEBSD, + EM_386, + "FreeBSD", + NULL, + "/usr/libexec/ld-elf.so.1", + &ia32_freebsd_sysvec, + "/usr/libexec/ld-elf-32.so.1", + }; + +SYSINIT(oia32, SI_SUB_EXEC, SI_ORDER_ANY, + (sysinit_cfunc_t) elf32_insert_brand_entry, + &ia32_brand_oinfo); + /* XXX may be freebsd32 MI */ static register_t * ia32_copyout_strings(struct image_params *imgp) |