]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/arm/uclinux-elf.h
Update copyright years.
[thirdparty/gcc.git] / gcc / config / arm / uclinux-elf.h
CommitLineData
483f6332 1/* Definitions for ARM running ucLinux using ELF
85ec4feb 2 Copyright (C) 1999-2018 Free Software Foundation, Inc.
483f6332
PB
3 Contributed by Philip Blundell <pb@nexus.co.uk>
4
4f448245 5 This file is part of GCC.
483f6332 6
4f448245
NC
7 GCC is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published
2f83c7d6 9 by the Free Software Foundation; either version 3, or (at your
4f448245 10 option) any later version.
483f6332 11
4f448245
NC
12 GCC is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
483f6332 16
999db125
GJL
17 Under Section 7 of GPL version 3, you are granted additional
18 permissions described in the GCC Runtime Library Exception, version
19 3.1, as published by the Free Software Foundation.
20
c7eca9fe
GJL
21 You should have received a copy of the GNU General Public License and
22 a copy of the GCC Runtime Library Exception along with this program;
23 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
2f83c7d6 24 <http://www.gnu.org/licenses/>. */
483f6332 25
483f6332
PB
26/* We don't want a PLT. */
27#undef NEED_PLT_RELOC
28#define NEED_PLT_RELOC 0
29
483f6332 30#undef TARGET_DEFAULT
c54c7322 31#define TARGET_DEFAULT (MASK_SINGLE_PIC_BASE)
d399ae67
DJ
32
33/* NOTE: The remaining definitions in this file are needed because uclinux
34 does not use config/linux.h. */
35
c147eacb
PB
36/* Add GNU/Linux builtins. */
37#undef TARGET_OS_CPP_BUILTINS
38#define TARGET_OS_CPP_BUILTINS() \
39 do \
40 { \
41 builtin_define ("__uClinux__"); \
42 builtin_define ("__gnu_linux__"); \
43 builtin_define_std ("linux"); \
44 builtin_define_std ("unix"); \
45 builtin_assert ("system=linux"); \
46 builtin_assert ("system=unix"); \
47 builtin_assert ("system=posix"); \
48 } \
49 while (false)
50
d399ae67
DJ
51/* Do not assume anything about header files. */
52#define NO_IMPLICIT_EXTERN_C
53
54/* The GNU C++ standard library requires that these macros be defined. */
55#undef CPLUSPLUS_CPP_SPEC
56#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
57
c147eacb
PB
58#undef SUBTARGET_EXTRA_LINK_SPEC
59#define SUBTARGET_EXTRA_LINK_SPEC " -m armelf_linux"
d399ae67 60
c147eacb 61/* Now we define the strings used to build the spec file. */
d399ae67 62#undef STARTFILE_SPEC
c147eacb 63#define STARTFILE_SPEC "crt1%O%s crti%O%s crtbegin%O%s"
d399ae67
DJ
64
65#undef ENDFILE_SPEC
c147eacb 66#define ENDFILE_SPEC "crtend%O%s crtn%O%s"
d399ae67
DJ
67
68#undef CC1_SPEC
69#define CC1_SPEC "%{profile:-p}"
70
c147eacb 71#undef LINK_GCC_C_SEQUENCE_SPEC
d399ae67 72#define LINK_GCC_C_SEQUENCE_SPEC \
8c6562e1
JJ
73 "%{static|static-pie:--start-group} %G %L \
74 %{static|static-pie:--end-group}%{!static:%{!static-pie:%G %L}}"
d399ae67
DJ
75
76/* Use --as-needed -lgcc_s for eh support. */
77#ifdef HAVE_LD_AS_NEEDED
78#define USE_LD_AS_NEEDED 1
79#endif
c147eacb
PB
80
81#undef LINK_SPEC
82#define LINK_SPEC "%{mbig-endian:-EB} %{mlittle-endian:-EL} -X -elf2flt"
83
84#undef LIB_SPEC
85#define LIB_SPEC \
86 "%{pthread:-lpthread} \
87 %{shared:-lc} \
88 %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
571191af
PB
89
90#define TARGET_DEFAULT_WORD_RELOCATIONS 1