diff options
author | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1995-12-21 01:17:23 +0000 |
---|---|---|
committer | Niklas Hallqvist <niklas@cvs.openbsd.org> | 1995-12-21 01:17:23 +0000 |
commit | 45b8cd0825f894eda5c4b56f17ad02972f7bf2ff (patch) | |
tree | 4afa647bdd533546a136a45d234171ef616154c6 /gnu/usr.bin/gcc/config | |
parent | ee08dd3862586da3be6365b2bfcb077a4efba6cc (diff) |
First cut at making a minimal intrusive munge of gcc to fit in a BSD
framework. This means, provide a Makefile.bsd-wrapper. Remove
intermediate files from the source dir. Build them in the obj-dir.
Add some Makefile hooks so we can tune the std Makefile for our
purpose but still have it behave normal for out-of-tree
configurations. Only i386 is supported for now. The other archs will
follow soon. This checkin requires an existing makeinfo and a yacc
that accepts -o.
Diffstat (limited to 'gnu/usr.bin/gcc/config')
-rw-r--r-- | gnu/usr.bin/gcc/config/i386/openbsd.h | 81 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/config/i386/xm-openbsd.h | 4 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/config/openbsd.h | 2 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/config/x-openbsd | 6 | ||||
-rw-r--r-- | gnu/usr.bin/gcc/config/xm-openbsd.h | 27 |
5 files changed, 120 insertions, 0 deletions
diff --git a/gnu/usr.bin/gcc/config/i386/openbsd.h b/gnu/usr.bin/gcc/config/i386/openbsd.h new file mode 100644 index 00000000000..b64352e15a7 --- /dev/null +++ b/gnu/usr.bin/gcc/config/i386/openbsd.h @@ -0,0 +1,81 @@ +/* This goes away when the math-emulator is fixed */ +#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */ + +/* This is tested by i386gas.h. */ +#define YES_UNDERSCORES + +#include <i386/gstabs.h> + +/* Get perform_* macros to build libgcc.a. */ +#include <i386/perform.h> + +/* Get generic OpenBSD definitions. */ +#include <openbsd.h> + +/* Keep __NetBSD__ until we diverge sufficiently from them. */ +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-Dunix -Di386 -D__OpenBSD__ -D__NetBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(i386) -Amachine(i386)" + +#undef SIZE_TYPE +#define SIZE_TYPE "unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "int" + +#undef WCHAR_TYPE +#define WCHAR_TYPE "int" + +#undef WCHAR_UNSIGNED +#define WCHAR_UNSIGNED 0 + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 32 + +#define HANDLE_SYSV_PRAGMA + +/* There are conflicting reports about whether this system uses + a different assembler syntax. wilson@cygnus.com says # is right. */ +#undef COMMENT_BEGIN +#define COMMENT_BEGIN "#" + +#undef ASM_APP_ON +#define ASM_APP_ON "#APP\n" + +#undef ASM_APP_OFF +#define ASM_APP_OFF "#NO_APP\n" + +/* The following macros are stolen from i386v4.h */ +/* These have to be defined to get PIC code correct */ + +/* This is how to output an element of a case-vector that is relative. + This is only used for PIC code. See comments by the `casesi' insn in + i386.md for an explanation of the expression this outputs. */ + +#undef ASM_OUTPUT_ADDR_DIFF_ELT +#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, VALUE, REL) \ + fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE) + +/* Indicate that jump tables go in the text section. This is + necessary when compiling PIC code. */ + +#define JUMP_TABLES_IN_TEXT_SECTION + +/* Don't default to pcc-struct-return, because gcc is the only compiler, and + we want to retain compatibility with older gcc versions. */ +#define DEFAULT_PCC_STRUCT_RETURN 0 + +/* Profiling routines, partially copied from i386/osfrose.h. */ + +/* Redefine this to use %eax instead of %edx. */ +#undef FUNCTION_PROFILER +#define FUNCTION_PROFILER(FILE, LABELNO) \ +{ \ + if (flag_pic) \ + { \ + fprintf (FILE, "\tcall mcount@PLT\n"); \ + } \ + else \ + { \ + fprintf (FILE, "\tcall mcount\n"); \ + } \ +} diff --git a/gnu/usr.bin/gcc/config/i386/xm-openbsd.h b/gnu/usr.bin/gcc/config/i386/xm-openbsd.h new file mode 100644 index 00000000000..b01f2c29ca5 --- /dev/null +++ b/gnu/usr.bin/gcc/config/i386/xm-openbsd.h @@ -0,0 +1,4 @@ +/* Configuration for GCC for Intel i386 running OpenBSD as host. */ + +#include <i386/xm-i386.h> +#include <xm-openbsd.h> diff --git a/gnu/usr.bin/gcc/config/openbsd.h b/gnu/usr.bin/gcc/config/openbsd.h new file mode 100644 index 00000000000..0ed0981d48b --- /dev/null +++ b/gnu/usr.bin/gcc/config/openbsd.h @@ -0,0 +1,2 @@ +/* At the moment OpenBSD is really much like NetBSD */ +#include <netbsd.h> diff --git a/gnu/usr.bin/gcc/config/x-openbsd b/gnu/usr.bin/gcc/config/x-openbsd new file mode 100644 index 00000000000..1c272f5a8dc --- /dev/null +++ b/gnu/usr.bin/gcc/config/x-openbsd @@ -0,0 +1,6 @@ +# Don't run fixproto +STMP_FIXPROTO = + +# We don't need GCC's own include files. +USER_H = +INSTALL_ASSERT_H = diff --git a/gnu/usr.bin/gcc/config/xm-openbsd.h b/gnu/usr.bin/gcc/config/xm-openbsd.h new file mode 100644 index 00000000000..cbaf24226f1 --- /dev/null +++ b/gnu/usr.bin/gcc/config/xm-openbsd.h @@ -0,0 +1,27 @@ +/* Configuration for GNU C-compiler for hosts running OpenBSD. + Copyright (C) 1995 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. */ + +/* This file defines machine-independent things specific to a host + running OpenBSD. This file should not be specified as $xm_file itself; + instead $xm_file should be CPU/xm-openbsd.h, which should include both + CPU/xm-CPU.h and this file xm-openbsd.h. */ + +#define HAVE_STRERROR +#define HAVE_VPRINTF |