]> gcc.gnu.org Git - gcc.git/blame - gcc/config/arm/unknown-elf.h
alpha.c (alpha_start_function): Use switch_to_section.
[gcc.git] / gcc / config / arm / unknown-elf.h
CommitLineData
b355a481 1/* Definitions for non-Linux based ARM systems using ELF
caec2cfc 2 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
c9280dfe 3 Free Software Foundation, Inc.
b355a481
NC
4 Contributed by Catherine Moore <clm@cygnus.com>
5
4f448245 6 This file is part of GCC.
b355a481 7
4f448245
NC
8 GCC is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published
10 by the Free Software Foundation; either version 2, or (at your
11 option) any later version.
b355a481 12
4f448245
NC
13 GCC is distributed in the hope that it will be useful, but WITHOUT
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 License for more details.
b355a481 17
4f448245
NC
18 You should have received a copy of the GNU General Public License
19 along with this program; see the file COPYING. If not, write to
39d14dda
KC
20 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
21 Boston, MA 02110-1301, USA. */
b355a481 22
be393ecf
NC
23/* elfos.h should have already been included. Now just override
24 any conflicting definitions and add any extras. */
25
b355a481 26/* Run-time Target Specification. */
e6592fff 27#ifndef TARGET_VERSION
7b07d808 28#define TARGET_VERSION fputs (" (ARM/ELF)", stderr);
e6592fff 29#endif
b355a481 30
61f0ccff 31/* Default to using software floating point. */
0122a613 32#ifndef TARGET_DEFAULT
3d8532aa 33#define TARGET_DEFAULT (0)
0122a613 34#endif
b355a481
NC
35
36/* Now we define the strings used to build the spec file. */
be393ecf
NC
37#undef STARTFILE_SPEC
38#define STARTFILE_SPEC " crti%O%s crtbegin%O%s crt0%O%s"
b355a481 39
be393ecf
NC
40#undef ENDFILE_SPEC
41#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
b355a481 42
be393ecf
NC
43/* The __USES_INITFINI__ define is tested in newlib/libc/sys/arm/crt0.S
44 to see if it needs to invoked _init() and _fini(). */
45#undef SUBTARGET_CPP_SPEC
4e2e315f 46#define SUBTARGET_CPP_SPEC "-D__USES_INITFINI__"
b355a481 47
be393ecf 48#undef PREFERRED_DEBUGGING_TYPE
b355a481
NC
49#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
50
825dda42 51/* Return a nonzero value if DECL has a section attribute. */
a56e7c08
NC
52#define IN_NAMED_SECTION(DECL) \
53 ((TREE_CODE (DECL) == FUNCTION_DECL || TREE_CODE (DECL) == VAR_DECL) \
54 && DECL_SECTION_NAME (DECL) != NULL_TREE)
55
a56e7c08
NC
56#undef ASM_OUTPUT_ALIGNED_BSS
57#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
58 do \
59 { \
60 if (IN_NAMED_SECTION (DECL)) \
d6b5193b 61 switch_to_section (get_named_section (DECL, NULL, 0)); \
a56e7c08 62 else \
d6b5193b 63 switch_to_section (bss_section); \
a56e7c08 64 \
a56e7c08
NC
65 ASM_OUTPUT_ALIGN (FILE, floor_log2 (ALIGN / BITS_PER_UNIT)); \
66 \
67 last_assemble_variable_decl = DECL; \
68 ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL); \
58e15542 69 ASM_OUTPUT_SKIP (FILE, SIZE ? (int)(SIZE) : 1); \
a56e7c08
NC
70 } \
71 while (0)
72
73#undef ASM_OUTPUT_ALIGNED_DECL_LOCAL
74#define ASM_OUTPUT_ALIGNED_DECL_LOCAL(FILE, DECL, NAME, SIZE, ALIGN) \
75 do \
76 { \
648f5f04 77 if ((DECL) != NULL && IN_NAMED_SECTION (DECL)) \
d6b5193b 78 switch_to_section (get_named_section (DECL, NULL, 0)); \
a56e7c08 79 else \
d6b5193b 80 switch_to_section (bss_section); \
a56e7c08
NC
81 \
82 ASM_OUTPUT_ALIGN (FILE, floor_log2 (ALIGN / BITS_PER_UNIT)); \
83 ASM_OUTPUT_LABEL (FILE, NAME); \
58e15542 84 fprintf (FILE, "\t.space\t%d\n", SIZE ? (int)(SIZE) : 1); \
a56e7c08
NC
85 } \
86 while (0)
b355a481 87
0122a613 88#ifndef SUBTARGET_CPU_DEFAULT
b355a481 89#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm7tdmi
0122a613 90#endif
d5b7b3ae 91
e3fe057d
MM
92/* The libgcc udivmod functions may throw exceptions. If newlib is
93 configured to support long longs in I/O, then printf will depend on
94 udivmoddi4, which will depend on the exception unwind routines,
95 which will depend on abort, which is defined in libc. */
96#undef LINK_GCC_C_SEQUENCE_SPEC
97#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L --end-group"
This page took 1.419837 seconds and 5 git commands to generate.