PR rtl-optimization/82913
[official-gcc.git] / gcc / config / fuchsia.h
blob5b3e186f91adf0ccdd33024b2579991261a43629
1 /* Base configuration file for all Fuchsia targets.
2 Copyright (C) 2017 Free Software Foundation, Inc.
3 Contributed by Google.
5 This file is part of GCC.
7 GCC is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
12 GCC is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with GCC; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
21 /* Common Fuchsia configuration. */
23 #undef STARTFILE_SPEC
24 #define STARTFILE_SPEC "%{!shared: crt1%O%s} crtbegin%O%s"
26 #undef ENDFILE_SPEC
27 #define ENDFILE_SPEC "crtend%O%s"
29 /* When neither pic nor pie has been specified, use PIE. */
30 #undef CC1_SPEC
31 #define CC1_SPEC "%{!fno-pic:%{!fno-PIC:%{!fpic:%{!fPIC:" \
32 "%{!fno-pie:%{!fno-PIE:%{!fpie:%{!fPIE: -fPIE}}}}}}}}"
34 #undef LIB_SPEC
35 #define LIB_SPEC "--start-group" \
36 " -lmxio -lmagenta -lc -llaunchpad" \
37 "%{!static: -lgcc_s}" \
38 " --end-group"
40 #undef LINK_SPEC
41 #define LINK_SPEC "-z max-page-size=4096" \
42 " -z combreloc" \
43 " -z relro" \
44 " -z now" \
45 " -z text" \
46 "%{!hash-style: --hash-style=gnu}" \
47 "%{!no-eh-frame-hdr: --eh-frame-hdr}" \
48 "%{!no-build-id: --build-id}" \
49 "%{shared: -shared}" \
50 "%{!shared:%{!static:%{!dynamic-linker: -dynamic-linker=ld.so.1}}}"
52 /* We are using MUSL as our libc. */
53 #undef OPTION_MUSL
54 #define OPTION_MUSL 1
56 #ifndef TARGET_SUB_OS_CPP_BUILTINS
57 #define TARGET_SUB_OS_CPP_BUILTINS()
58 #endif
60 #undef TARGET_OS_CPP_BUILTINS
61 #define TARGET_OS_CPP_BUILTINS() \
62 do \
63 { \
64 builtin_define ("__fuchsia__"); \
65 TARGET_SUB_OS_CPP_BUILTINS(); \
66 } \
67 while (false)