1  /* Configuration file for an alpha 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  /* Controlling the compilation driver.  */
      21  
      22  #undef TARGET_DEFAULT
      23  #define TARGET_DEFAULT \
      24  	(MASK_FPREGS | MASK_IEEE | MASK_IEEE_CONFORMANT)
      25  
      26   #define LINK_SPEC \
      27    "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
      28     %{shared:-shared} %{R*} \
      29     %{static:-Bstatic} \
      30     %{!static:-Bdynamic} \
      31     %{rdynamic:-export-dynamic} \
      32     %{assert*} \
      33     %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
      34  
      35  /* As an elf system, we need crtbegin/crtend stuff.  */
      36  #undef STARTFILE_SPEC
      37  #define STARTFILE_SPEC "\
      38  	%{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} \
      39  	%{!p:%{!static:crt0%O%s} %{static:%{nopie:crt0%O%s} \
      40  	%{!nopie:rcrt0%O%s}}}} crtbegin%O%s} %{shared:crtbeginS%O%s}"
      41  #undef ENDFILE_SPEC
      42  #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
      43  
      44  /* run-time target specifications */
      45  #define TARGET_OS_CPP_BUILTINS()		\
      46      do {					\
      47  	OPENBSD_OS_CPP_BUILTINS_ELF();		\
      48  	OPENBSD_OS_CPP_BUILTINS_LP64();		\
      49      } while (0)
      50  
      51  /* Layout of source language data types.  */
      52  
      53  /* This must agree with <machine/_types.h> */
      54  #undef SIZE_TYPE
      55  #define SIZE_TYPE "long unsigned int"
      56  
      57  #undef PTRDIFF_TYPE
      58  #define PTRDIFF_TYPE "long int"
      59  
      60  #undef INTMAX_TYPE
      61  #define INTMAX_TYPE "long long int"
      62  
      63  #undef UINTMAX_TYPE
      64  #define UINTMAX_TYPE "long long unsigned int"
      65  
      66  #undef WCHAR_TYPE
      67  #define WCHAR_TYPE "int"
      68  
      69  #undef WCHAR_TYPE_SIZE
      70  #define WCHAR_TYPE_SIZE 32
      71  
      72  #undef WINT_TYPE
      73  #define WINT_TYPE "int"
      74  
      75  
      76  #define LOCAL_LABEL_PREFIX	"."