1 /* Special .init and .fini section support for 64 bit S/390.
2 Copyright (C) 2001 Free Software Foundation, Inc.
3 Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
4 This file is part of the GNU C Library.
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with the GNU C Library; if not, write to the Free
18 Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
21 /* This file is compiled into assembly code which is then munged by a sed
22 script into two files: crti.s and crtn.s.
24 * crti.s puts a function prologue at the beginning of the
25 .init and .fini sections and defines global symbols for
26 those addresses, so they can be called as functions.
28 * crtn.s puts the corresponding function epilogues
29 in the .init and .fini sections. */
33 #include \"defs.h\"\n\
41 /*@_init_PROLOG_BEGINS*/\n\
47 .type _init,@function\n\
52 # need frame pointer 0\n\
55 # incoming args (stack) 0\n\
56 # function length 36\n\
61 LARL 12,_GLOBAL_OFFSET_TABLE_\n\
62 LARL 1,__gmon_start__@GOTENT\n\
72 /*@_init_PROLOG_ENDS*/\n\
74 /*@_init_EPILOG_BEGINS*/\n\
85 /*@_init_EPILOG_ENDS*/\n\
87 /*@_fini_PROLOG_BEGINS*/\n\
92 .type _fini,@function\n\
97 # need frame pointer 0\n\
100 # incoming args (stack) 0\n\
101 # function length 30\n\
106 LARL 12,_GLOBAL_OFFSET_TABLE_\n\
111 /*@_fini_PROLOG_ENDS*/\n\
113 /*@_fini_EPILOG_BEGINS*/\n\
124 /*@_fini_EPILOG_ENDS*/\n\