diff --git a/elf/tst-dlopen-sgid.c b/elf/tst-dlopen-sgid.c index 47829a405e..5688b79f2e 100644 --- a/elf/tst-dlopen-sgid.c +++ b/elf/tst-dlopen-sgid.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include #include /* This is the name of our test object. Use a custom module for @@ -66,10 +68,16 @@ do_test (void) free (from); } - TEST_COMPARE (support_capture_subprogram_self_sgid (magic_argument), 0); - free (libdir); + int status = support_capture_subprogram_self_sgid (magic_argument); + + if (WEXITSTATUS (status) == EXIT_UNSUPPORTED) + return EXIT_UNSUPPORTED; + + if (!WIFEXITED (status)) + FAIL_EXIT1 ("Unexpected exit status %d from child process\n", status); + return 0; }