Module Name: src Committed By: bouyer Date: Tue Aug 29 09:43:20 UTC 2017
Modified Files: src/distrib/sets/lists/debug [netbsd-8]: mi shl.mi src/distrib/sets/lists/tests [netbsd-8]: mi shl.mi src/external/gpl3/gcc/lib/libstdc++-v3/arch/alpha [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/arm [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/armeb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earm [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/hppa [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/i386 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/ia64 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68000 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68k [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/or1k [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv32 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv64 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64 [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/vax [netbsd-8]: c++config.h src/external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64 [netbsd-8]: c++config.h src/include [netbsd-8]: dlfcn.h src/lib/libc/dlfcn [netbsd-8]: dlfcn_elf.c src/lib/libc/stdlib [netbsd-8]: Makefile.inc exit.c src/lib/libpthread [netbsd-8]: pthread.c src/libexec/ld.elf_so [netbsd-8]: rtld.c rtld.h symbols.map src/tests/lib/libpthread [netbsd-8]: Makefile src/tests/libexec/ld.elf_so [netbsd-8]: Makefile Added Files: src/lib/libc/include [netbsd-8]: atexit.h src/lib/libc/stdlib [netbsd-8]: cxa_thread_atexit.c src/tests/libexec/ld.elf_so [netbsd-8]: h_thread_local_dtor.c t_thread_local_dtor.sh src/tests/libexec/ld.elf_so/helper_dso3 [netbsd-8]: Makefile h_helper_dso3.cpp Removed Files: src/lib/libc/stdlib [netbsd-8]: atexit.h Log Message: Pull up following revision(s) (requested by joerg in ticket #127): tests/libexec/ld.elf_so/h_thread_local_dtor.c: revision 1.1 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/c++config.h: revision 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/c++config.h: revision 1.17 lib/libc/stdlib/atexit.h: file removal lib/libc/stdlib/exit.c: revision 1.16 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/c++config.h: revision 1.8 lib/libc/stdlib/exit.c: revision 1.17 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/c++config.h: revision 1.14 distrib/sets/lists/debug/shl.mi: revision 1.178 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/c++config.h: revision 1.21 distrib/sets/lists/debug/shl.mi: revision 1.179 distrib/sets/lists/debug/mi: revision 1.219 lib/libpthread/pthread.c: revision 1.150 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/c++config.h: revision 1.14 libexec/ld.elf_so/symbols.map: revision 1.2 include/dlfcn.h: revision 1.25 external/gpl3/gcc/lib/libstdc++-v3/arch/arm/c++config.h: revision 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/c++config.h: revision 1.23 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/c++config.h: revision 1.18 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/c++config.h: revision 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earm/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/c++config.h: revision 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/c++config.h: revision 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/c++config.h: revision 1.17 distrib/sets/lists/tests/mi: revision 1.755 external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/i386/c++config.h: revision 1.20 external/gpl3/gcc/lib/libstdc++-v3/arch/vax/c++config.h: revision 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/c++config.h: revision 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/c++config.h: revision 1.20 lib/libc/dlfcn/dlfcn_elf.c: revision 1.14 tests/libexec/ld.elf_so/t_thread_local_dtor.sh: revision 1.1 tests/lib/libpthread/t_thread_local_dtor.sh: revision 1.1 lib/libc/stdlib/Makefile.inc: revision 1.93 lib/libc/include/atexit.h: revision 1.1 lib/libc/include/atexit.h: revision 1.2 external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/c++config.h: revision 1.14 distrib/sets/lists/debug/shl.mi: revision 1.180 external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/c++config.h: revision 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/c++config.h: revision 1.14 lib/libc/stdlib/cxa_thread_atexit.c: revision 1.1 tests/libexec/ld.elf_so/helper_dso3/h_helper_dso3.cpp: revision 1.1 tests/libexec/ld.elf_so/helper_dso3/Makefile: revision 1.1 external/gpl3/gcc/lib/libstdc++-v3/arch/riscv64/c++config.h: revision 1.5 libexec/ld.elf_so/rtld.c: revision 1.185 external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/c++config.h: revision 1.19 external/gpl3/gcc/lib/libstdc++-v3/arch/riscv32/c++config.h: revision 1.5 external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/c++config.h: revision 1.15 external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/c++config.h: revision 1.21 external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire/c++config.h: revision 1.12 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/c++config.h: revision 1.14 external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/c++config.h: revision 1.15 external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/c++config.h: revision 1.19 tests/libexec/ld.elf_so/Makefile: revision 1.9 external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/c++config.h: revision 1.20 external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/c++config.h: revision 1.14 tests/lib/libpthread/h_thread_local_dtor.cpp: revision 1.1 distrib/sets/lists/tests/shl.mi: revision 1.11 tests/lib/libpthread/Makefile: revision 1.13 libexec/ld.elf_so/rtld.h: revision 1.129 external/gpl3/gcc/lib/libstdc++-v3/arch/or1k/c++config.h: revision 1.6 Implement __cxa_thread_atexit and __cxa_thread_atexit_impl. This functions are used for destructors of thread_local objects. If a pending destructor exists, prevent unloading of shared objects. Introduce __dl_cxa_refcount interface for this purpose. When the last reference is gone and the object has been dlclose'd before, the unloading is finalized. Ideally, __cxa_thread_atexit_impl wouldn't exist, but libstdc++ insists on providing __cxa_thread_atexit as direct wrapper without further patching. Fix filename of new debug file Add misising DEBUGLIB file Avoid common declaration. Drop TLS variant checks, emutls is enough for VAX and Sun2. To generate a diff of this commit: cvs rdiff -u -r1.216.2.1 -r1.216.2.2 src/distrib/sets/lists/debug/mi cvs rdiff -u -r1.176.2.1 -r1.176.2.2 src/distrib/sets/lists/debug/shl.mi cvs rdiff -u -r1.752 -r1.752.2.1 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.10 -r1.10.8.1 src/distrib/sets/lists/tests/shl.mi cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/c++config.h cvs rdiff -u -r1.20 -r1.20.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/arm/c++config.h cvs rdiff -u -r1.20 -r1.20.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/c++config.h cvs rdiff -u -r1.11 -r1.11.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earm/c++config.h cvs rdiff -u -r1.16 -r1.16.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/c++config.h cvs rdiff -u -r1.16 -r1.16.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/c++config.h cvs rdiff -u -r1.14 -r1.14.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/c++config.h cvs rdiff -u -r1.19 -r1.19.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/i386/c++config.h cvs rdiff -u -r1.4 -r1.4.8.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/c++config.h cvs rdiff -u -r1.13 -r1.13.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/c++config.h cvs rdiff -u -r1.17 -r1.17.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/c++config.h cvs rdiff -u -r1.20 -r1.20.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/c++config.h cvs rdiff -u -r1.5 -r1.5.8.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/or1k/c++config.h cvs rdiff -u -r1.19 -r1.19.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/c++config.h cvs rdiff -u -r1.7 -r1.7.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/c++config.h cvs rdiff -u -r1.4 -r1.4.8.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv32/c++config.h cvs rdiff -u -r1.4 -r1.4.8.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv64/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/c++config.h cvs rdiff -u -r1.20 -r1.20.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/c++config.h cvs rdiff -u -r1.19 -r1.19.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/c++config.h cvs rdiff -u -r1.18 -r1.18.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/c++config.h cvs rdiff -u -r1.20 -r1.20.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/vax/c++config.h cvs rdiff -u -r1.22 -r1.22.6.1 \ src/external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/c++config.h cvs rdiff -u -r1.24 -r1.24.24.1 src/include/dlfcn.h cvs rdiff -u -r1.13 -r1.13.24.1 src/lib/libc/dlfcn/dlfcn_elf.c cvs rdiff -u -r0 -r1.2.2.2 src/lib/libc/include/atexit.h cvs rdiff -u -r1.92 -r1.92.8.1 src/lib/libc/stdlib/Makefile.inc cvs rdiff -u -r1.11 -r0 src/lib/libc/stdlib/atexit.h cvs rdiff -u -r0 -r1.1.4.2 src/lib/libc/stdlib/cxa_thread_atexit.c cvs rdiff -u -r1.15 -r1.15.36.1 src/lib/libc/stdlib/exit.c cvs rdiff -u -r1.147 -r1.147.8.1 src/lib/libpthread/pthread.c cvs rdiff -u -r1.183.4.1 -r1.183.4.2 src/libexec/ld.elf_so/rtld.c cvs rdiff -u -r1.126.6.2 -r1.126.6.3 src/libexec/ld.elf_so/rtld.h cvs rdiff -u -r1.1 -r1.1.8.1 src/libexec/ld.elf_so/symbols.map cvs rdiff -u -r1.12 -r1.12.6.1 src/tests/lib/libpthread/Makefile cvs rdiff -u -r1.8 -r1.8.8.1 src/tests/libexec/ld.elf_so/Makefile cvs rdiff -u -r0 -r1.2.2.2 src/tests/libexec/ld.elf_so/h_thread_local_dtor.c cvs rdiff -u -r0 -r1.1.4.2 src/tests/libexec/ld.elf_so/t_thread_local_dtor.sh cvs rdiff -u -r0 -r1.1.4.2 src/tests/libexec/ld.elf_so/helper_dso3/Makefile \ src/tests/libexec/ld.elf_so/helper_dso3/h_helper_dso3.cpp Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.