From d330f31af68f96dde82840d1e9343b479a8c179e Mon Sep 17 00:00:00 2001 From: Carlos O'Donell Date: Thu, 30 Aug 2018 11:01:33 -0400 Subject: Fix test failure with -DNDEBUG. The elf/tst-dlopen-aout.c test uses asserts to verify properties of the test execution. Instead of using assert it should use xpthread_create and xpthread_join to catch errors starting the threads and fail the test. This shows up in Fedora 28 when building for i686-pc-linux-gnu and using gcc 8.1.1. Tested on i686, and fixes a check failure with -DNDEBUG. Signed-off-by: Carlos O'Donell --- elf/tst-dlopen-aout.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'elf') diff --git a/elf/tst-dlopen-aout.c b/elf/tst-dlopen-aout.c index 9038e20..b026451 100644 --- a/elf/tst-dlopen-aout.c +++ b/elf/tst-dlopen-aout.c @@ -27,6 +27,7 @@ #include #include #include +#include __thread int x; @@ -45,7 +46,6 @@ do_test (int argc, char *argv[]) { pthread_t thr; void *p; - int rc; p = dlopen (argv[0], RTLD_LAZY); if (p != NULL) @@ -53,11 +53,11 @@ do_test (int argc, char *argv[]) fprintf (stderr, "dlopen unexpectedly succeeded\n"); return 1; } - rc = pthread_create (&thr, NULL, fn, NULL); - assert (rc == 0); - - rc = pthread_join (thr, NULL); - assert (rc == 0); + /* We create threads to force TLS allocation, which triggers + the original bug i.e. running out of surplus slotinfo entries + for TLS. */ + thr = xpthread_create (NULL, fn, NULL); + xpthread_join (thr); } return 0; -- cgit v1.1