aboutsummaryrefslogtreecommitdiff
path: root/stdlib/tst-tls-atexit-lib.c
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@redhat.com>2015-07-21 07:14:16 +0530
committerSiddhesh Poyarekar <siddhesh@redhat.com>2015-07-21 07:14:17 +0530
commitd72c2763056b9c0de69886f8f3e6c3ed0aaa6dd4 (patch)
treea947c3e64ac3c37cc01dbea0140174ca8e9e5298 /stdlib/tst-tls-atexit-lib.c
parent530deb962fb9c6ccbcf773051ab89569ae1b7d7e (diff)
downloadglibc-d72c2763056b9c0de69886f8f3e6c3ed0aaa6dd4.zip
glibc-d72c2763056b9c0de69886f8f3e6c3ed0aaa6dd4.tar.gz
glibc-d72c2763056b9c0de69886f8f3e6c3ed0aaa6dd4.tar.bz2
Remove Linuxism from tst-tls-atexit
The tst-tls-atexit test case searches for its module in /proc/PID/maps to verify that it is unloaded, which is a Linux-specific test. This patch makes the test generic by looking for the library in the link map list in the _r_debug structure. Verified that the test continues to succeed on x86_64. There is a bug in the test case where it calls dlclose once again, which is actually incorrect but still manages to unload the DSO thanks to an existing bug in __tls_call_dtors. This will be fixed in a later patch which also fixes up the __cxa_thread_atexit_impl implementation. I have added a FIXME comment to that call momentarily, which I will remove when I fix the problem. * stdlib/tst-tls-atexit-lib.c (do_foo): Rename to reg_dtor. * stdlib/tst-tls-atexit.c: (is_loaded): New function. (spawn_thread): New function. (load): Rename to reg_dtor_and_close. Move dlopen to... (do_test): ... here. Use IS_LOADED to test for its availability.
Diffstat (limited to 'stdlib/tst-tls-atexit-lib.c')
-rw-r--r--stdlib/tst-tls-atexit-lib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/stdlib/tst-tls-atexit-lib.c b/stdlib/tst-tls-atexit-lib.c
index 2945379..2478d80 100644
--- a/stdlib/tst-tls-atexit-lib.c
+++ b/stdlib/tst-tls-atexit-lib.c
@@ -31,7 +31,7 @@ void A_dtor (void *obj)
((A *)obj)->val = obj;
}
-void do_foo (void)
+void reg_dtor (void)
{
static __thread A b;
__cxa_thread_atexit_impl (A_dtor, &b, __dso_handle);