source: vendor/glibc-tests/2005-06-14/elf/tst-array1.c

Last change on this file was 2036, checked in by bird, 20 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 1.4 KB
Line 
1#include <unistd.h>
2
3static void init (void) __attribute__ ((constructor));
4
5static void
6init (void)
7{
8 write (STDOUT_FILENO, "init\n", 5);
9}
10
11static void fini (void) __attribute__ ((destructor));
12
13static void
14fini (void)
15{
16 write (STDOUT_FILENO, "fini\n", 5);
17}
18
19static void
20preinit_0 (void)
21{
22 write (STDOUT_FILENO, "preinit array 0\n", 16);
23}
24
25static void
26preinit_1 (void)
27{
28 write (STDOUT_FILENO, "preinit array 1\n", 16);
29}
30
31static void
32preinit_2 (void)
33{
34 write (STDOUT_FILENO, "preinit array 2\n", 16);
35}
36
37void (*const preinit_array []) (void)
38 __attribute__ ((section (".preinit_array"), aligned (sizeof (void *)))) =
39{
40 &preinit_0,
41 &preinit_1,
42 &preinit_2
43};
44
45static void
46init_0 (void)
47{
48 write (STDOUT_FILENO, "init array 0\n", 13);
49}
50
51static void
52init_1 (void)
53{
54 write (STDOUT_FILENO, "init array 1\n", 13);
55}
56
57static void
58init_2 (void)
59{
60 write (STDOUT_FILENO, "init array 2\n", 13);
61}
62
63void (*const init_array []) (void)
64 __attribute__ ((section (".init_array"), aligned (sizeof (void *)))) =
65{
66 &init_0,
67 &init_1,
68 &init_2
69};
70
71static void
72fini_0 (void)
73{
74 write (STDOUT_FILENO, "fini array 0\n", 13);
75}
76
77static void
78fini_1 (void)
79{
80 write (STDOUT_FILENO, "fini array 1\n", 13);
81}
82
83static void
84fini_2 (void)
85{
86 write (STDOUT_FILENO, "fini array 2\n", 13);
87}
88
89void (*const fini_array []) (void)
90 __attribute__ ((section (".fini_array"), aligned (sizeof (void *)))) =
91{
92 &fini_0,
93 &fini_1,
94 &fini_2
95};
96
97int
98main (void)
99{
100 return 0;
101}
Note: See TracBrowser for help on using the repository browser.