(root)/
gcc-13.2.0/
gcc/
config/
sparc/
openbsd64.h
       1  /* Configuration file for sparc64 OpenBSD target.
       2     Copyright (C) 1999-2023 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  /* XXX - do we really want HARD_QUAD? */
      21  #undef TARGET_DEFAULT
      22  #define TARGET_DEFAULT \
      23  (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \
      24   + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128)
      25  
      26  #undef SPARC_DEFAULT_CMODEL
      27  #define SPARC_DEFAULT_CMODEL CM_MEDMID
      28  
      29  /* Target OS builtins.  */
      30  #define TARGET_OS_CPP_BUILTINS()		\
      31    do						\
      32      {						\
      33  	builtin_define ("__unix__");		\
      34  	builtin_define ("__OpenBSD__");		\
      35  	builtin_assert ("system=unix");		\
      36  	builtin_assert ("system=OpenBSD");	\
      37  	builtin_define ("__sparc64__");		\
      38  	builtin_define ("__sparcv9__");		\
      39  	builtin_define ("__sparc_v9__");	\
      40  	builtin_define ("__arch64__");		\
      41      }						\
      42    while (0)
      43  
      44  #undef ASM_SPEC
      45  #define ASM_SPEC "\
      46  -s %{" FPIE_OR_FPIC_SPEC ":-K PIC} \
      47  %(asm_cpu) %(asm_arch) \
      48  "
      49  
      50  /* Layout of source language data types.  */
      51  #undef WCHAR_TYPE
      52  #define WCHAR_TYPE "int"
      53  
      54  #undef WCHAR_TYPE_SIZE
      55  #define WCHAR_TYPE_SIZE 32
      56  
      57  #undef LONG_DOUBLE_TYPE_SIZE
      58  #define LONG_DOUBLE_TYPE_SIZE 128
      59  
      60  #undef LINK_SPEC
      61  #define LINK_SPEC \
      62    "%{!shared:%{!nostdlib:%{!r:%{!e*:-e __start}}}} \
      63     %{shared:-shared} %{R*} \
      64     %{static:-Bstatic} \
      65     %{!static:-Bdynamic} \
      66     %{assert*} \
      67     -dynamic-linker /usr/libexec/ld.so"
      68  
      69  /* As an elf system, we need crtbegin/crtend stuff.  */
      70  #undef STARTFILE_SPEC
      71  #define STARTFILE_SPEC "\
      72          %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
      73          crtbegin%O%s} %{shared:crtbeginS%O%s}"
      74  #undef ENDFILE_SPEC
      75  #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"