00001 /* Frv initialization file linked after all user modules 00002 Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc. 00003 Contributed by Red Hat, Inc. 00004 00005 This file is part of GCC. 00006 00007 GCC is free software ; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation * either version 2, or (at your option) 00010 any later version. 00011 00012 GCC is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY ; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with GCC; see the file COPYING. If not, write to 00019 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. */ 00021 00022 /* As a special exception, if you link this library with other files, 00023 some of which are compiled with GCC, to produce an executable, 00024 this library does not by itself cause the resulting executable 00025 to be covered by the GNU General Public License. 00026 This exception does not however invalidate any other reasons why 00027 the executable file might be covered by the GNU General Public License. */ 00028 00029 #include "defaults.h" 00030 #include <stddef.h> 00031 #include "unwind-dw2-fde.h" 00032 00033 #ifdef __FRV_UNDERSCORE__ 00034 #define UNDERSCORE "_" 00035 #else 00036 #define UNDERSCORE "" 00037 #endif 00038 00039 #define FINI_SECTION_ZERO(SECTION, FLAGS, NAME) \ 00040 __asm__ (".section " SECTION "," FLAGS "\n\t" \ 00041 ".globl " UNDERSCORE NAME "\n\t" \ 00042 ".type " UNDERSCORE NAME ",@object\n\t" \ 00043 ".p2align 2\n" \ 00044 UNDERSCORE NAME ":\n\t" \ 00045 ".word 0\n\t" \ 00046 ".previous") 00047 00048 #define FINI_SECTION(SECTION, FLAGS, NAME) \ 00049 __asm__ (".section " SECTION "," FLAGS "\n\t" \ 00050 ".globl " UNDERSCORE NAME "\n\t" \ 00051 ".type " UNDERSCORE NAME ",@object\n\t" \ 00052 ".p2align 2\n" \ 00053 UNDERSCORE NAME ":\n\t" \ 00054 ".previous") 00055 00056 /* End of .ctor/.dtor sections that provides a list of constructors and 00057 destructors to run. */ 00058 00059 FINI_SECTION_ZERO (".ctors", "\"aw\"", "__CTOR_END__"); 00060 FINI_SECTION_ZERO (".dtors", "\"aw\"", "__DTOR_END__"); 00061 00062 /* End of .eh_frame section that provides all of the exception handling 00063 tables. */ 00064 00065 FINI_SECTION_ZERO (".eh_frame", "\"aw\"", "__FRAME_END__"); 00066 00067 #if ! __FRV_FDPIC__ 00068 /* In FDPIC, the linker itself generates this. */ 00069 /* End of .rofixup section that provides a list of pointers that we 00070 need to adjust. */ 00071 00072 FINI_SECTION (".rofixup", "\"a\"", "__ROFIXUP_END__"); 00073 #endif /* __FRV_FDPIC__ */
1.5.6