(root)/
gcc-13.2.0/
gcc/
config/
sh/
vxworks.h
       1  /* Definitions of target machine for GCC,
       2     for SuperH with targeting the VXWorks run time environment. 
       3     Copyright (C) 2003-2023 Free Software Foundation, Inc.
       4     Contributed by CodeSourcery, LLC.
       5     
       6  This file is part of GCC.
       7  
       8  GCC is free software; you can redistribute it and/or modify
       9  it under the terms of the GNU General Public License as published by
      10  the Free Software Foundation; either version 3, or (at your option)
      11  any later version.
      12  
      13  GCC is distributed in the hope that it will be useful,
      14  but WITHOUT ANY WARRANTY; without even the implied warranty of
      15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16  GNU General Public License for more details.
      17  
      18  You should have received a copy of the GNU General Public License
      19  along with GCC; see the file COPYING3.  If not see
      20  <http://www.gnu.org/licenses/>.  */
      21  
      22  
      23  #define TARGET_OS_CPP_BUILTINS()	\
      24    do					\
      25      {					\
      26        builtin_define ("CPU=SH7000");	\
      27        VXWORKS_OS_CPP_BUILTINS ();	\
      28      }					\
      29    while (0)
      30  
      31  #undef SUBTARGET_OVERRIDE_OPTIONS
      32  #define SUBTARGET_OVERRIDE_OPTIONS				\
      33    do								\
      34      {								\
      35        VXWORKS_OVERRIDE_OPTIONS;					\
      36        /* The kernel loader cannot handle the relaxation		\
      37  	 relocations, so it cannot load kernel modules		\
      38  	 (which are ET_REL) or RTP executables (which are	\
      39  	 linked with --emit-relocs).  No relaxation relocations	\
      40  	 appear in shared libraries, so relaxation is OK	\
      41  	 for RTP PIC.  */					\
      42        if (TARGET_RELAX && !(TARGET_VXWORKS_RTP && flag_pic))	\
      43  	error ("%<-mrelax%> is only supported for RTP PIC");	\
      44      }								\
      45    while (0)
      46  
      47  #undef SUBTARGET_CPP_SPEC
      48  #define SUBTARGET_CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC
      49  
      50  #undef SUBTARGET_LINK_EMUL_SUFFIX
      51  #define SUBTARGET_LINK_EMUL_SUFFIX "_vxworks"
      52  
      53  #undef LIB_SPEC
      54  #define LIB_SPEC VXWORKS_LIB_SPEC
      55  #undef LINK_SPEC
      56  #define LINK_SPEC VXWORKS_LINK_SPEC " " SH_LINK_SPEC
      57  #undef STARTFILE_SPEC
      58  #define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC
      59  #undef ENDFILE_SPEC
      60  #define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC
      61  
      62  /* There is no default multilib.  */
      63  #undef MULTILIB_DEFAULTS
      64  
      65  #undef FUNCTION_PROFILER
      66  #define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER