1/* Base configuration file for all Fuchsia targets.
2   Copyright (C) 2017-2020 Free Software Foundation, Inc.
3   Contributed by Google.
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 3, or (at your option)
10any later version.
11
12GCC is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING3.  If not see
19<http://www.gnu.org/licenses/>.  */
20
21/* Common Fuchsia configuration.  */
22
23#undef  STARTFILE_SPEC
24#define STARTFILE_SPEC "%{!shared: crt1%O%s} crtbegin%O%s"
25
26#undef  ENDFILE_SPEC
27#define ENDFILE_SPEC "crtend%O%s"
28
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}}}}}}}}"
33
34#undef  LIB_SPEC
35#define LIB_SPEC "--start-group" \
36		 " -lmxio -lmagenta -lc -llaunchpad" \
37		 "%{!static: -lgcc_s}" \
38		 " --end-group"
39
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}}}"
51
52/* We are using MUSL as our libc.  */
53#undef  OPTION_MUSL
54#define OPTION_MUSL 1
55
56#ifndef TARGET_SUB_OS_CPP_BUILTINS
57#define TARGET_SUB_OS_CPP_BUILTINS()
58#endif
59
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)
68
69