git: rtld-elf: Sync with FreeBSD

看板DFBSD_commit作者時間14年前 (2011/05/17 07:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit fcf53d9b037c8b3b6b834245c8c0eb99b1458e72 Author: John Marino <draco@marino.st> Date: Wed Apr 13 21:20:44 2011 +0200 rtld-elf: Sync with FreeBSD The DragonFly run-time linker receives its first upgrade since TLS was added. Highlights include improvements to dl functionality: dlvsym dl_iterate_phdr _rtld_addr_phdr improved dlfunct Improved security for dangerous LD environment variables were added. Several bugs were fixed. libmap.conf functionality was added. utrace/ktrace support added. Improved atexit and cxa_atexit finalization. ELF symbol versioning using gnu semantics. ldd and kdump improvments significant man page updates dynamic token expansion functionlity added. new locking mechanism Support for env var LD_ELF_HINTS_PATH Support for RTLD_NODELETE and RTLD_NOLOAD flags for dlopen dlfunc moved from libc to rtld The next GCC upgrade will take advantage of this rtld upgrade in order to improve exception handling. DragonFly has never used the shared libgcc_s which has impeded (or broke?) C++ exception handling. This commit syncs rtld-elf to the FreeBSD cerca 16 DEC 2010. However, bug fixes between then and 25 March 2011 have been included, but major functionality changes from the ELF Filter support on 25 DEC 2010 onwards has been excluded. Summary of changes: include/dlfcn.h | 20 +- include/link.h | 302 +------ include/paths.h | 10 +- lib/libc/gen/Makefile.inc | 8 +- lib/libc/gen/dl_iterate_phdr.3 | 116 +++ lib/libc/gen/dladdr.3 | 37 +- lib/libc/gen/dlclose.3 | 79 ++ lib/libc/gen/dlerror.3 | 77 ++ lib/libc/gen/dlfcn.3 | 103 ++ lib/libc/gen/dlfcn.c | 43 +- lib/libc/gen/dlfunc.c | 29 - lib/libc/gen/dlinfo.3 | 226 +++-- lib/libc/gen/dlopen.3 | 286 ++---- lib/libc/gen/dlsym.3 | 224 +++++ lib/libc/gen/dlvsym.3 | 117 +++ lib/libc/gen/elf_utils.c | 47 + lib/libc/include/libc_private.h | 10 +- lib/libc/stdlib/atexit.c | 31 +- lib/libthread_xu/pthread.map | 4 +- lib/libthread_xu/thread/thr_fork.c | 31 +- lib/libthread_xu/thread/thr_private.h | 6 +- libexec/rtld-elf/Makefile | 14 +- libexec/rtld-elf/debug.c | 17 +- libexec/rtld-elf/debug.h | 15 +- libexec/rtld-elf/i386/lockdflt.c | 185 ---- libexec/rtld-elf/i386/reloc.c | 39 +- libexec/rtld-elf/i386/rtld_machdep.h | 47 +- libexec/rtld-elf/i386/rtld_start.S | 3 +- libexec/rtld-elf/libmap.c | 343 +++++++ libexec/rtld-elf/libmap.h | 7 + libexec/rtld-elf/malloc.c | 11 +- libexec/rtld-elf/map_object.c | 134 ++- libexec/rtld-elf/rtld.1 | 103 ++- libexec/rtld-elf/rtld.c | 1667 ++++++++++++++++++++++++-------- libexec/rtld-elf/rtld.h | 153 ++- libexec/rtld-elf/rtld_lock.c | 363 +++++++ libexec/rtld-elf/rtld_lock.h | 72 ++ libexec/rtld-elf/x86_64/lockdflt.c | 179 ---- libexec/rtld-elf/x86_64/reloc.c | 28 +- libexec/rtld-elf/x86_64/rtld_machdep.h | 18 +- libexec/rtld-elf/x86_64/rtld_start.S | 5 +- share/man/man5/Makefile | 4 +- share/man/man5/libmap.conf.5 | 155 +++ sys/cpu/i386/include/elf.h | 50 +- sys/cpu/x86_64/include/elf.h | 15 +- sys/sys/elf32.h | 47 +- sys/sys/elf_common.h | 218 +++-- sys/sys/elf_generic.h | 11 +- sys/sys/link_elf.h | 265 +----- usr.bin/kdump/kdump.c | 110 +++- usr.bin/ldd/ldd.1 | 35 +- usr.bin/ldd/ldd.c | 26 +- 52 files changed, 4079 insertions(+), 2066 deletions(-) create mode 100644 lib/libc/gen/dl_iterate_phdr.3 create mode 100644 lib/libc/gen/dlclose.3 create mode 100644 lib/libc/gen/dlerror.3 create mode 100644 lib/libc/gen/dlfcn.3 delete mode 100644 lib/libc/gen/dlfunc.c create mode 100644 lib/libc/gen/dlsym.3 create mode 100644 lib/libc/gen/dlvsym.3 create mode 100644 lib/libc/gen/elf_utils.c delete mode 100644 libexec/rtld-elf/i386/lockdflt.c create mode 100644 libexec/rtld-elf/libmap.c create mode 100644 libexec/rtld-elf/libmap.h create mode 100644 libexec/rtld-elf/rtld_lock.c create mode 100644 libexec/rtld-elf/rtld_lock.h delete mode 100644 libexec/rtld-elf/x86_64/lockdflt.c create mode 100644 share/man/man5/libmap.conf.5 http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/fcf53d9b037c8b3b6b834245c8c0eb99b1458e72 -- DragonFly BSD source repository
文章代碼(AID): #1DqRGoZW (DFBSD_commit)