mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-29 08:11:08 +00:00
Update.
* elf/Makefile (tests): Add resolvfail. Add rules to build the program. * elf/resolvfail.c: New file.
This commit is contained in:
parent
4f2793d41f
commit
ff5fad1641
@ -1,5 +1,9 @@
|
|||||||
1999-08-01 Ulrich Drepper <drepper@cygnus.com>
|
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
|
* elf/dl-sym.c (_dl_sym): Always determine module of the caller to
|
||||||
pass it to _dl_lookup_symbol.
|
pass it to _dl_lookup_symbol.
|
||||||
|
|
||||||
|
@ -71,7 +71,7 @@ install-rootsbin += ldconfig
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (yes,$(build-shared))
|
ifeq (yes,$(build-shared))
|
||||||
tests = loadtest restest1 preloadtest loadfail multiload origtest
|
tests = loadtest restest1 preloadtest loadfail multiload origtest resolvfail
|
||||||
endif
|
endif
|
||||||
modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
|
modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
|
||||||
testobj1_1 failobj
|
testobj1_1 failobj
|
||||||
@ -237,3 +237,9 @@ $(objpfx)multiload.out: $(objpfx)testobj1.so
|
|||||||
|
|
||||||
$(objpfx)origtest: $(libdl)
|
$(objpfx)origtest: $(libdl)
|
||||||
$(objpfx)origtest.out: $(objpfx)testobj1.so
|
$(objpfx)origtest.out: $(objpfx)testobj1.so
|
||||||
|
|
||||||
|
ifeq ($(have-thread-library),yes)
|
||||||
|
$(objpfx)resolvfail: $(libdl) $(shared-thread-library)
|
||||||
|
else
|
||||||
|
$(objpfx)resolvfail: $(libdl)
|
||||||
|
endif
|
||||||
|
25
elf/resolvfail.c
Normal file
25
elf/resolvfail.c
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
#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;
|
||||||
|
}
|
@ -1,3 +1,8 @@
|
|||||||
|
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>
|
1999-07-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
|
||||||
|
|
||||||
* manager.c: Remove inclusion of <linux/tasks.h> since it's not
|
* manager.c: Remove inclusion of <linux/tasks.h> since it's not
|
||||||
|
@ -22,6 +22,13 @@ libc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ld.so {
|
||||||
|
GLIBC_2.0 {
|
||||||
|
# Internal libc interface to libpthread
|
||||||
|
__libc_internal_tsd_get; __libc_internal_tsd_set;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
libpthread {
|
libpthread {
|
||||||
GLIBC_2.0 {
|
GLIBC_2.0 {
|
||||||
# Hidden entry point (through macros).
|
# Hidden entry point (through macros).
|
||||||
|
Loading…
Reference in New Issue
Block a user