1 /* Definitions for AArch64 running NetBSD
2    Copyright (C) 2016-2020 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 it
7    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, but
12    WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    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 #ifndef GCC_AARCH64_NETBSD_H
21 #define GCC_AARCH64_NETBSD_H
22 
23 #define TARGET_LINKER_BIG_EMULATION "aarch64nbsdb"
24 #define TARGET_LINKER_LITTLE_EMULATION "aarch64nbsd"
25 
26 #if TARGET_BIG_ENDIAN_DEFAULT
27 #define TARGET_LINKER_EMULATION  TARGET_LINKER_BIG_EMULATION
28 #else
29 #define TARGET_LINKER_EMULATION  TARGET_LINKER_LITTLE_EMULATION
30 #endif
31 
32 #undef  SUBTARGET_EXTRA_LINK_SPEC
33 #define SUBTARGET_EXTRA_LINK_SPEC " -m" TARGET_LINKER_EMULATION
34 
35 #define NETBSD_ENTRY_POINT "__start"
36 
37 #define NETBSD_TARGET_LINK_SPEC  "%{h*} "				\
38   "-X %{mbig-endian:-EB -m " TARGET_LINKER_BIG_EMULATION "} "		\
39   "%{mlittle-endian:-EL -m " TARGET_LINKER_LITTLE_EMULATION "} "	\
40   "%(netbsd_link_spec)"
41 
42 #undef  LINK_SPEC
43 #define LINK_SPEC NETBSD_LINK_SPEC_ELF		\
44 		  NETBSD_TARGET_LINK_SPEC	\
45 		  AARCH64_ERRATA_LINK_SPEC
46 
47 #undef TARGET_OS_CPP_BUILTINS
48 #define TARGET_OS_CPP_BUILTINS()		\
49   do						\
50     {						\
51       NETBSD_OS_CPP_BUILTINS_ELF();		\
52     }						\
53   while (0)
54 
55 #undef SUBTARGET_CPP_SPEC
56 #define SUBTARGET_CPP_SPEC NETBSD_CPP_SPEC
57 
58 #undef EXTRA_SPECS
59 #define EXTRA_SPECS \
60   { "asm_cpu_spec",             ASM_CPU_SPEC }, \
61   NETBSD_SUBTARGET_EXTRA_SPECS
62 
63 #endif  /* GCC_AARCH64_NETBSD_H */
64