Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src
Module Name: src
Committed By: skrll
Date: Tue Aug 12 09:18:51 UTC 2003
Modified Files:
src/lib/csu/common_elf: common.c common.h
src/lib/libc/dlfcn: dlfcn_elf.c
src/libexec/ld.elf_so: reloc.c rtld.c rtld.h search.c symbol.c
src/usr.bin/ldd/ldd_elf: ldd.c
Removed Files:
src/lib/libc/dlfcn: dlfcn_stubs.c
Log Message:
Resolve dlsym(3) and friends directly so that dlsym(RTLD_NEXT,...) works.
Previously dlsym resolved to the version in crt0.o or libc which would
mean that the caller's shared object couldn't be determined correctly
using __builtin_return_address(0).
Mainly from FreeBSD, but adapted by me. Benefits of this solutions are:
- backward comptibility maintained
- existing broken binaries are fixed with a new ld.elf_so
- __mainprog_obj can be removed from crt0.o
- we do the same thing as FreeBSD
Fixes PR 22067.
OKed by Jason and Christos.
To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 src/lib/csu/common_elf/common.c
cvs rdiff -r1.8 -r1.9 src/lib/csu/common_elf/common.h
cvs rdiff -r1.3 -r1.4 src/lib/libc/dlfcn/dlfcn_elf.c
cvs rdiff -r1.4 -r0 src/lib/libc/dlfcn/dlfcn_stubs.c
cvs rdiff -r1.80 -r1.81 src/libexec/ld.elf_so/reloc.c
cvs rdiff -r1.98 -r1.99 src/libexec/ld.elf_so/rtld.c
cvs rdiff -r1.69 -r1.70 src/libexec/ld.elf_so/rtld.h
cvs rdiff -r1.17 -r1.18 src/libexec/ld.elf_so/search.c
cvs rdiff -r1.32 -r1.33 src/libexec/ld.elf_so/symbol.c
cvs rdiff -r1.19 -r1.20 src/usr.bin/ldd/ldd_elf/ldd.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index