Add destructor to unload constload3.
[kopensolaris-gnu/glibc.git] / elf / constload2.c
1 #include <dlfcn.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 extern int bar (void);
6
7 void *h;
8
9 int
10 foo (void)
11 {
12   return 42 + bar ();
13 }
14
15 int
16 baz (void)
17 {
18   return -21;
19 }
20
21 void
22 __attribute__ ((__constructor__))
23 init (void)
24 {
25   h = dlopen ("constload3.so", RTLD_GLOBAL | RTLD_LAZY);
26   if (h == NULL)
27     {
28       puts ("failed to load constload3");
29       exit (1);
30     }
31   else
32     puts ("succeeded loading constload3");
33 }
34
35 static void
36 __attribute__ ((__destructor__))
37 fini (void)
38 {
39   if (dlclose (h) != 0)
40     {
41       puts ("failed to unload constload3");
42       exit (1);
43     }
44   else
45     puts ("succeeded unloading constload3");
46 }