1 /* Definitions of target machine for GNU compiler, 2 for Alpha NetBSD systems. 3 Copyright (C) 1998-2015 Free Software Foundation, Inc. 4 5 This file is part of GCC. 6 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. 11 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. 16 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/>. */ 20 21 #define TARGET_OS_CPP_BUILTINS() \ 22 do { \ 23 NETBSD_OS_CPP_BUILTINS_ELF(); \ 24 } while (0) 25 26 27 /* NetBSD doesn't use the LANGUAGE* built-ins. */ 28 #undef SUBTARGET_LANGUAGE_CPP_BUILTINS 29 #define SUBTARGET_LANGUAGE_CPP_BUILTINS() /* nothing */ 30 31 32 /* Show that we need a GP when profiling. */ 33 #undef TARGET_PROFILING_NEEDS_GP 34 #define TARGET_PROFILING_NEEDS_GP 1 35 36 37 /* Provide a CPP_SPEC appropriate for NetBSD/alpha. We use 38 this to pull in CPP specs that all NetBSD configurations need. */ 39 40 #undef CPP_SPEC 41 #define CPP_SPEC NETBSD_CPP_SPEC 42 43 #undef EXTRA_SPECS 44 #define EXTRA_SPECS NETBSD_SUBTARGET_EXTRA_SPECS 45 #undef SUBTARGET_EXTRA_SPECS 46 47 /* Provide a LINK_SPEC appropriate for a NetBSD/alpha ELF target. */ 48 49 #undef LINK_SPEC 50 #define LINK_SPEC \ 51 "%{G*} %{relax:-relax} \ 52 %{O*:-O3} %{!O*:-O1} \ 53 %(netbsd_link_spec)" 54 55 #define NETBSD_ENTRY_POINT "__start" 56 57 /* Provide a STARTFILE_SPEC appropriate for NetBSD. Here we add the 58 (even more) magical crtbegin.o file which provides part of the 59 support for getting C++ file-scope static object constructed 60 before entering `main'. */ 61 62 #undef STARTFILE_SPEC 63 #define STARTFILE_SPEC \ 64 "%{!shared: %{pg|p:gcrt0.o%s;:crt0.o%s}}\ 65 crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" 66 67 /* Provide an ENDFILE_SPEC appropriate for NetBSD/alpha ELF. Here we 68 add crtend.o, which provides part of the support for getting 69 C++ file-scope static objects deconstructed after exiting "main". 70 71 We also need to handle the GCC option `-ffast-math'. */ 72 73 #undef ENDFILE_SPEC 74 #define ENDFILE_SPEC \ 75 "%{Ofast|ffast-math|funsafe-math-optimizations:crtfm%O%s} \ 76 %(netbsd_endfile_spec)" 77 78 #define HAVE_ENABLE_EXECUTE_STACK 79