diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2013-07-11 19:11:28 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2013-07-11 19:11:28 +0000 |
commit | e79178d245caa4af6b5f70eb02fda085bcb53968 (patch) | |
tree | 619bbf600c3bf72a5a8e884c44c0eb5ae2063117 | |
parent | 2021dd5f6e3ab1478a5ef132852ccade53969606 (diff) |
ELF configuration for gcc3 on vax.
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config.gcc | 11 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config/vax/openbsd1.h | 1 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/gcc/config/vax/openbsdelf.h | 92 |
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 |