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