1 /* Configuration file for sparc64 OpenBSD target. 2 Copyright (C) 1999, 2005 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 2, 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 COPYING. If not, write to 18 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 19 Boston, MA 02110-1301, USA. */ 20 21 #undef TARGET_VERSION 22 #define TARGET_VERSION fprintf (stderr, " (sparc64 OpenBSD ELF)") 23 24 /* XXX - do we really want HARD_QUAD? */ 25 #undef TARGET_DEFAULT 26 #define TARGET_DEFAULT \ 27 (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \ 28 + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128) 29 30 #undef SPARC_DEFAULT_CMODEL 31 #define SPARC_DEFAULT_CMODEL CM_MEDMID 32 33 /* Target OS builtins. */ 34 #define TARGET_OS_CPP_BUILTINS() \ 35 do \ 36 { \ 37 builtin_define ("__unix__"); \ 38 builtin_define ("__OpenBSD__"); \ 39 builtin_assert ("system=unix"); \ 40 builtin_assert ("system=OpenBSD"); \ 41 builtin_define ("__sparc64__"); \ 42 builtin_define ("__sparcv9__"); \ 43 builtin_define ("__sparc_v9__"); \ 44 builtin_define ("__arch64__"); \ 45 } \ 46 while (0) 47 48 #undef CPP_SUBTARGET_SPEC 49 #define CPP_SUBTARGET_SPEC "" 50 51 #undef MD_EXEC_PREFIX 52 #undef MD_STARTFILE_PREFIX 53 54 /* Inherited from sp64-elf. */ 55 #undef NO_IMPLICIT_EXTERN_C 56 57 #undef ASM_SPEC 58 #define ASM_SPEC "\ 59 %{v:-V} -s %{fpic|fPIC|fpie|fPIE:-K PIC} \ 60 %{mlittle-endian:-EL} \ 61 %(asm_cpu) %(asm_arch) \ 62 " 63 64 /* Layout of source language data types. */ 65 #undef WCHAR_TYPE 66 #define WCHAR_TYPE "int" 67 68 #undef WCHAR_TYPE_SIZE 69 #define WCHAR_TYPE_SIZE 32 70 71 #undef LONG_DOUBLE_TYPE_SIZE 72 #define LONG_DOUBLE_TYPE_SIZE 128 73 74 #undef LINK_SPEC 75 #define LINK_SPEC \ 76 "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \ 77 %{shared:-shared} %{R*} \ 78 %{static:-Bstatic} \ 79 %{!static:-Bdynamic} \ 80 %{assert*} \ 81 %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}" 82 83 /* As an elf system, we need crtbegin/crtend stuff. */ 84 #undef STARTFILE_SPEC 85 #define STARTFILE_SPEC "\ 86 %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \ 87 crtbegin%O%s} %{shared:crtbeginS%O%s}" 88 #undef ENDFILE_SPEC 89 #define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}" 90