/* A small program used to check that LOCAL_WHOLE_STATIC_LIBRARIES builds * and works properly. Here, we check that the 'foo2' function which is * never called from main is still included in the final executable * image. */ #include <stdio.h> #include <unistd.h> #include <dlfcn.h> int main(int argc, char *argv[]) { void* lib; char buf[PATH_MAX]; sprintf(buf, "%s/libbar.so", getcwd(NULL, 0)); lib = dlopen(buf, RTLD_NOW); if (lib == NULL) { fprintf(stderr, "Could not dlopen(\"libbar.so\"): %s\n", dlerror()); return 1; } if (dlsym(lib, "foo2") == NULL) { fprintf(stderr, "Symbol 'foo2' is missing from shared library!!\n"); return 2; } dlclose(lib); return 0; }