Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: [netbsd-10] src



Module Name:    src
Committed By:   martin
Date:           Tue Aug  1 16:35:00 UTC 2023

Modified Files:
        src/distrib/sets/lists/debug [netbsd-10]: mi shl.mi
        src/distrib/sets/lists/tests [netbsd-10]: mi shl.mi
        src/libexec/ld.elf_so [netbsd-10]: README.TLS map_object.c rtld.c
            rtld.h tls.c
        src/libexec/ld.elf_so/arch/aarch64 [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/alpha [netbsd-10]: alpha_reloc.c
        src/libexec/ld.elf_so/arch/arm [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/hppa [netbsd-10]: hppa_reloc.c
        src/libexec/ld.elf_so/arch/i386 [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/m68k [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/mips [netbsd-10]: mips_reloc.c
        src/libexec/ld.elf_so/arch/or1k [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/powerpc [netbsd-10]: ppc_reloc.c
        src/libexec/ld.elf_so/arch/riscv [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/sh3 [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/sparc [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/sparc64 [netbsd-10]: mdreloc.c
        src/libexec/ld.elf_so/arch/x86_64 [netbsd-10]: mdreloc.c
        src/tests/libexec/ld.elf_so [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_dso1 [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_dso2 [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_dso3 [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_ifunc_dso [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_symver_dso0 [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_symver_dso1 [netbsd-10]: Makefile
        src/tests/libexec/ld.elf_so/helper_symver_dso2 [netbsd-10]: Makefile
Added Files:
        src/tests/libexec/ld.elf_so [netbsd-10]: helper.mk t_tls_extern.c
        src/tests/libexec/ld.elf_so/helper_abuse_dynamic [netbsd-10]: Makefile
            h_abuse_dynamic.c
        src/tests/libexec/ld.elf_so/helper_abuse_static [netbsd-10]: Makefile
            h_abuse_static.c
        src/tests/libexec/ld.elf_so/helper_def_dynamic [netbsd-10]: Makefile
            h_def_dynamic.c
        src/tests/libexec/ld.elf_so/helper_def_static [netbsd-10]: Makefile
            h_def_static.c
        src/tests/libexec/ld.elf_so/helper_onlyctor_dynamic [netbsd-10]:
            Makefile h_onlyctor_dynamic.c
        src/tests/libexec/ld.elf_so/helper_onlydef [netbsd-10]: Makefile
            h_onlydef.c
        src/tests/libexec/ld.elf_so/helper_onlydef_static [netbsd-10]: Makefile
            h_onlydef_static.c
        src/tests/libexec/ld.elf_so/helper_onlyuse_dynamic [netbsd-10]:
            Makefile h_onlyuse_dynamic.c
        src/tests/libexec/ld.elf_so/helper_onlyuse_static [netbsd-10]: Makefile
            h_onlyuse_static.c
        src/tests/libexec/ld.elf_so/helper_use_dynamic [netbsd-10]: Makefile
            h_use_dynamic.c
        src/tests/libexec/ld.elf_so/helper_use_static [netbsd-10]: Makefile
            h_use_static.c

Log Message:
Pull up following revision(s) (requested by riastradh in ticket #297):

        distrib/sets/lists/tests/shl.mi: revision 1.14
        distrib/sets/lists/tests/shl.mi: revision 1.15
        distrib/sets/lists/tests/shl.mi: revision 1.16
        tests/libexec/ld.elf_so/helper_def_static/h_def_static.c: revision 1.1
        tests/libexec/ld.elf_so/helper_def_dynamic/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_def_dynamic/Makefile: revision 1.2
        tests/libexec/ld.elf_so/helper_onlyuse_static/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_onlyuse_static/Makefile: revision 1.2
        libexec/ld.elf_so/arch/mips/mips_reloc.c: revision 1.75
        distrib/sets/lists/tests/mi: revision 1.1265
        libexec/ld.elf_so/arch/sh3/mdreloc.c: revision 1.36
        libexec/ld.elf_so/rtld.c: revision 1.214
        tests/libexec/ld.elf_so/helper_onlydef_static/Makefile: revision 1.1
        distrib/sets/lists/debug/mi: revision 1.400
        tests/libexec/ld.elf_so/helper_onlydef_static/Makefile: revision 1.2
        distrib/sets/lists/debug/mi: revision 1.401
        distrib/sets/lists/debug/mi: revision 1.402
        tests/libexec/ld.elf_so/helper_dso2/Makefile: revision 1.2
        distrib/sets/lists/debug/mi: revision 1.403
        tests/libexec/ld.elf_so/helper_symver_dso0/Makefile: revision 1.2
        libexec/ld.elf_so/arch/x86_64/mdreloc.c: revision 1.48
        distrib/sets/lists/debug/mi: revision 1.406
        tests/libexec/ld.elf_so/helper_use_dynamic/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_use_dynamic/Makefile: revision 1.2
        tests/libexec/ld.elf_so/helper_ifunc_dso/Makefile: revision 1.2
        libexec/ld.elf_so/arch/sparc64/mdreloc.c: revision 1.70
        libexec/ld.elf_so/arch/aarch64/mdreloc.c: revision 1.18
        tests/libexec/ld.elf_so/helper_abuse_dynamic/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_abuse_dynamic/Makefile: revision 1.2
        tests/libexec/ld.elf_so/Makefile: revision 1.13
        libexec/ld.elf_so/arch/arm/mdreloc.c: revision 1.46
        libexec/ld.elf_so/rtld.h: revision 1.146
        tests/libexec/ld.elf_so/Makefile: revision 1.14
        distrib/sets/lists/debug/shl.mi: revision 1.306
        tests/libexec/ld.elf_so/Makefile: revision 1.15
        tests/libexec/ld.elf_so/helper_abuse_static/Makefile: revision 1.1
        distrib/sets/lists/debug/shl.mi: revision 1.307
        tests/libexec/ld.elf_so/Makefile: revision 1.16
        tests/libexec/ld.elf_so/helper_abuse_static/Makefile: revision 1.2
        distrib/sets/lists/debug/shl.mi: revision 1.308
        tests/libexec/ld.elf_so/Makefile: revision 1.17
        distrib/sets/lists/debug/shl.mi: revision 1.309
        tests/libexec/ld.elf_so/Makefile: revision 1.18
        tests/libexec/ld.elf_so/Makefile: revision 1.19
        libexec/ld.elf_so/tls.c: revision 1.16
        libexec/ld.elf_so/tls.c: revision 1.17
        libexec/ld.elf_so/tls.c: revision 1.18
        libexec/ld.elf_so/tls.c: revision 1.19
        tests/libexec/ld.elf_so/helper_onlydef_static/h_onlydef_static.c: revision 1.1
        tests/libexec/ld.elf_so/helper_use_static/h_use_static.c: revision 1.1
        tests/libexec/ld.elf_so/helper_use_static/h_use_static.c: revision 1.2
        tests/libexec/ld.elf_so/helper_def_static/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_def_static/Makefile: revision 1.2
        libexec/ld.elf_so/arch/hppa/hppa_reloc.c: revision 1.50
        distrib/sets/lists/debug/shl.mi: revision 1.310
        libexec/ld.elf_so/README.TLS: revision 1.6
        distrib/sets/lists/debug/shl.mi: revision 1.311
        distrib/sets/lists/debug/shl.mi: revision 1.314
        tests/libexec/ld.elf_so/helper_dso3/Makefile: revision 1.2
        tests/libexec/ld.elf_so/helper_symver_dso1/Makefile: revision 1.4
        libexec/ld.elf_so/arch/powerpc/ppc_reloc.c: revision 1.63
        tests/libexec/ld.elf_so/helper_def_dynamic/h_def_dynamic.c: revision 1.1
        tests/libexec/ld.elf_so/helper_onlydef/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_onlydef/Makefile: revision 1.2
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.10
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.11
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.12
        libexec/ld.elf_so/map_object.c: revision 1.66
        tests/libexec/ld.elf_so/helper.mk: revision 1.1
        libexec/ld.elf_so/arch/sparc/mdreloc.c: revision 1.57
        libexec/ld.elf_so/map_object.c: revision 1.67
        tests/libexec/ld.elf_so/helper_onlydef/h_onlydef.c: revision 1.1
        tests/libexec/ld.elf_so/helper_symver_dso2/Makefile: revision 1.4
        tests/libexec/ld.elf_so/helper_use_static/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_use_static/Makefile: revision 1.2
        tests/libexec/ld.elf_so/helper_use_static/Makefile: revision 1.3
        tests/libexec/ld.elf_so/helper_use_dynamic/h_use_dynamic.c: revision 1.1
        tests/libexec/ld.elf_so/helper_abuse_static/h_abuse_static.c: revision 1.1
        libexec/ld.elf_so/arch/riscv/mdreloc.c: revision 1.9
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.1
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.2
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.3
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.4
        tests/libexec/ld.elf_so/helper_onlyctor_dynamic/Makefile: revision 1.1
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.5
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.6
        libexec/ld.elf_so/arch/m68k/mdreloc.c: revision 1.34
        tests/libexec/ld.elf_so/helper_onlyctor_dynamic/Makefile: revision 1.2
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.7
        libexec/ld.elf_so/arch/i386/mdreloc.c: revision 1.42
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.8
        libexec/ld.elf_so/arch/i386/mdreloc.c: revision 1.43
        libexec/ld.elf_so/arch/or1k/mdreloc.c: revision 1.4
        tests/libexec/ld.elf_so/t_tls_extern.c: revision 1.9
        tests/libexec/ld.elf_so/helper_onlyuse_dynamic/Makefile: revision 1.1
        tests/libexec/ld.elf_so/helper_onlyuse_dynamic/Makefile: revision 1.2
        tests/libexec/ld.elf_so/helper_abuse_dynamic/h_abuse_dynamic.c: revision 1.1
        tests/libexec/ld.elf_so/helper_onlyctor_dynamic/h_onlyctor_dynamic.c: revision 1.1
        tests/libexec/ld.elf_so/helper_onlyuse_static/h_onlyuse_static.c: revision 1.1
        tests/libexec/ld.elf_so/helper_onlyuse_dynamic/h_onlyuse_dynamic.c: revision 1.1
        tests/libexec/ld.elf_so/helper_dso1/Makefile: revision 1.2
        distrib/sets/lists/tests/shl.mi: revision 1.12
        distrib/sets/lists/tests/shl.mi: revision 1.13
        libexec/ld.elf_so/arch/alpha/alpha_reloc.c: revision 1.44
        (all via patch)

ld.elf_so: New test for extern initial-exec TLS, PR toolchain/50277.

ld.elf_so: Fix extern TLS test to match PR toolchain/50277.
Now it's actually testing the problem.
ld.elf_so: Nix inadvertently committed private test program.
ld.elf_so: Fix set lists for MKDEBUG=yes builds with t_tls_extern.

ld.elf_so: Sprinkle tls debug messages.

ld.elf_so: Make tls alloc debug messages more detailed and greppable.

ld.elf_so: Test variations on PR toolchain/50277.

ld.elf_so: Test extern dynamic TLS too.

ld.elf_so: Factor out logic in TLS tests to make writing more easier.
No functional change intended.

ld.elf_so: Test TLS abuse of static def, dynamic use and vice versa.

ld.elf_so: Shorter test names.
No functional non-cosmetic change intended.

ld.elf_so: Separately test eager and lazy resolution of def tls ptr.
eager: before loading use library
lazy: after loading use library

Add recent ld.elf_so test helpers debug info
ld.elf_so: Add new files to debug/shl.mi.

ld.elf_so: tls_extern dynamic_defabuse_eager must xfail differently.
If a symbol has already been resolved as dynamic TLS, any library
that tries to use it as static TLS cannot be dlopened.

ld.elf_so: Test another edge case of mismatched TLS models.
One library defines a symbol and _doesn't_ use it, so it has no
indication of whether the symbol is for static TLS or dynamic TLS,
and then two other libraries use it in different ways.

ld.elf_so: Test dynamic-then-static abuse via ctor.

ld.elf_so: Fix missing tab in debug/shl.mi in last change.

Fix interactions of initial-exec TLS model and dlopen
(1) If an initial-exec relocation was used for a non-local symbol
(i.e. the definition of the symbol is in a different DSO), the
computation of the static TLS offset used the wrong DSO.
This would effectively mean the wrong address was computed
(PR toolchain/50277, PR pkg/57445).
Fix this by forcing the computation of the correct DSO (the one defining
the symbol).
This code uses __UNCONST to avoid the vast interface changes for this
special case.
(2) If symbols from a DSO loaded via dlopen are used with both
global-dynamic/local-dynamic and initial-exec relocations AND
a initial-exec relocation was resolved first in a thread, a split brain
situation could exist where the dynamic relocations would use one memory
block (separate allocation) and the initial-exec relocations the static
per-thread TLS space.
(3) If the initial-exec relocation in (2) is seen after any thread has
already used a GD/LD allocation, bail out. Since IE relocations are used
only in the GOT, this will prevent the dlopen. This is a bit more
aggressive than necessary, but a full blown reference counting doesn't
seem to be justified.
Avoid using uninitialized variable "symnum" when building with DEBUG
enabled by borrowing the rdbg_symname() macro from arch/x86_64.
ld.elf_so: Sprinkle more debug messages on dlopen and error.
PR pkg/57445
Fix MKDEBUGLIB build by adding these installed files to the debug
set list.
XXX
One could argue that these files are not of any use, so why install
them?  I don't have a good argument either way, and this is (for
now) a simple work-around for PR bin/57455   Please feel free to
commit a different fix to avoid installing these files at all.
Fix markup of libh_ MKDEBUGLIB=yes only files
TLS variant I archs need to fudge the offset by the size of the TCB.
tests/libexec/ld.elf_so: Fix helper library makefiles.
1. Consolidate logic into a single helper.mk to reduce duplication.
2. Set NO* variables, not MK* variables which are reserved for user.
3. Avoid eager X!= in favour of lazy ${X:sh}.
4. Mark _g.a set list entries obsolete.  Never should've been built!
PR misc/57462


To generate a diff of this commit:
cvs rdiff -u -r1.394 -r1.394.2.1 src/distrib/sets/lists/debug/mi
cvs rdiff -u -r1.298.2.1 -r1.298.2.2 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.1238 -r1.1238.2.1 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.11 -r1.11.18.1 src/distrib/sets/lists/tests/shl.mi
cvs rdiff -u -r1.5 -r1.5.10.1 src/libexec/ld.elf_so/README.TLS
cvs rdiff -u -r1.62 -r1.62.2.1 src/libexec/ld.elf_so/map_object.c
cvs rdiff -u -r1.212.2.1 -r1.212.2.2 src/libexec/ld.elf_so/rtld.c
cvs rdiff -u -r1.144 -r1.144.2.1 src/libexec/ld.elf_so/rtld.h
cvs rdiff -u -r1.14 -r1.14.8.1 src/libexec/ld.elf_so/tls.c
cvs rdiff -u -r1.17 -r1.17.2.1 src/libexec/ld.elf_so/arch/aarch64/mdreloc.c
cvs rdiff -u -r1.43 -r1.43.14.1 \
    src/libexec/ld.elf_so/arch/alpha/alpha_reloc.c
cvs rdiff -u -r1.45 -r1.45.6.1 src/libexec/ld.elf_so/arch/arm/mdreloc.c
cvs rdiff -u -r1.49 -r1.49.2.1 src/libexec/ld.elf_so/arch/hppa/hppa_reloc.c
cvs rdiff -u -r1.41 -r1.41.12.1 src/libexec/ld.elf_so/arch/i386/mdreloc.c
cvs rdiff -u -r1.33 -r1.33.14.1 src/libexec/ld.elf_so/arch/m68k/mdreloc.c
cvs rdiff -u -r1.74 -r1.74.6.1 src/libexec/ld.elf_so/arch/mips/mips_reloc.c
cvs rdiff -u -r1.3 -r1.3.14.1 src/libexec/ld.elf_so/arch/or1k/mdreloc.c
cvs rdiff -u -r1.62 -r1.62.2.1 src/libexec/ld.elf_so/arch/powerpc/ppc_reloc.c
cvs rdiff -u -r1.7 -r1.7.2.1 src/libexec/ld.elf_so/arch/riscv/mdreloc.c
cvs rdiff -u -r1.35 -r1.35.14.1 src/libexec/ld.elf_so/arch/sh3/mdreloc.c
cvs rdiff -u -r1.55 -r1.55.12.1 src/libexec/ld.elf_so/arch/sparc/mdreloc.c
cvs rdiff -u -r1.69 -r1.69.12.1 src/libexec/ld.elf_so/arch/sparc64/mdreloc.c
cvs rdiff -u -r1.47 -r1.47.12.1 src/libexec/ld.elf_so/arch/x86_64/mdreloc.c
cvs rdiff -u -r1.12 -r1.12.4.1 src/tests/libexec/ld.elf_so/Makefile
cvs rdiff -u -r0 -r1.1.2.2 src/tests/libexec/ld.elf_so/helper.mk
cvs rdiff -u -r0 -r1.12.2.2 src/tests/libexec/ld.elf_so/t_tls_extern.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_abuse_dynamic/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_abuse_dynamic/h_abuse_dynamic.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_abuse_static/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_abuse_static/h_abuse_static.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_def_dynamic/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_def_dynamic/h_def_dynamic.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_def_static/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_def_static/h_def_static.c
cvs rdiff -u -r1.1 -r1.1.54.1 \
    src/tests/libexec/ld.elf_so/helper_dso1/Makefile
cvs rdiff -u -r1.1 -r1.1.54.1 \
    src/tests/libexec/ld.elf_so/helper_dso2/Makefile
cvs rdiff -u -r1.1 -r1.1.18.1 \
    src/tests/libexec/ld.elf_so/helper_dso3/Makefile
cvs rdiff -u -r1.1 -r1.1.26.1 \
    src/tests/libexec/ld.elf_so/helper_ifunc_dso/Makefile
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyctor_dynamic/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyctor_dynamic/h_onlyctor_dynamic.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlydef/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlydef/h_onlydef.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlydef_static/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlydef_static/h_onlydef_static.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyuse_dynamic/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyuse_dynamic/h_onlyuse_dynamic.c
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyuse_static/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_onlyuse_static/h_onlyuse_static.c
cvs rdiff -u -r1.1 -r1.1.52.1 \
    src/tests/libexec/ld.elf_so/helper_symver_dso0/Makefile
cvs rdiff -u -r1.3 -r1.3.36.1 \
    src/tests/libexec/ld.elf_so/helper_symver_dso1/Makefile
cvs rdiff -u -r1.3 -r1.3.36.1 \
    src/tests/libexec/ld.elf_so/helper_symver_dso2/Makefile
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_use_dynamic/Makefile
cvs rdiff -u -r0 -r1.1.2.2 \
    src/tests/libexec/ld.elf_so/helper_use_dynamic/h_use_dynamic.c
cvs rdiff -u -r0 -r1.3.2.2 \
    src/tests/libexec/ld.elf_so/helper_use_static/Makefile
cvs rdiff -u -r0 -r1.2.2.2 \
    src/tests/libexec/ld.elf_so/helper_use_static/h_use_static.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