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