1  /* Definitions of target machine for GNU compiler,
       2     for Alpha NetBSD systems.
       3     Copyright (C) 1998-2023 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			\
      45    { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF },	\
      46    { "netbsd_entry_point", NETBSD_ENTRY_POINT },	\
      47    { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC },
      48  
      49  
      50  /* Provide a LINK_SPEC appropriate for a NetBSD/alpha ELF target.  */
      51  
      52  #undef LINK_SPEC
      53  #define LINK_SPEC \
      54    "%{G*} %{relax:-relax} \
      55     %{O*:-O3} %{!O*:-O1} \
      56     %(netbsd_link_spec)"
      57  
      58  #define NETBSD_ENTRY_POINT "__start"
      59  
      60  
      61  /* Provide an ENDFILE_SPEC appropriate for NetBSD/alpha ELF.  Here we
      62     add crtend.o, which provides part of the support for getting
      63     C++ file-scope static objects deconstructed after exiting "main".
      64  
      65     We also need to handle the GCC option `-ffast-math'.  */
      66  
      67  #undef ENDFILE_SPEC
      68  #define ENDFILE_SPEC		\
      69    "%{Ofast|ffast-math|funsafe-math-optimizations:crtfm%O%s} \
      70     %(netbsd_endfile_spec)"
      71  
      72  #define HAVE_ENABLE_EXECUTE_STACK