#include <stdio.h> extern int libtest2_func(const char *s); void __attribute__((constructor)) libtest1_ctor(void); void libtest1_ctor(void) { printf("libtest1: constructor!\n"); } void __attribute__((destructor)) libtest1_dtor(void); void libtest1_dtor(void) { printf("libtest1: destructor!\n"); } void __attribute__((weak)) function1(void); void function1(void) { printf("libtest1: I am weak function1!\n"); } void function2(void); void function2(void) { printf("libtest1: I am function2!\n"); } int dltest(const char *s); int dltest(const char *s) { printf( "libtest1: function1 = %p\n" "libtest1: function2 = %p\n", function1, function2); function1(); function2(); return(libtest2_func(s)); }