1999-08-01 Ulrich Drepper <drepper@cygnus.com>
+ * 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.
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
$(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
--- /dev/null
+#include <dlfcn.h>
+
+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;
+}
+1999-08-01 Ulrich Drepper <drepper@cygnus.com>
+
+ * Versions [ld.so] (GLIBC_2.0): Export __libc_internal_tsd_get and
+ __libc_internal_tsd_set.
+
1999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manager.c: Remove inclusion of <linux/tasks.h> since it's not
}
}
+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).