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:   riastradh
Date:           Thu Jul 16 02:50:11 UTC 2026

Modified Files:
        src/distrib/sets/lists/debug: shl.mi
        src/distrib/sets/lists/tests: shl.mi
        src/tests/libexec/ld.elf_so: Makefile t_dlclose_thread.c
Added Files:
        src/tests/libexec/ld.elf_so/helper_recurdso: Makefile
            h_helper_recurdso.c
        src/tests/libexec/ld.elf_so/helper_recurdso2: Makefile
            h_helper_recurdso2.c

Log Message:
t_dlclose_thread: Test recursive dlopen/dlclose too.

Simple test first:

- h_helper_recurdso dlopens h_helper_dso2
- h_helper_dso2 needs h_helper_dso1

When dlopening h_helper_recurdso, the initialization order must be:

ENTER h_helper_recurdso
-> h_helper_dso1
-> h_helper_dso2
LEAVE h_helper_recurdso

For the more complex test, we have the relations:

- h_helper_recurdso2 needs h_helper_recurdso
- h_helper_recurdso dlopens h_helper_dso2
- h_helper_dso2 needs h_helper_dso1

(And the finalization order must be in reverse.)

When dlopening h_helper_recurdso2, the initialization order,
therefore, must be:

ENTER h_helper_recurdso
-> h_helper_dso1
-> h_helper_dso2
LEAVE h_helper_recurdso
h_helper_recurdso2

PR lib/59751: dlclose is not MT-safe depending on the libraries
unloaded

(Really, this is about a followup bug in the fix for that issue,
which broke recursive dlopen/dlclose.)


To generate a diff of this commit:
cvs rdiff -u -r1.409 -r1.410 src/distrib/sets/lists/debug/shl.mi
cvs rdiff -u -r1.17 -r1.18 src/distrib/sets/lists/tests/shl.mi
cvs rdiff -u -r1.35 -r1.36 src/tests/libexec/ld.elf_so/Makefile
cvs rdiff -u -r1.3 -r1.4 src/tests/libexec/ld.elf_so/t_dlclose_thread.c
cvs rdiff -u -r0 -r1.1 src/tests/libexec/ld.elf_so/helper_recurdso/Makefile \
    src/tests/libexec/ld.elf_so/helper_recurdso/h_helper_recurdso.c
cvs rdiff -u -r0 -r1.1 src/tests/libexec/ld.elf_so/helper_recurdso2/Makefile \
    src/tests/libexec/ld.elf_so/helper_recurdso2/h_helper_recurdso2.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