190075Sobrien/* crti.s for eabi 290075Sobrien Copyright (C) 1996, 2000 Free Software Foundation, Inc. 390075Sobrien Written By Michael Meissner 490075Sobrien 590075SobrienThis file is free software; you can redistribute it and/or modify it 690075Sobrienunder the terms of the GNU General Public License as published by the 790075SobrienFree Software Foundation; either version 2, or (at your option) any 890075Sobrienlater version. 990075Sobrien 1090075SobrienIn addition to the permissions in the GNU General Public License, the 1190075SobrienFree Software Foundation gives you unlimited permission to link the 1290075Sobriencompiled version of this file with other programs, and to distribute 1390075Sobrienthose programs without any restriction coming from the use of this 1490075Sobrienfile. (The General Public License restrictions do apply in other 1590075Sobrienrespects; for example, they cover modification of the file, and 1690075Sobriendistribution when not linked into another program.) 1790075Sobrien 1890075SobrienThis file is distributed in the hope that it will be useful, but 1990075SobrienWITHOUT ANY WARRANTY; without even the implied warranty of 2090075SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 2190075SobrienGeneral Public License for more details. 2290075Sobrien 2390075SobrienYou should have received a copy of the GNU General Public License 2490075Sobrienalong with this program; see the file COPYING. If not, write to 25169689Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 26169689SkanBoston, MA 02110-1301, USA. 2790075Sobrien 2890075Sobrien As a special exception, if you link this library with files 2990075Sobrien compiled with GCC to produce an executable, this does not cause 3090075Sobrien the resulting executable to be covered by the GNU General Public License. 3190075Sobrien This exception does not however invalidate any other reasons why 3290075Sobrien the executable file might be covered by the GNU General Public License. 3390075Sobrien 3490075Sobrien */ 3590075Sobrien 3690075Sobrien/* This file just supplies labeled starting points for the .got* and other 3790075Sobrien special sections. It is linked in first before other modules. */ 3890075Sobrien 3990075Sobrien .file "crti.s" 4090075Sobrien .ident "GNU C crti.s" 4190075Sobrien 4290075Sobrien#include <ppc-asm.h> 4390075Sobrien 44132718Skan#ifndef __powerpc64__ 4590075Sobrien .section ".got","aw" 4690075Sobrien .globl __GOT_START__ 4790075Sobrien .type __GOT_START__,@object 4890075Sobrien__GOT_START__: 4990075Sobrien 5090075Sobrien .section ".got1","aw" 5190075Sobrien .globl __GOT1_START__ 5290075Sobrien .type __GOT1_START__,@object 5390075Sobrien__GOT1_START__: 5490075Sobrien 5590075Sobrien .section ".got2","aw" 5690075Sobrien .globl __GOT2_START__ 5790075Sobrien .type __GOT2_START__,@object 5890075Sobrien__GOT2_START__: 5990075Sobrien 6090075Sobrien .section ".fixup","aw" 6190075Sobrien .globl __FIXUP_START__ 6290075Sobrien .type __FIXUP_START__,@object 6390075Sobrien__FIXUP_START__: 6490075Sobrien 6590075Sobrien .section ".ctors","aw" 6690075Sobrien .globl __CTOR_LIST__ 6790075Sobrien .type __CTOR_LIST__,@object 6890075Sobrien__CTOR_LIST__: 6990075Sobrien 7090075Sobrien .section ".dtors","aw" 7190075Sobrien .globl __DTOR_LIST__ 7290075Sobrien .type __DTOR_LIST__,@object 7390075Sobrien__DTOR_LIST__: 7490075Sobrien 7590075Sobrien .section ".sdata","aw" 7690075Sobrien .globl __SDATA_START__ 7790075Sobrien .type __SDATA_START__,@object 7890075Sobrien .weak _SDA_BASE_ 7990075Sobrien .type _SDA_BASE_,@object 8090075Sobrien__SDATA_START__: 8190075Sobrien_SDA_BASE_: 8290075Sobrien 8390075Sobrien .section ".sbss","aw",@nobits 8490075Sobrien .globl __SBSS_START__ 8590075Sobrien .type __SBSS_START__,@object 8690075Sobrien__SBSS_START__: 8790075Sobrien 8890075Sobrien .section ".sdata2","a" 8990075Sobrien .weak _SDA2_BASE_ 9090075Sobrien .type _SDA2_BASE_,@object 9190075Sobrien .globl __SDATA2_START__ 9290075Sobrien .type __SDATA2_START__,@object 9390075Sobrien__SDATA2_START__: 9490075Sobrien_SDA2_BASE_: 9590075Sobrien 9690075Sobrien .section ".sbss2","a" 9790075Sobrien .globl __SBSS2_START__ 9890075Sobrien .type __SBSS2_START__,@object 9990075Sobrien__SBSS2_START__: 10090075Sobrien 10190075Sobrien .section ".gcc_except_table","aw" 10290075Sobrien .globl __EXCEPT_START__ 10390075Sobrien .type __EXCEPT_START__,@object 10490075Sobrien__EXCEPT_START__: 10590075Sobrien 10690075Sobrien .section ".eh_frame","aw" 10790075Sobrien .globl __EH_FRAME_BEGIN__ 10890075Sobrien .type __EH_FRAME_BEGIN__,@object 10990075Sobrien__EH_FRAME_BEGIN__: 11090075Sobrien 11190075Sobrien/* Head of __init function used for static constructors. */ 11290075Sobrien .section ".init","ax" 11390075Sobrien .align 2 11490075SobrienFUNC_START(__init) 11590075Sobrien stwu 1,-16(1) 11690075Sobrien mflr 0 11790075Sobrien stw 0,20(1) 11890075Sobrien 11990075Sobrien/* Head of __fini function used for static destructors. */ 12090075Sobrien .section ".fini","ax" 12190075Sobrien .align 2 12290075SobrienFUNC_START(__fini) 12390075Sobrien stwu 1,-16(1) 12490075Sobrien mflr 0 12590075Sobrien stw 0,20(1) 126132718Skan#endif 127