From 3fe400152688be6f4fea1f9dd07e8d8fe5be4e46 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 16 Sep 2000 09:08:30 +0000 Subject: Update. 2000-09-16 Ulrich Drepper * dlfcn/Makefile (distribute): Add defaultmod1.c and defaultmod2.c. (test): Add default. (modules-names): Add defaultmod1 and defaultmod2. Add rules to build test objects. --- dlfcn/default.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 dlfcn/default.c (limited to 'dlfcn/default.c') diff --git a/dlfcn/default.c b/dlfcn/default.c new file mode 100644 index 0000000..98c0b2a --- /dev/null +++ b/dlfcn/default.c @@ -0,0 +1,64 @@ +#include +#include + + +extern int test_in_mod1 (void *); +extern int test_in_mod2 (void *); + + +int +main (int argc, char *argv[]) +{ + int (*ifp) (void); + void *p; + int result = 0; + + /* Find function `main'. */ + p = dlsym (RTLD_DEFAULT, "main"); + if (p == NULL) + { + printf ("%s: main not found\n", __FILE__); + result = 1; + } + else if (p != (void *) &main) + { + printf ("%s: wrong address returned for main\n", __FILE__); + result = 1; + } + else + printf ("%s: main correctly found\n", __FILE__); + + ifp = dlsym (RTLD_DEFAULT, "found_in_mod1"); + if ((void *) ifp == NULL) + { + printf ("%s: found_in_mod1 not found\n", __FILE__); + result = 1; + } + else if (ifp () != 1) + { + printf ("%s: wrong address returned for found_in_mod1\n", __FILE__); + result = 1; + } + else + printf ("%s: found_in_mod1 correctly found\n", __FILE__); + + ifp = dlsym (RTLD_DEFAULT, "found_in_mod2"); + if ((void *) ifp == NULL) + { + printf ("%s: found_in_mod2 not found\n", __FILE__); + result = 1; + } + else if (ifp () != 2) + { + printf ("%s: wrong address returned for found_in_mod2\n", __FILE__); + result = 1; + } + else + printf ("%s: found_in_mod2 correctly found\n", __FILE__); + + result |= test_in_mod1 ((void *) &main); + + result |= test_in_mod2 ((void *) &main); + + return result; +} -- cgit v1.1