PR/59751 CVS commit: src

"Taylor R Campbell" <[email protected]>
Newsgroups gmane.os.netbsd.bugs
Message-ID <[email protected]>
The following reply was made to PR lib/59751; it has been noted by GNATS.

From: "Taylor R Campbell" <[email protected]>
To: [email protected]
Cc: 
Subject: PR/59751 CVS commit: src
Date: Thu, 16 Jul 2026 02:50:11 +0000

 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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.