openbsd64.h revision 169689
11849Swollman/* Configuration file for sparc64 OpenBSD target.
21849Swollman   Copyright (C) 1999, 2005 Free Software Foundation, Inc.
31849Swollman
41849SwollmanThis file is part of GCC.
51849Swollman
61849SwollmanGCC is free software; you can redistribute it and/or modify
71849Swollmanit under the terms of the GNU General Public License as published by
81849Swollmanthe Free Software Foundation; either version 2, or (at your option)
91849Swollmanany later version.
101849Swollman
111849SwollmanGCC is distributed in the hope that it will be useful,
121849Swollmanbut WITHOUT ANY WARRANTY; without even the implied warranty of
131849SwollmanMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
141849SwollmanGNU General Public License for more details.
151849Swollman
161849SwollmanYou should have received a copy of the GNU General Public License
171849Swollmanalong with GCC; see the file COPYING.  If not, write to
181849Swollmanthe Free Software Foundation, 51 Franklin Street, Fifth Floor,
191849SwollmanBoston, MA 02110-1301, USA.  */
201849Swollman
211849Swollman#undef TARGET_VERSION
221849Swollman#define TARGET_VERSION fprintf (stderr, " (sparc64 OpenBSD ELF)")
231849Swollman
241849Swollman/* XXX - do we really want HARD_QUAD? */
251849Swollman#undef TARGET_DEFAULT
261849Swollman#define TARGET_DEFAULT \
271849Swollman(MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \
281849Swollman + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128)
291849Swollman
301849Swollman#undef SPARC_DEFAULT_CMODEL
3185437Speter#define SPARC_DEFAULT_CMODEL CM_MEDMID
3293000Sobrien
331849Swollman/* Target OS builtins.  */
341849Swollman#define TARGET_OS_CPP_BUILTINS()		\
351849Swollman  do						\
361849Swollman    {						\
371849Swollman	builtin_define ("__unix__");		\
381849Swollman	builtin_define ("__OpenBSD__");		\
391849Swollman	builtin_assert ("system=unix");		\
401849Swollman	builtin_assert ("system=OpenBSD");	\
411849Swollman	builtin_define ("__sparc64__");		\
421849Swollman	builtin_define ("__sparcv9__");		\
431849Swollman	builtin_define ("__sparc_v9__");	\
441849Swollman	builtin_define ("__arch64__");		\
4591999Sbillf    }						\
461849Swollman  while (0)
471849Swollman
481849Swollman#undef CPP_SUBTARGET_SPEC
491849Swollman#define CPP_SUBTARGET_SPEC ""
501849Swollman
511849Swollman#undef MD_EXEC_PREFIX
521849Swollman#undef MD_STARTFILE_PREFIX
531849Swollman
541849Swollman/* Inherited from sp64-elf.  */
551849Swollman#undef NO_IMPLICIT_EXTERN_C
561849Swollman
571849Swollman#undef ASM_SPEC
581849Swollman#define ASM_SPEC "\
591849Swollman%{v:-V} -s %{fpic|fPIC|fpie|fPIE:-K PIC} \
601849Swollman%{mlittle-endian:-EL} \
611849Swollman%(asm_cpu) %(asm_arch) \
621849Swollman"
631849Swollman
641849Swollman/* Layout of source language data types.  */
651849Swollman#undef WCHAR_TYPE
661849Swollman#define WCHAR_TYPE "int"
671849Swollman
681849Swollman#undef WCHAR_TYPE_SIZE
691849Swollman#define WCHAR_TYPE_SIZE 32
701849Swollman
711849Swollman#undef LONG_DOUBLE_TYPE_SIZE
721849Swollman#define LONG_DOUBLE_TYPE_SIZE 128
731849Swollman
741849Swollman#undef LINK_SPEC
751849Swollman#define LINK_SPEC \
761849Swollman  "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
771849Swollman   %{shared:-shared} %{R*} \
781849Swollman   %{static:-Bstatic} \
791849Swollman   %{!static:-Bdynamic} \
801849Swollman   %{assert*} \
811849Swollman   %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
821849Swollman
831849Swollman/* As an elf system, we need crtbegin/crtend stuff.  */
841849Swollman#undef STARTFILE_SPEC
851849Swollman#define STARTFILE_SPEC "\
861849Swollman        %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
871849Swollman        crtbegin%O%s} %{shared:crtbeginS%O%s}"
881849Swollman#undef ENDFILE_SPEC
891849Swollman#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
90