Module Name: src Committed By: joerg Date: Wed Oct 17 23:36:58 UTC 2018
Modified Files: src/libexec/ld.elf_so: Makefile reloc.c rtld.c rtld.h Added Files: src/libexec/ld.elf_so: compat.c Log Message: Move compatibility for pre-2.0 ELF binaries into separate file. Early ELF binaries defined dlopen and friends in crt0.o by using function pointers in the object handle passed from rtld. This contract wastes space when many shared objects are allocated and ties dynamic linker and rest of the system tightly together. Fake the entry points in a static object and restrict them to the platforms that had working ELF support at the time. Keep the magic and version field used by modern crt0.o for all architectures. The checks will be removed from crt0.o in a follow-up step. To generate a diff of this commit: cvs rdiff -u -r1.138 -r1.139 src/libexec/ld.elf_so/Makefile cvs rdiff -u -r0 -r1.1 src/libexec/ld.elf_so/compat.c cvs rdiff -u -r1.112 -r1.113 src/libexec/ld.elf_so/reloc.c cvs rdiff -u -r1.192 -r1.193 src/libexec/ld.elf_so/rtld.c cvs rdiff -u -r1.133 -r1.134 src/libexec/ld.elf_so/rtld.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.