diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-01-19 23:47:25 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-01-19 23:47:25 +0000 |
commit | 6bd0638460756557bab2c3c176fd31f5e0ba6e1b (patch) | |
tree | 17d10cdd1c425896153d360ac1d6b3a1366738a0 /elf/restest1.c | |
parent | Update. (diff) | |
download | glibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.tar.gz glibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.tar.bz2 glibc-6bd0638460756557bab2c3c176fd31f5e0ba6e1b.zip |
Update.
* elf/restest1.c: New file. Symbol resolution test.
* elf/testobj1_1.c: New file. Module used in this test.
* elf/Makefile: Add rules for restest1 generation and execution.
Diffstat (limited to 'elf/restest1.c')
-rw-r--r-- | elf/restest1.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/elf/restest1.c b/elf/restest1.c new file mode 100644 index 0000000000..e4eca557c5 --- /dev/null +++ b/elf/restest1.c @@ -0,0 +1,48 @@ +#include <dlfcn.h> +#include <error.h> +#include <stdio.h> +#include <stdlib.h> + +int +main (void) +{ + void *h1; + int (*fp1) (int); + void *h2; + int (*fp2) (int); + int res1; + int res2; + + h1 = dlopen ("testobj1.so", RTLD_LAZY); + if (h1 == NULL) + error (EXIT_FAILURE, 0, "while loading `%s': %s", "testobj1.so", + dlerror ()); + + h2 = dlopen ("testobj1_1.so", RTLD_LAZY); + if (h1 == NULL) + error (EXIT_FAILURE, 0, "while loading `%s': %s", "testobj1_1.so", + dlerror ()); + + fp1 = dlsym (h1, "obj1func1"); + if (fp1 == NULL) + error (EXIT_FAILURE, 0, "getting `obj1func1' in `%s': %s", + "testobj1.so", dlerror ()); + + fp2 = dlsym (h2, "obj1func1"); + if (fp2 == NULL) + error (EXIT_FAILURE, 0, "getting `obj1func1' in `%s': %s", + "testobj1_1.so", dlerror ()); + + res1 = fp1 (10); + res2 = fp2 (10); + printf ("fp1(10) = %d\nfp2(10) = %d\n", res1, res2); + + return res1 != 42 || res2 != 72; +} + + +int +foo (int a) +{ + return a + 10; +} |