| #include "../dlfcn/dlfcn.h" | 
 | #include <stdio.h> | 
 | #include <stdlib.h> | 
 |  | 
 | static int | 
 | do_test (void) | 
 | { | 
 |   int result = 0; | 
 |  | 
 |   /* This is a test for correct handling of dlopen failures for library that | 
 |      is loaded with RTLD_NODELETE flag.  The first dlopen should fail because | 
 |      of undefined symbols in shared library.  The second dlopen then verifies | 
 |      that library was properly unloaded.  */ | 
 |   if (dlopen ("tst-nodelete-rtldmod.so", RTLD_NOW | RTLD_NODELETE) != NULL | 
 |       || dlopen ("tst-nodelete-rtldmod.so", RTLD_LAZY | RTLD_NOLOAD) != NULL) | 
 |     { | 
 |       printf ("RTLD_NODELETE test failed\n"); | 
 |       result = 1; | 
 |     } | 
 |  | 
 |   /* This is a test for correct handling of dlopen failures for library that | 
 |      is linked with '-z nodelete' option and hence has DF_1_NODELETE flag. | 
 |      The first dlopen should fail because of undefined symbols in shared | 
 |      library.  The second dlopen then verifies that library was properly | 
 |      unloaded.  */ | 
 |   if (dlopen ("tst-nodelete-zmod.so", RTLD_NOW) != NULL | 
 |       || dlopen ("tst-nodelete-zmod.so", RTLD_LAZY | RTLD_NOLOAD) != NULL) | 
 |     { | 
 |       printf ("-z nodelete test failed\n"); | 
 |       result = 1; | 
 |     } | 
 |  | 
 |    /* This is a test for correct handling of dlopen failures for library | 
 |      with unique symbols.  The first dlopen should fail because of undefined | 
 |      symbols in shared library.  The second dlopen then verifies that library | 
 |      was properly unloaded.  */ | 
 |   if (dlopen ("tst-nodelete-uniquemod.so", RTLD_NOW) != NULL | 
 |       || dlopen ("tst-nodelete-uniquemod.so", RTLD_LAZY | RTLD_NOLOAD) != NULL) | 
 |     { | 
 |       printf ("Unique symbols test failed\n"); | 
 |       result = 1; | 
 |     } | 
 |  | 
 |   if (result == 0) | 
 |     printf ("SUCCESS\n"); | 
 |  | 
 |   return result; | 
 | } | 
 |  | 
 | #define TEST_FUNCTION do_test () | 
 | #include "../test-skeleton.c" |