Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
2002-08-21 Roland McGrath <roland@redhat.com>
* dlfcn/bug-dlsym1.c: New file. * dlfcn/bug-dlsym1-lib1.c, dlfcn/bug-dlsym1-lib2.c: New files. * dlfcn/Makefile (distribute): Add them. (tests): Add bug-dlsym1 here. (modules-names): Add bug-dlsym1-lib1 and bug-dlsym1-lib2 here. ($(objpfx)bug-dlsym1, $(objpfx)bug-dlsym1.out): New targets. ($(objpfx)bug-dlsym1-lib1.so, $(objpfx)bug-dlsym1-lib2.so): Likewise.
- Loading branch information
Roland McGrath
committed
Aug 21, 2002
1 parent
01d8e36
commit c3fd12a
Showing
4 changed files
with
59 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
/* Test module for bug-dlsym1.c test case. */ | ||
|
||
extern int dlopen_test_variable; | ||
|
||
/* here to get the unresolved symbol in our .so */ | ||
char foo() | ||
{ | ||
return dlopen_test_variable; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
/* Test module for bug-dlsym1.c test case. */ | ||
|
||
char dlopen_test_variable; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
/* Test case for bug in dlsym accessing dependency objects' symbols. */ | ||
|
||
#include <stdlib.h> | ||
#include <stdio.h> | ||
#include <unistd.h> | ||
#include <dlfcn.h> | ||
|
||
int main(void) | ||
{ | ||
void *handle; | ||
char *c; | ||
|
||
setenv ("LD_LIBRARY_PATH", "/home/roland/build/tls-libc/dlfcn", 1); | ||
|
||
/* open lib1.so, which has the unresolved test symbol and a DT_NEEDED | ||
on lib2.so, which provides the symbol */ | ||
if ((handle = dlopen("bug-dlsym1-lib1.so", RTLD_NOW)) == NULL) { | ||
printf("dlopen(\"bug-dlsym1-lib1.so\"): %s\n", dlerror()); | ||
abort(); | ||
} | ||
|
||
if ((c = dlsym(handle, "dlopen_test_variable")) == NULL) { | ||
printf("dlsym(handle, \"dlopen_test_variable\"): %s\n", dlerror()); | ||
abort(); | ||
} | ||
|
||
(void) dlclose(handle); | ||
|
||
return 0; | ||
} |