]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/arm/linux-eabi.h
Move libgcc1 to toplevel libgcc
[thirdparty/gcc.git] / gcc / config / arm / linux-eabi.h
CommitLineData
077fc835 1/* Configuration file for ARM GNU/Linux EABI targets.
8e38461c 2 Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2011
077fc835
KH
3 Free Software Foundation, Inc.
4 Contributed by CodeSourcery, LLC
5
6 This file is part of GCC.
7
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
2f83c7d6 10 by the Free Software Foundation; either version 3, or (at your
077fc835
KH
11 option) any later version.
12
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.
17
18 You should have received a copy of the GNU General Public License
2f83c7d6
NC
19 along with GCC; see the file COPYING3. If not see
20 <http://www.gnu.org/licenses/>. */
077fc835
KH
21
22/* On EABI GNU/Linux, we want both the BPABI builtins and the
23 GNU/Linux builtins. */
d3a9662c 24#undef TARGET_OS_CPP_BUILTINS
077fc835
KH
25#define TARGET_OS_CPP_BUILTINS() \
26 do \
27 { \
28 TARGET_BPABI_CPP_BUILTINS(); \
107fd1c1 29 GNU_USER_TARGET_OS_CPP_BUILTINS(); \
2c8f43e6 30 ANDROID_TARGET_OS_CPP_BUILTINS(); \
077fc835
KH
31 } \
32 while (false)
33
34/* We default to a soft-float ABI so that binaries can run on all
35 target hardware. */
d3a9662c 36#undef TARGET_DEFAULT_FLOAT_ABI
077fc835
KH
37#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT
38
39/* We default to the "aapcs-linux" ABI so that enums are int-sized by
40 default. */
d3a9662c 41#undef ARM_DEFAULT_ABI
077fc835
KH
42#define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
43
44/* Default to armv5t so that thumb shared libraries work.
45 The ARM10TDMI core is the default for armv5t, so set
46 SUBTARGET_CPU_DEFAULT to achieve this. */
d3a9662c 47#undef SUBTARGET_CPU_DEFAULT
077fc835
KH
48#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
49
d3a9662c
BF
50/* TARGET_BIG_ENDIAN_DEFAULT is set in
51 config.gcc for big endian configurations. */
52#undef TARGET_LINKER_EMULATION
53#if TARGET_BIG_ENDIAN_DEFAULT
54#define TARGET_LINKER_EMULATION "armelfb_linux_eabi"
55#else
56#define TARGET_LINKER_EMULATION "armelf_linux_eabi"
57#endif
58
59#undef SUBTARGET_EXTRA_LINK_SPEC
60#define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION
077fc835
KH
61
62/* Use ld-linux.so.3 so that it will be possible to run "classic"
63 GNU/Linux binaries on an EABI system. */
d3a9662c 64#undef GLIBC_DYNAMIC_LINKER
464aea98 65#define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.3"
077fc835
KH
66
67/* At this point, bpabi.h will have clobbered LINK_SPEC. We want to
68 use the GNU/Linux version, not the generic BPABI version. */
d3a9662c 69#undef LINK_SPEC
51b9db92
MK
70#define LINK_SPEC BE8_LINK_SPEC \
71 LINUX_OR_ANDROID_LD (LINUX_TARGET_LINK_SPEC, \
72 LINUX_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
73
74#undef CC1_SPEC
8e38461c
JM
75#define CC1_SPEC \
76 LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
77 GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
51b9db92
MK
78
79#define CC1PLUS_SPEC \
80 LINUX_OR_ANDROID_CC ("", ANDROID_CC1PLUS_SPEC)
81
82#undef LIB_SPEC
8e38461c
JM
83#define LIB_SPEC \
84 LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \
85 GNU_USER_TARGET_LIB_SPEC " " ANDROID_LIB_SPEC)
51b9db92
MK
86
87#undef STARTFILE_SPEC
88#define STARTFILE_SPEC \
8e38461c 89 LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, ANDROID_STARTFILE_SPEC)
51b9db92
MK
90
91#undef ENDFILE_SPEC
92#define ENDFILE_SPEC \
8e38461c 93 LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC)
077fc835
KH
94
95/* Use the default LIBGCC_SPEC, not the version in linux-elf.h, as we
96 do not use -lfloat. */
97#undef LIBGCC_SPEC
98
8a66e987 99/* Clear the instruction cache from `beg' to `end'. This is
45b86625 100 implemented in lib1funcs.S, so ensure an error if this definition
8a66e987 101 is used. */
d3a9662c 102#undef CLEAR_INSN_CACHE
7cea01df 103#define CLEAR_INSN_CACHE(BEG, END) not_used
1e874273
PB
104
105#define ARM_TARGET2_DWARF_FORMAT (DW_EH_PE_pcrel | DW_EH_PE_indirect)