1 #include <dlfcn.h> 2 #include <stdio.h> 3 4 // Mark foo and bar weak so that Clang allows the run-time linker to decide which DSO's symbol to 5 // use. 6 bar()7__attribute__((weak)) extern "C" void bar() { 8 printf("bar lib2\n"); 9 void (*next)(void) = reinterpret_cast<void (*)()>(dlsym(RTLD_NEXT, "bar")); 10 if (next != nullptr) next(); 11 } 12