/* Test case for bug in dlsym accessing dependency objects' symbols. */ #include #include #include #include int main(void) { void *handle; char *c; /* open lib1.so, which has the unresolved test symbol and a DT_NEEDED on lib2.so, which provides the symbol */ if ((handle = dlopen("bug-dlsym1-lib1.so", RTLD_NOW)) == NULL) { printf("dlopen(\"bug-dlsym1-lib1.so\"): %s\n", dlerror()); abort(); } if ((c = dlsym(handle, "dlopen_test_variable")) == NULL) { printf("dlsym(handle, \"dlopen_test_variable\"): %s\n", dlerror()); abort(); } (void) dlclose(handle); return 0; }