1 /* A small program used to check that LOCAL_WHOLE_STATIC_LIBRARIES builds
2 * and works properly. Here, we check that the 'foo2' function which is
3 * never called from main is still included in the final executable
4 * image.
5 */
6 #include <stdio.h>
7 #include <unistd.h>
8 #include <dlfcn.h>
9
main(int argc,char * argv[])10 int main(int argc, char *argv[])
11 {
12 void* lib;
13 char buf[PATH_MAX];
14 sprintf(buf, "%s/libbar.so", getcwd(NULL, 0));
15 lib = dlopen(buf, RTLD_NOW);
16 if (lib == NULL) {
17 fprintf(stderr, "Could not dlopen(\"libbar.so\"): %s\n", dlerror());
18 return 1;
19 }
20 if (dlsym(lib, "foo2") == NULL) {
21 fprintf(stderr, "Symbol 'foo2' is missing from shared library!!\n");
22 return 2;
23 }
24 dlclose(lib);
25 return 0;
26 }
27