From ff5fad1641bbd3b76501e01467b179c6aa6421b8 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 1 Aug 1999 21:43:03 +0000 Subject: [PATCH] Update. * elf/Makefile (tests): Add resolvfail. Add rules to build the program. * elf/resolvfail.c: New file. --- ChangeLog | 4 ++++ elf/Makefile | 8 +++++++- elf/resolvfail.c | 25 +++++++++++++++++++++++++ linuxthreads/ChangeLog | 5 +++++ linuxthreads/Versions | 7 +++++++ 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 elf/resolvfail.c diff --git a/ChangeLog b/ChangeLog index a8d91a8b18..1912919132 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 1999-08-01 Ulrich Drepper + * elf/Makefile (tests): Add resolvfail. Add rules to build the + program. + * elf/resolvfail.c: New file. + * elf/dl-sym.c (_dl_sym): Always determine module of the caller to pass it to _dl_lookup_symbol. diff --git a/elf/Makefile b/elf/Makefile index 5cecc2b3ac..cd0f390d6f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -71,7 +71,7 @@ install-rootsbin += ldconfig endif ifeq (yes,$(build-shared)) -tests = loadtest restest1 preloadtest loadfail multiload origtest +tests = loadtest restest1 preloadtest loadfail multiload origtest resolvfail endif modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \ testobj1_1 failobj @@ -237,3 +237,9 @@ $(objpfx)multiload.out: $(objpfx)testobj1.so $(objpfx)origtest: $(libdl) $(objpfx)origtest.out: $(objpfx)testobj1.so + +ifeq ($(have-thread-library),yes) +$(objpfx)resolvfail: $(libdl) $(shared-thread-library) +else +$(objpfx)resolvfail: $(libdl) +endif diff --git a/elf/resolvfail.c b/elf/resolvfail.c new file mode 100644 index 0000000000..9dd5cbe3d0 --- /dev/null +++ b/elf/resolvfail.c @@ -0,0 +1,25 @@ +#include + +static const char obj[] = "testobj1.so"; + +int +main (void) +{ + void *d = dlopen (obj, RTLD_LAZY); + int n; + + if (d == NULL) + { + printf ("cannot load %s: %s\n", obj, dlerror ()); + return 1; + } + + for (n = 0; n < 10000; ++n) + if (dlsym (d, "does not exist") != NULL) + { + puts ("dlsym() did not fail"); + return 1; + } + + return 0; +} diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index 09a223828b..50c9e01280 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,8 @@ +1999-08-01 Ulrich Drepper + + * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and + __libc_internal_tsd_set. + 1999-07-29 Andreas Jaeger * manager.c: Remove inclusion of since it's not diff --git a/linuxthreads/Versions b/linuxthreads/Versions index 66a8f46b5c..5ec3dacd3d 100644 --- a/linuxthreads/Versions +++ b/linuxthreads/Versions @@ -22,6 +22,13 @@ libc { } } +ld.so { + GLIBC_2.0 { + # Internal libc interface to libpthread + __libc_internal_tsd_get; __libc_internal_tsd_set; + } +} + libpthread { GLIBC_2.0 { # Hidden entry point (through macros).