aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarc Espie <espie@openbsd.org>2002-05-30 20:35:58 +0000
committerMarc Espie <espie@gcc.gnu.org>2002-05-30 20:35:58 +0000
commit91f0fcee225562069fbc8a221dcf4708893a5f7e (patch)
treef2a2050833dd3406f3522b48ef89a7cdbffc2bba /gcc
parentd35dfca9e6ebe2e9990dca1c5ee4d36a79cf0604 (diff)
downloadgcc-91f0fcee225562069fbc8a221dcf4708893a5f7e.zip
gcc-91f0fcee225562069fbc8a221dcf4708893a5f7e.tar.gz
gcc-91f0fcee225562069fbc8a221dcf4708893a5f7e.tar.bz2
config.gcc (sparc64-*-openbsd*): New.
2002-05-30 Marc Espie <espie@openbsd.org> * config.gcc (sparc64-*-openbsd*): New. * config/sparc/openbsd1-64.h: New. * config/sparc/openbsd64.h: New. From-SVN: r54066
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config.gcc7
-rw-r--r--gcc/config/sparc/openbsd1-64.h24
-rw-r--r--gcc/config/sparc/openbsd64.h75
4 files changed, 111 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2bc6148..9de29da 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-30 Marc Espie <espie@openbsd.org>
+ * config.gcc (sparc64-*-openbsd*): New.
+ * config/sparc/openbsd1-64.h: New.
+ * config/sparc/openbsd64.h: New.
+
2002-05-30 Jeff Law <law@redhat.com>
* flow.c (propagate_one_insn): Revise yesterday's patch. Delete
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6ba0de6..ad4abb6 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -2285,6 +2285,13 @@ sparc-*-openbsd*)
# we need collect2 until our bug is fixed...
use_collect2=yes
;;
+sparc64-*-openbsd*)
+ tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h"
+ xm_file=sparc/xm-sp64.h
+ gas=yes gnu_ld=yes
+ with_cpu=ultrasparc
+ float_format=i128
+ ;;
sparc-*-bsd*)
tm_file="${tm_file} sparc/bsd.h"
;;
diff --git a/gcc/config/sparc/openbsd1-64.h b/gcc/config/sparc/openbsd1-64.h
new file mode 100644
index 0000000..1310538
--- /dev/null
+++ b/gcc/config/sparc/openbsd1-64.h
@@ -0,0 +1,24 @@
+/* Configuration file for sparc64 OpenBSD target.
+ Copyright (C) 1999 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#define OBSD_HAS_DECLARE_FUNCTION_NAME
+#define OBSD_HAS_DECLARE_FUNCTION_SIZE
+#define OBSD_HAS_DECLARE_OBJECT
+
diff --git a/gcc/config/sparc/openbsd64.h b/gcc/config/sparc/openbsd64.h
new file mode 100644
index 0000000..4dfe381
--- /dev/null
+++ b/gcc/config/sparc/openbsd64.h
@@ -0,0 +1,75 @@
+/* Configuration file for sparc64 OpenBSD target.
+ Copyright (C) 1999 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (sparc64 OpenBSD ELF)")
+
+/* XXX - do we really want HARD_QUAD? */
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT \
+(MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_HARD_QUAD \
+ + MASK_APP_REGS + MASK_FPU + MASK_STACK_BIAS + MASK_LONG_DOUBLE_128)
+
+#undef SPARC_DEFAULT_CMODEL
+#define SPARC_DEFAULT_CMODEL CM_MEDMID
+
+/* Run-time target specifications. */
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES "-D__unix__ -D__sparc__ -D__sparc64__ -D__sparcv9__ -D__sparc_v9__ -D__arch64__ -D__ELF__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)"
+
+#undef CPP_SUBTARGET_SPEC
+#define CPP_SUBTARGET_SPEC ""
+
+#undef MD_EXEC_PREFIX
+#undef MD_STARTFILE_PREFIX
+
+#undef ASM_SPEC
+#define ASM_SPEC "\
+%{v:-V} -s %{fpic:-K PIC} %{fPIC:-K PIC} \
+%{mlittle-endian:-EL} \
+%(asm_cpu) %(asm_arch) \
+"
+
+/* Layout of source language data types. */
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE 128
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
+ %{assert*} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+
+/* As an elf system, we need crtbegin/crtend stuff. */
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"