Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* sysdeps/ia64/elf/initfini.c [HAVE_INITFINI_ARRAY]
(gmon_initializer): New function. (.init prologue): If HAVE_INITFINI_ARRAY is true, don't call __gmon_start__ here. Call it from gmon_initializer() instead. 2002-03-12 H.J. Lu <hjl@gnu.org> * elf/Makefile [$(have-initfini-array) = yes] (tests): Add tst-array1, tst-array2, and tst-array3. [$(have-initfini-array) = yes] (tests-static): Add tst-array3. [$(have-initfini-array) = yes] (modules-names): Add tst-array2dep. ($(objpfx)tst-array1.out): New target. ($(objpfx)tst-array2): Likewise. ($(objpfx)tst-array2.out): Likewise. ($(objpfx)tst-array3.out): Likewise. * elf/tst-array1.c: New file. * elf/tst-array1.exp: Likewise. * elf/tst-array2.c: Likewise. * elf/tst-array2dep.c: Likewise. * elf/tst-array2.exp: Likewise. * elf/tst-array3.c: Likewise.
- Loading branch information
Roland McGrath
committed
Nov 7, 2002
1 parent
1d8a0fd
commit dfe4c90
Showing
9 changed files
with
354 additions
and
78 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
#include <unistd.h> | ||
|
||
static void init (void) __attribute__ ((constructor)); | ||
|
||
static void | ||
init (void) | ||
{ | ||
write (STDOUT_FILENO, "init\n", 5); | ||
} | ||
|
||
static void fini (void) __attribute__ ((destructor)); | ||
|
||
static void | ||
fini (void) | ||
{ | ||
write (STDOUT_FILENO, "fini\n", 5); | ||
} | ||
|
||
static void | ||
preinit_0 (void) | ||
{ | ||
write (STDOUT_FILENO, "preinit array 0\n", 16); | ||
} | ||
|
||
static void | ||
preinit_1 (void) | ||
{ | ||
write (STDOUT_FILENO, "preinit array 1\n", 16); | ||
} | ||
|
||
static void | ||
preinit_2 (void) | ||
{ | ||
write (STDOUT_FILENO, "preinit array 2\n", 16); | ||
} | ||
|
||
void (*const preinit_array []) (void) | ||
__attribute__ ((section (".preinit_array"))) = | ||
{ | ||
&preinit_0, | ||
&preinit_1, | ||
&preinit_2 | ||
}; | ||
|
||
static void | ||
init_0 (void) | ||
{ | ||
write (STDOUT_FILENO, "init array 0\n", 13); | ||
} | ||
|
||
static void | ||
init_1 (void) | ||
{ | ||
write (STDOUT_FILENO, "init array 1\n", 13); | ||
} | ||
|
||
static void | ||
init_2 (void) | ||
{ | ||
write (STDOUT_FILENO, "init array 2\n", 13); | ||
} | ||
|
||
void (*const init_array []) (void) __attribute__ ((section (".init_array"))) = | ||
{ | ||
&init_0, | ||
&init_1, | ||
&init_2 | ||
}; | ||
|
||
static void | ||
fini_0 (void) | ||
{ | ||
write (STDOUT_FILENO, "fini array 0\n", 13); | ||
} | ||
|
||
static void | ||
fini_1 (void) | ||
{ | ||
write (STDOUT_FILENO, "fini array 1\n", 13); | ||
} | ||
|
||
static void | ||
fini_2 (void) | ||
{ | ||
write (STDOUT_FILENO, "fini array 2\n", 13); | ||
} | ||
|
||
void (*const fini_array []) (void) __attribute__ ((section (".fini_array"))) = | ||
{ | ||
&fini_0, | ||
&fini_1, | ||
&fini_2 | ||
}; | ||
|
||
int | ||
main (void) | ||
{ | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
preinit array 0 | ||
preinit array 1 | ||
preinit array 2 | ||
init | ||
init array 0 | ||
init array 1 | ||
init array 2 | ||
fini array 2 | ||
fini array 1 | ||
fini array 0 | ||
fini |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include "tst-array1.c" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
preinit array 0 | ||
preinit array 1 | ||
preinit array 2 | ||
DSO init | ||
DSO init array 0 | ||
DSO init array 1 | ||
DSO init array 2 | ||
init | ||
init array 0 | ||
init array 1 | ||
init array 2 | ||
fini array 2 | ||
fini array 1 | ||
fini array 0 | ||
fini | ||
DSO fini array 2 | ||
DSO fini array 1 | ||
DSO fini array 0 | ||
DSO fini |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
#include <unistd.h> | ||
|
||
static void init (void) __attribute__ ((constructor)); | ||
|
||
static void | ||
init (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO init\n", 9); | ||
} | ||
|
||
static void fini (void) __attribute__ ((destructor)); | ||
|
||
static void | ||
fini (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO fini\n", 9); | ||
} | ||
|
||
static void | ||
init_0 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO init array 0\n", 17); | ||
} | ||
|
||
static void | ||
init_1 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO init array 1\n", 17); | ||
} | ||
|
||
static void | ||
init_2 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO init array 2\n", 17); | ||
} | ||
|
||
void (*const init_array []) (void) __attribute__ ((section (".init_array"))) = | ||
{ | ||
&init_0, | ||
&init_1, | ||
&init_2 | ||
}; | ||
|
||
static void | ||
fini_0 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO fini array 0\n", 17); | ||
} | ||
|
||
static void | ||
fini_1 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO fini array 1\n", 17); | ||
} | ||
|
||
static void | ||
fini_2 (void) | ||
{ | ||
write (STDOUT_FILENO, "DSO fini array 2\n", 17); | ||
} | ||
|
||
void (*const fini_array []) (void) __attribute__ ((section (".fini_array"))) = | ||
{ | ||
&fini_0, | ||
&fini_1, | ||
&fini_2 | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
#include "tst-array1.c" |
Oops, something went wrong.