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:   joerg
Date:           Tue Jul 11 15:21:36 UTC 2017

Modified Files:
        src/distrib/sets/lists/debug: mi shl.mi
        src/distrib/sets/lists/tests: mi shl.mi
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/alpha: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/arm: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/armeb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earm: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/hppa: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/i386: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/ia64: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68000: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68k: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/or1k: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv32: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv64: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/vax: c++config.h
        src/external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64: c++config.h
        src/include: dlfcn.h
        src/lib/libc/dlfcn: dlfcn_elf.c
        src/lib/libc/stdlib: Makefile.inc exit.c
        src/lib/libpthread: pthread.c
        src/libexec/ld.elf_so: rtld.c rtld.h symbols.map
        src/tests/lib/libpthread: Makefile
        src/tests/libexec/ld.elf_so: Makefile
Added Files:
        src/lib/libc/include: atexit.h
        src/lib/libc/stdlib: cxa_thread_atexit.c
        src/tests/lib/libpthread: h_thread_local_dtor.cpp
            t_thread_local_dtor.sh
        src/tests/libexec/ld.elf_so: h_thread_local_dtor.c
            t_thread_local_dtor.sh
        src/tests/libexec/ld.elf_so/helper_dso3: Makefile h_helper_dso3.cpp
Removed Files:
        src/lib/libc/stdlib: atexit.h

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.218 -r1.219 src/distrib/sets/lists/debug/mi
cvs rdiff -u -r1.177 -r1.178 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.754 -r1.755 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.10 -r1.11 src/distrib/sets/lists/tests/shl.mi
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/alpha/c++config.h
cvs rdiff -u -r1.20 -r1.21 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/arm/c++config.h
cvs rdiff -u -r1.20 -r1.21 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/armeb/c++config.h
cvs rdiff -u -r1.11 -r1.12 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/coldfire/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earm/c++config.h
cvs rdiff -u -r1.16 -r1.17 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmeb/c++config.h
cvs rdiff -u -r1.16 -r1.17 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhf/c++config.h
cvs rdiff -u -r1.14 -r1.15 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmhfeb/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv4eb/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6eb/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hfeb/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7eb/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hf/c++config.h
cvs rdiff -u -r1.13 -r1.14 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv7hfeb/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/hppa/c++config.h
cvs rdiff -u -r1.19 -r1.20 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/i386/c++config.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/ia64/c++config.h
cvs rdiff -u -r1.14 -r1.15 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68000/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/m68k/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64eb/c++config.h
cvs rdiff -u -r1.17 -r1.18 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/mips64el/c++config.h
cvs rdiff -u -r1.20 -r1.21 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipseb/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/mipsel/c++config.h
cvs rdiff -u -r1.5 -r1.6 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/or1k/c++config.h
cvs rdiff -u -r1.19 -r1.20 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc/c++config.h
cvs rdiff -u -r1.7 -r1.8 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/powerpc64/c++config.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv32/c++config.h
cvs rdiff -u -r1.4 -r1.5 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/riscv64/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3eb/c++config.h
cvs rdiff -u -r1.20 -r1.21 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/sh3el/c++config.h
cvs rdiff -u -r1.19 -r1.20 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc/c++config.h
cvs rdiff -u -r1.18 -r1.19 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/sparc64/c++config.h
cvs rdiff -u -r1.20 -r1.21 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/vax/c++config.h
cvs rdiff -u -r1.22 -r1.23 \
    src/external/gpl3/gcc/lib/libstdc++-v3/arch/x86_64/c++config.h
cvs rdiff -u -r1.24 -r1.25 src/include/dlfcn.h
cvs rdiff -u -r1.13 -r1.14 src/lib/libc/dlfcn/dlfcn_elf.c
cvs rdiff -u -r0 -r1.1 src/lib/libc/include/atexit.h
cvs rdiff -u -r1.92 -r1.93 src/lib/libc/stdlib/Makefile.inc
cvs rdiff -u -r1.11 -r0 src/lib/libc/stdlib/atexit.h
cvs rdiff -u -r0 -r1.1 src/lib/libc/stdlib/cxa_thread_atexit.c
cvs rdiff -u -r1.15 -r1.16 src/lib/libc/stdlib/exit.c
cvs rdiff -u -r1.149 -r1.150 src/lib/libpthread/pthread.c
cvs rdiff -u -r1.184 -r1.185 src/libexec/ld.elf_so/rtld.c
cvs rdiff -u -r1.128 -r1.129 src/libexec/ld.elf_so/rtld.h
cvs rdiff -u -r1.1 -r1.2 src/libexec/ld.elf_so/symbols.map
cvs rdiff -u -r1.12 -r1.13 src/tests/lib/libpthread/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/lib/libpthread/h_thread_local_dtor.cpp \
    src/tests/lib/libpthread/t_thread_local_dtor.sh
cvs rdiff -u -r1.8 -r1.9 src/tests/libexec/ld.elf_so/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/libexec/ld.elf_so/h_thread_local_dtor.c \
    src/tests/libexec/ld.elf_so/t_thread_local_dtor.sh
cvs rdiff -u -r0 -r1.1 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.




Home | Main Index | Thread Index | Old Index