Mention IFUNC enhancements to testsuite in NEWS.
[platform/upstream/glibc.git] / elf / constload1.c
index 1435284..7381bee 100644 (file)
@@ -1,6 +1,8 @@
 #include <dlfcn.h>
 #include <errno.h>
 #include <error.h>
+#include <mcheck.h>
+#include <stdio.h>
 #include <stdlib.h>
 
 int
@@ -10,11 +12,21 @@ main (void)
   void *h;
   int ret;
 
+  mtrace ();
+
   h = dlopen ("constload2.so", RTLD_LAZY | RTLD_GLOBAL);
   if (h == NULL)
     error (EXIT_FAILURE, errno, "cannot load module \"constload2.so\"");
   foo = dlsym (h, "foo");
   ret = foo ();
-  dlclose (h);
+  /* Note that the following dlclose() call cannot unload the objects.
+     Due to the introduced relocation dependency constload2.so depends
+     on constload3.so and the dependencies of constload2.so on constload3.so
+     is not visible to ld.so since it's done using dlopen().  */
+  if (dlclose (h) != 0)
+    {
+      puts ("failed to close");
+      exit (EXIT_FAILURE);
+    }
   return ret;
 }