123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #include <pthread.h>
- #include <fcntl.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <dlfcn.h>
- extern void _dlinfo();
- extern int __pthread_return_0 (void);
- #undef __UCLIBC__
- int main(int argc, char **argv) {
- void *handle;
- int (*myhowdy)(const char *s);
- char *error;
- #ifdef __UCLIBC__
- _dlinfo(); /* not supported by ld.so.2 */
- #endif
- handle = dlopen ("./libhowdy.so", RTLD_LAZY);
- if (!handle) {
- fputs (dlerror(), stderr);
- exit(1);
- }
- myhowdy = dlsym(handle, "howdy");
- if ((error = dlerror()) != NULL) {
- fputs(error, stderr);
- exit(1);
- }
- #ifdef FORCE
- printf("main: __pthread_return_0 = %p\n", __pthread_return_0);
- #endif
- myhowdy("hello world!\n");
- #ifdef __UCLIBC__
- _dlinfo(); /* not supported by ld.so.2 */
- #endif
- dlclose(handle);
- return EXIT_SUCCESS;
- }
|