(root)/
glibc-2.38/
dlfcn/
bug-dlsym1.c
       1  /* Test case for bug in dlsym accessing dependency objects' symbols.  */
       2  
       3  #include <stdlib.h>
       4  #include <stdio.h>
       5  #include <unistd.h>
       6  #include <dlfcn.h>
       7  
       8  int main(void)
       9  {
      10      void *handle;
      11      char *c;
      12  
      13      /* open lib1.so, which has the unresolved test symbol and a DT_NEEDED
      14         on lib2.so, which provides the symbol */
      15      if ((handle = dlopen("bug-dlsym1-lib1.so", RTLD_NOW)) == NULL) {
      16  	printf("dlopen(\"bug-dlsym1-lib1.so\"): %s\n", dlerror());
      17  	abort();
      18      }
      19  
      20      if ((c = dlsym(handle, "dlopen_test_variable")) == NULL) {
      21  	printf("dlsym(handle, \"dlopen_test_variable\"): %s\n", dlerror());
      22  	abort();
      23      }
      24  
      25      (void) dlclose(handle);
      26  
      27      return 0;
      28  }