1/* Derived from a test case in
2 https://sourceware.org/bugzilla/show_bug.cgi?id=1158. */
3#include <dlfcn.h>
4#include <stdio.h>
5#include <stdlib.h>
6
7static int
8do_test (void)
9{
10 for (int i = 0; i < 2; ++i)
11 {
12 void *dso = dlopen (file: "$ORIGIN/bug-atexit1-lib.so", RTLD_NOW);
13 void (*fn) (void) = (void (*) (void)) dlsym (handle: dso, name: "foo");
14 fn ();
15 dlclose (handle: dso);
16 puts (s: "round done");
17 }
18
19 return 0;
20}
21
22#define TEST_FUNCTION do_test ()
23#include "../test-skeleton.c"
24

source code of glibc/dlfcn/bug-atexit1.c