summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2001-09-10 10:33:37 +0000
committerMarc Espie <espie@cvs.openbsd.org>2001-09-10 10:33:37 +0000
commit12a89bdb38a94c396f807cfdba0d19faf3b0bcaa (patch)
tree88c43ef9cff0f77415ce1e790be1c08d7f6c80fa
parentc7e6e83bd69c0d8b03e8ec3f10ba389ba897a874 (diff)
Initial cut at sparc64 gcc config.
Polished by art.
-rw-r--r--gnu/egcs/gcc/config/sparc/openbsd64.h65
-rw-r--r--gnu/egcs/gcc/configure5
-rw-r--r--gnu/egcs/gcc/configure.in5
3 files changed, 75 insertions, 0 deletions
diff --git a/gnu/egcs/gcc/config/sparc/openbsd64.h b/gnu/egcs/gcc/config/sparc/openbsd64.h
new file mode 100644
index 00000000000..8d0b3cd13b0
--- /dev/null
+++ b/gnu/egcs/gcc/config/sparc/openbsd64.h
@@ -0,0 +1,65 @@
+/* Configuration file for sparc64 OpenBSD target.
+ Copyright (C) 1999 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC 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.
+
+GNU CC 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 GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+#ifndef TARGET_CPU_DEFAULT
+#define TARGET_CPU_DEFAULT TARGET_CPU_ultrasparc
+#endif
+
+#include <sparc/sp64-elf.h>
+
+#define OBSD_HAS_DECLARE_FUNCTION_NAME
+#define OBSD_HAS_DECLARE_FUNCTION_SIZE
+#define OBSD_HAS_DECLARE_OBJECT
+
+#include <openbsd.h>
+
+/* Run-time target specifications. */
+#undef CPP_PREDEFINES
+#define CPP_PREDEFINES "-D__unix__ -D__sparc__ -D__sparc64__ -D__sparcv9__ -D__arch64__ -D__ELF__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(sparc) -Amachine(sparc)"
+
+#undef CPP_SUBTARGET_SPEC
+#define CPP_SUBTARGET_SPEC ""
+
+/* Layout of source language data types. */
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#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}"
+
+/* Use sjlj exceptions. */
+#define DWARF2_UNWIND_INFO 0
diff --git a/gnu/egcs/gcc/configure b/gnu/egcs/gcc/configure
index 6093f3e77f4..7c4766e63bf 100644
--- a/gnu/egcs/gcc/configure
+++ b/gnu/egcs/gcc/configure
@@ -5352,6 +5352,11 @@ for machine in $build $host $target; do
use_collect2=yes
tmake_file="t-libc-ok t-openbsd sparc/t-openbsd"
;;
+ sparc64-*-openbsd*)
+ tm_file=sparc/openbsd64.h
+ xm_file=sparc/xm-sp64.h
+ gas=yes gnu_ld=yes
+ ;;
sparc-*-bsd*)
tm_file=sparc/bsd.h
;;
diff --git a/gnu/egcs/gcc/configure.in b/gnu/egcs/gcc/configure.in
index 8e759c3101e..e5736d71ac0 100644
--- a/gnu/egcs/gcc/configure.in
+++ b/gnu/egcs/gcc/configure.in
@@ -3046,6 +3046,11 @@ changequote([,])dnl
use_collect2=yes
tmake_file="t-libc-ok t-openbsd sparc/t-openbsd"
;;
+ sparc64-*-openbsd*)
+ tm_file=sparc/openbsd64.h
+ xm_file=sparc/xm-sp64.h
+ gas=yes gnu_ld=yes
+ ;;
sparc-*-bsd*)
tm_file=sparc/bsd.h
;;