1*404b540aSrobert /* Definitions of target machine for GNU compiler. 2*404b540aSrobert For ARM with COFF object format. 3*404b540aSrobert Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005 4*404b540aSrobert Free Software Foundation, Inc. 5*404b540aSrobert Contributed by Doug Evans (devans@cygnus.com). 6*404b540aSrobert 7*404b540aSrobert This file is part of GCC. 8*404b540aSrobert 9*404b540aSrobert GCC is free software; you can redistribute it and/or modify it 10*404b540aSrobert under the terms of the GNU General Public License as published 11*404b540aSrobert by the Free Software Foundation; either version 2, or (at your 12*404b540aSrobert option) any later version. 13*404b540aSrobert 14*404b540aSrobert GCC is distributed in the hope that it will be useful, but WITHOUT 15*404b540aSrobert ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16*404b540aSrobert or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17*404b540aSrobert License for more details. 18*404b540aSrobert 19*404b540aSrobert You should have received a copy of the GNU General Public License 20*404b540aSrobert along with GCC; see the file COPYING. If not, write to 21*404b540aSrobert the Free Software Foundation, 51 Franklin Street, Fifth Floor, 22*404b540aSrobert Boston, MA 02110-1301, USA. */ 23*404b540aSrobert 24*404b540aSrobert /* Note - it is important that this definition matches the one in tcoff.h. */ 25*404b540aSrobert #undef USER_LABEL_PREFIX 26*404b540aSrobert #define USER_LABEL_PREFIX "_" 27*404b540aSrobert 28*404b540aSrobert 29*404b540aSrobert /* Run-time Target Specification. */ 30*404b540aSrobert #undef TARGET_VERSION 31*404b540aSrobert #define TARGET_VERSION fputs (" (ARM/coff)", stderr) 32*404b540aSrobert 33*404b540aSrobert #undef TARGET_DEFAULT_FLOAT_ABI 34*404b540aSrobert #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT 35*404b540aSrobert 36*404b540aSrobert #undef TARGET_DEFAULT 37*404b540aSrobert #define TARGET_DEFAULT (MASK_APCS_FRAME) 38*404b540aSrobert 39*404b540aSrobert #ifndef MULTILIB_DEFAULTS 40*404b540aSrobert #define MULTILIB_DEFAULTS \ 41*404b540aSrobert { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" } 42*404b540aSrobert #endif 43*404b540aSrobert 44*404b540aSrobert /* This is COFF, but prefer stabs. */ 45*404b540aSrobert #define SDB_DEBUGGING_INFO 1 46*404b540aSrobert 47*404b540aSrobert #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG 48*404b540aSrobert 49*404b540aSrobert 50*404b540aSrobert #define TARGET_ASM_FILE_START_APP_OFF true 51*404b540aSrobert 52*404b540aSrobert /* Switch into a generic section. */ 53*404b540aSrobert #define TARGET_ASM_NAMED_SECTION default_coff_asm_named_section 54*404b540aSrobert 55*404b540aSrobert /* Support the ctors/dtors and other sections. */ 56*404b540aSrobert 57*404b540aSrobert #undef INIT_SECTION_ASM_OP 58*404b540aSrobert 59*404b540aSrobert /* Define this macro if jump tables (for `tablejump' insns) should be 60*404b540aSrobert output in the text section, along with the assembler instructions. 61*404b540aSrobert Otherwise, the readonly data section is used. */ 62*404b540aSrobert /* We put ARM jump tables in the text section, because it makes the code 63*404b540aSrobert more efficient, but for Thumb it's better to put them out of band. */ 64*404b540aSrobert #define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ARM) 65*404b540aSrobert 66*404b540aSrobert #undef READONLY_DATA_SECTION_ASM_OP 67*404b540aSrobert #define READONLY_DATA_SECTION_ASM_OP "\t.section .rdata" 68*404b540aSrobert #undef CTORS_SECTION_ASM_OP 69*404b540aSrobert #define CTORS_SECTION_ASM_OP "\t.section .ctors,\"x\"" 70*404b540aSrobert #undef DTORS_SECTION_ASM_OP 71*404b540aSrobert #define DTORS_SECTION_ASM_OP "\t.section .dtors,\"x\"" 72*404b540aSrobert 73*404b540aSrobert /* Support the ctors/dtors sections for g++. */ 74*404b540aSrobert 75*404b540aSrobert /* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */ 76*404b540aSrobert #define CTOR_LISTS_DEFINED_EXTERNALLY 77*404b540aSrobert 78*404b540aSrobert #undef DO_GLOBAL_CTORS_BODY 79*404b540aSrobert #undef DO_GLOBAL_DTORS_BODY 80*404b540aSrobert 81*404b540aSrobert /* The ARM development system defines __main. */ 82*404b540aSrobert #define NAME__MAIN "__gccmain" 83*404b540aSrobert #define SYMBOL__MAIN __gccmain 84*404b540aSrobert 85*404b540aSrobert #define SUPPORTS_INIT_PRIORITY 0 86