190075Sobrien/* Definitions of target machine for GNU compiler. 290075Sobrien For ARM with COFF object format. 3169689Skan Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005 490075Sobrien Free Software Foundation, Inc. 590075Sobrien Contributed by Doug Evans (devans@cygnus.com). 690075Sobrien 7132718Skan This file is part of GCC. 890075Sobrien 9132718Skan GCC is free software; you can redistribute it and/or modify it 10132718Skan under the terms of the GNU General Public License as published 11132718Skan by the Free Software Foundation; either version 2, or (at your 12132718Skan option) any later version. 1390075Sobrien 14132718Skan GCC is distributed in the hope that it will be useful, but WITHOUT 15132718Skan ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 16132718Skan or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 17132718Skan License for more details. 1890075Sobrien 19132718Skan You should have received a copy of the GNU General Public License 20132718Skan along with GCC; see the file COPYING. If not, write to 21169689Skan the Free Software Foundation, 51 Franklin Street, Fifth Floor, 22169689Skan Boston, MA 02110-1301, USA. */ 2390075Sobrien 24132718Skan/* Note - it is important that this definition matches the one in tcoff.h. */ 2590075Sobrien#undef USER_LABEL_PREFIX 2690075Sobrien#define USER_LABEL_PREFIX "_" 2790075Sobrien 2890075Sobrien 2990075Sobrien/* Run-time Target Specification. */ 3090075Sobrien#undef TARGET_VERSION 3190075Sobrien#define TARGET_VERSION fputs (" (ARM/coff)", stderr) 3290075Sobrien 33169689Skan#undef TARGET_DEFAULT_FLOAT_ABI 34169689Skan#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT 35169689Skan 3690075Sobrien#undef TARGET_DEFAULT 37169689Skan#define TARGET_DEFAULT (MASK_APCS_FRAME) 3890075Sobrien 3990075Sobrien#ifndef MULTILIB_DEFAULTS 4090075Sobrien#define MULTILIB_DEFAULTS \ 41169689Skan { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" } 4290075Sobrien#endif 4390075Sobrien 4490075Sobrien/* This is COFF, but prefer stabs. */ 45117395Skan#define SDB_DEBUGGING_INFO 1 4690075Sobrien 4790075Sobrien#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG 4890075Sobrien 4990075Sobrien 50132718Skan#define TARGET_ASM_FILE_START_APP_OFF true 5190075Sobrien 5290075Sobrien/* Switch into a generic section. */ 5390075Sobrien#define TARGET_ASM_NAMED_SECTION default_coff_asm_named_section 5490075Sobrien 5590075Sobrien/* Support the ctors/dtors and other sections. */ 5690075Sobrien 5790075Sobrien#undef INIT_SECTION_ASM_OP 5890075Sobrien 5990075Sobrien/* Define this macro if jump tables (for `tablejump' insns) should be 6090075Sobrien output in the text section, along with the assembler instructions. 6190075Sobrien Otherwise, the readonly data section is used. */ 6296263Sobrien/* We put ARM jump tables in the text section, because it makes the code 6396263Sobrien more efficient, but for Thumb it's better to put them out of band. */ 6496263Sobrien#define JUMP_TABLES_IN_TEXT_SECTION (TARGET_ARM) 6590075Sobrien 66117395Skan#undef READONLY_DATA_SECTION_ASM_OP 67117395Skan#define READONLY_DATA_SECTION_ASM_OP "\t.section .rdata" 6890075Sobrien#undef CTORS_SECTION_ASM_OP 6990075Sobrien#define CTORS_SECTION_ASM_OP "\t.section .ctors,\"x\"" 7090075Sobrien#undef DTORS_SECTION_ASM_OP 7190075Sobrien#define DTORS_SECTION_ASM_OP "\t.section .dtors,\"x\"" 7290075Sobrien 7390075Sobrien/* Support the ctors/dtors sections for g++. */ 7490075Sobrien 7590075Sobrien/* __CTOR_LIST__ and __DTOR_LIST__ must be defined by the linker script. */ 7690075Sobrien#define CTOR_LISTS_DEFINED_EXTERNALLY 7790075Sobrien 7890075Sobrien#undef DO_GLOBAL_CTORS_BODY 7990075Sobrien#undef DO_GLOBAL_DTORS_BODY 8090075Sobrien 8190075Sobrien/* The ARM development system defines __main. */ 8290075Sobrien#define NAME__MAIN "__gccmain" 8390075Sobrien#define SYMBOL__MAIN __gccmain 8490075Sobrien 8590075Sobrien#define SUPPORTS_INIT_PRIORITY 0 86