diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | elf/tst-dlopen-aout.c | 12 |
2 files changed, 11 insertions, 6 deletions
@@ -1,3 +1,8 @@ +2018-08-30 Carlos O'Donell <carlos@redhat.com> + + * elf/tst-dlopen-aout.c: Include support/xthread.h. Use + xpthread_create and xpthread_join. + 2018-08-30 Florian Weimer <fweimer@redhat.com> * stdlib/stdlib.h (reallocarray): Make available under __USE_MISC. 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 <dlfcn.h> #include <stdio.h> #include <pthread.h> +#include <support/xthread.h> __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; |