1 /* Definitions for RISC-V FreeBSD systems with ELF format.
2    Copyright (C) 2018 Free Software Foundation, Inc.
3 
4 This file is part of GCC.
5 
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
10 
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15 
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3.  If not see
18 <http://www.gnu.org/licenses/>.  */
19 
20 #undef WCHAR_TYPE
21 #define WCHAR_TYPE "int"
22 
23 #undef WCHAR_TYPE_SIZE
24 #define WCHAR_TYPE_SIZE 32
25 
26 #undef  SUBTARGET_EXTRA_SPECS
27 #define SUBTARGET_EXTRA_SPECS \
28   { "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }
29 
30 #undef CC1_SPEC
31 #define CC1_SPEC "%(cc1_cpu) %{profile:-p}"
32 
33 /* Provide a LINK_SPEC appropriate for FreeBSD.  Here we provide support
34    for the special GCC options -static and -shared, which allow us to
35    link things in one of these three modes by applying the appropriate
36    combinations of options at link-time.
37 
38    When the -shared link option is used a final link is not being
39    done.  */
40 
41 #undef LINK_SPEC
42 #define LINK_SPEC "						\
43   -melf" XLEN_SPEC "lriscv					\
44   %{p:%nconsider using `-pg' instead of `-p' with gprof (1) }	\
45   %{v:-V}							\
46   %{assert*} %{R*} %{rpath*} %{defsym*}				\
47   %{shared:-Bshareable %{h*} %{soname*}}			\
48   %{symbolic:-Bsymbolic}					\
49   %{static:-Bstatic}						\
50   %{!shared:							\
51       %{!static:						\
52         %{rdynamic:-export-dynamic}				\
53         -dynamic-linker " FBSD_DYNAMIC_LINKER "}		\
54         %{static:-static}}"
55