Back to index

glibc  2.9
tst-array2dep.c
Go to the documentation of this file.
00001 #include <unistd.h>
00002 
00003 static void init (void) __attribute__ ((constructor));
00004 
00005 static void
00006 init (void)
00007 {
00008   write (STDOUT_FILENO, "DSO init\n", 9);
00009 }
00010 
00011 static void fini (void) __attribute__ ((destructor));
00012 
00013 static void
00014 fini (void)
00015 {
00016   write (STDOUT_FILENO, "DSO fini\n", 9);
00017 }
00018 
00019 static void
00020 init_0 (void)
00021 {
00022   write (STDOUT_FILENO, "DSO init array 0\n", 17);
00023 }
00024 
00025 static void
00026 init_1 (void)
00027 {
00028   write (STDOUT_FILENO, "DSO init array 1\n", 17);
00029 }
00030 
00031 static void
00032 init_2 (void)
00033 {
00034   write (STDOUT_FILENO, "DSO init array 2\n", 17);
00035 }
00036 
00037 void (*const init_array []) (void)
00038      __attribute__ ((section (".init_array"), aligned (sizeof (void *)))) =
00039 {
00040   &init_0,
00041   &init_1,
00042   &init_2
00043 };
00044 
00045 static void
00046 fini_0 (void)
00047 {
00048   write (STDOUT_FILENO, "DSO fini array 0\n", 17);
00049 }
00050 
00051 static void
00052 fini_1 (void)
00053 {
00054   write (STDOUT_FILENO, "DSO fini array 1\n", 17);
00055 }
00056 
00057 static void
00058 fini_2 (void)
00059 {
00060   write (STDOUT_FILENO, "DSO fini array 2\n", 17);
00061 }
00062 
00063 void (*const fini_array []) (void)
00064      __attribute__ ((section (".fini_array"), aligned (sizeof (void *)))) =
00065 {
00066   &fini_0,
00067   &fini_1,
00068   &fini_2
00069 };