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