1#include <dlfcn.h>
2#include <stdio.h>
3#include <stdlib.h>
4
5static int
6do_test (void)
7{
8 void *handle;
9 int (*test) (int);
10 int res;
11
12 handle = dlopen (file: "modstatic.so", RTLD_LAZY);
13 if (handle == NULL)
14 {
15 printf (format: "%s\n", dlerror ());
16 exit(1);
17 }
18
19 test = dlsym (handle: handle, name: "test");
20 if (test == NULL)
21 {
22 printf (format: "%s\n", dlerror ());
23 exit(1);
24 }
25
26 res = test (2);
27 if (res != 4)
28 {
29 printf (format: "Got %i, expected 4\n", res);
30 exit (1);
31 }
32
33 dlclose (handle: handle);
34 return 0;
35}
36
37#define TEST_FUNCTION do_test ()
38#include "../test-skeleton.c"
39

source code of glibc/dlfcn/tststatic.c