| #include <stdio.h> |
| #include <pthread.h> |
| |
| void __attribute__((constructor)) libtest2_ctor(void); |
| void libtest2_ctor(void) |
| { |
| printf("libtest2: constructor!\n"); |
| } |
| |
| void __attribute__((destructor)) libtest2_dtor(void); |
| void libtest2_dtor(void) |
| { |
| printf("libtest2: destructor!\n"); |
| } |
| |
| void function1(void); |
| void function1(void) |
| { |
| printf("libtest2: I am function1!\n"); |
| } |
| |
| void __attribute__((weak)) function2(void); |
| void function2(void) |
| { |
| printf("libtest2: I am weak function2!\n"); |
| } |
| |
| |
| int libtest2_func(const char *s); |
| int libtest2_func(const char *s) |
| { |
| printf( "libtest2: function1 = %p\n" |
| "libtest2: function2 = %p\n", |
| function1, function2); |
| function1(); |
| function2(); |
| return 0; |
| } |