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