summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2013-07-11 19:11:28 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2013-07-11 19:11:28 +0000
commite79178d245caa4af6b5f70eb02fda085bcb53968 (patch)
tree619bbf600c3bf72a5a8e884c44c0eb5ae2063117
parent2021dd5f6e3ab1478a5ef132852ccade53969606 (diff)
ELF configuration for gcc3 on vax.
-rw-r--r--gnu/usr.bin/gcc/gcc/config.gcc11
-rw-r--r--gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h1
-rw-r--r--gnu/usr.bin/gcc/gcc/config/vax/openbsdelf.h92
3 files changed, 99 insertions, 5 deletions
diff --git a/gnu/usr.bin/gcc/gcc/config.gcc b/gnu/usr.bin/gcc/gcc/config.gcc
index 93e2865527e..a08cfe511a6 100644
--- a/gnu/usr.bin/gcc/gcc/config.gcc
+++ b/gnu/usr.bin/gcc/gcc/config.gcc
@@ -1,4 +1,4 @@
-# $OpenBSD: config.gcc,v 1.26 2013/02/06 20:12:06 miod Exp $
+# $OpenBSD: config.gcc,v 1.27 2013/07/11 19:11:27 miod Exp $
# GCC build-, host- and target-specific configuration file.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
@@ -2778,10 +2778,13 @@ vax-*-netbsd*)
use_collect2=yes
;;
vax-*-openbsd*)
- tmake_file="t-libc-ok t-openbsd"
- tm_file="vax/vax.h vax/openbsd1.h openbsd.h ${tm_file}"
+ tm_file="openbsd-libpthread.h vax/vax.h dbxelf.h elfos.h vax/openbsd1.h openbsd.h vax/elf.h vax/openbsdelf.h"
# tm_file="${tm_file} exec-stack.h"
- use_collect2=yes
+ tmake_file="t-libc-ok t-openbsd"
+ if test x$enable_threads = xyes; then
+ tmake_file="${tmake_file} t-openbsd-thread"
+ fi
+ float_format=vax
;;
vax-*-ultrix*) # VAXen running ultrix
tm_file="${tm_file} vax/ultrix.h"
diff --git a/gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h b/gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h
index 3a72ef88049..e5fa4b0fa43 100644
--- a/gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h
+++ b/gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h
@@ -19,5 +19,4 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* Set up definitions before picking up the common openbsd.h file. */
-#define OBSD_OLD_GAS
#define OBSD_NO_DYNAMIC_LIBRARIES
diff --git a/gnu/usr.bin/gcc/gcc/config/vax/openbsdelf.h b/gnu/usr.bin/gcc/gcc/config/vax/openbsdelf.h
new file mode 100644
index 00000000000..da6bb60a0ff
--- /dev/null
+++ b/gnu/usr.bin/gcc/gcc/config/vax/openbsdelf.h
@@ -0,0 +1,92 @@
+/* Configuration fragment for a VAX OpenBSD target.
+ Copyright (C) 2000, 2002 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. */
+
+/* Amend common OpenBSD definitions for VAX target. */
+
+#define TARGET_OS_CPP_BUILTINS() \
+ do \
+ { \
+ OPENBSD_OS_CPP_BUILTINS_ELF(); \
+ } \
+ while (0)
+
+/* Layout of source language data types. */
+
+/* This must agree with <machine/_types.h> */
+#undef SIZE_TYPE
+#define SIZE_TYPE "long unsigned int"
+
+#undef PTRDIFF_TYPE
+#define PTRDIFF_TYPE "long int"
+
+#undef INTMAX_TYPE
+#define INTMAX_TYPE "long long int"
+
+#undef UINTMAX_TYPE
+#define UINTMAX_TYPE "long long unsigned int"
+
+#undef WCHAR_TYPE
+#define WCHAR_TYPE "int"
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+/* No structure field wants to be aligned rounder than this.
+ The huge 0x40000000 value should be enough to turn the
+ BIGGEST_FIELD_ALIGNMENT logic into a nop. */
+#undef BIGGEST_FIELD_ALIGNMENT
+#define BIGGEST_FIELD_ALIGNMENT (TARGET_VAXC_ALIGNMENT ? 8 : 0x40000000)
+
+#undef LINK_SPEC
+#ifdef OBSD_NO_DYNAMIC_LIBRARIES
+#define LINK_SPEC \
+ "%{!nostdlib:%{!r*:%{!e*:-e _start}}} %{assert*}"
+#else
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e _start}}}} \
+ %{shared:-shared} %{R*} \
+ %{static:-Bstatic} \
+ %{!static:-Bdynamic} \
+ %{rdynamic:-export-dynamic} \
+ %{assert*} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.so}"
+#endif
+
+/* As an elf system, we need crtbegin/crtend stuff. */
+#undef STARTFILE_SPEC
+#ifdef OBSD_NO_DYNAMIC_LIBRARIES
+#define STARTFILE_SPEC \
+ "%{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} crtbegin%O%s"
+#else
+#define STARTFILE_SPEC "\
+ %{!shared: %{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} \
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#endif
+
+#undef ENDFILE_SPEC
+#ifdef OBSD_NO_DYNAMIC_LIBRARIES
+#define ENDFILE_SPEC "crtend%O%s"
+#else
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+#endif
+
+/* We use gas, not the UNIX assembler. */
+#undef TARGET_DEFAULT
+#define TARGET_DEFAULT 0