xref: /openbsd/gnu/gcc/gcc/config/arm/coff.h (revision 404b540a)
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