more flattening of config files...

This commit is contained in:
espie 2002-06-03 18:33:33 +00:00
parent d432a4aa74
commit 403c8b9192
4 changed files with 206 additions and 26 deletions

View File

@ -0,0 +1,27 @@
$OpenBSD: patch-gcc_config_alpha_openbsd1_h,v 1.1 2002/06/03 18:33:33 espie Exp $
--- gcc/config/alpha/openbsd1.h.orig Mon Jun 3 17:18:18 2002
+++ gcc/config/alpha/openbsd1.h Mon Jun 3 17:17:57 2002
@@ -0,0 +1,23 @@
+/* Configuration fragment for an alpha 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. */
+
+#define OBSD_HAS_DECLARE_FUNCTION_NAME
+#define OBSD_HAS_DECLARE_FUNCTION_SIZE
+#define OBSD_HAS_DECLARE_OBJECT

View File

@ -1,24 +1,24 @@
$OpenBSD: patch-gcc_config_alpha_openbsd_h,v 1.2 2002/05/29 13:22:11 espie Exp $
$OpenBSD: patch-gcc_config_alpha_openbsd_h,v 1.3 2002/06/03 18:33:33 espie Exp $
--- gcc/config/alpha/openbsd.h.orig Fri Nov 3 00:29:08 2000
+++ gcc/config/alpha/openbsd.h Wed May 29 15:04:18 2002
@@ -22,15 +22,12 @@ Boston, MA 02111-1307, USA. */
+++ gcc/config/alpha/openbsd.h Mon Jun 3 17:18:12 2002
@@ -21,28 +21,28 @@ Boston, MA 02111-1307, USA. */
/* We settle for little endian for now. */
#define TARGET_ENDIAN_DEFAULT 0
#include <alpha/alpha.h>
+#include <alpha/elf.h>
-#include <alpha/alpha.h>
-
-#define OBSD_NO_DYNAMIC_LIBRARIES
#define OBSD_HAS_DECLARE_FUNCTION_NAME
#define OBSD_HAS_DECLARE_FUNCTION_SIZE
#define OBSD_HAS_DECLARE_OBJECT
-#define OBSD_HAS_DECLARE_FUNCTION_NAME
-#define OBSD_HAS_DECLARE_FUNCTION_SIZE
-#define OBSD_HAS_DECLARE_OBJECT
-
-/* alpha ecoff supports only weak aliases, see below. */
-#define ASM_WEAKEN_LABEL(FILE,NAME) ASM_OUTPUT_WEAK_ALIAS (FILE,NAME,0)
-
#include <openbsd.h>
-#include <openbsd.h>
-
/* Controlling the compilation driver. */
@@ -38,11 +35,23 @@ Boston, MA 02111-1307, USA. */
/* alpha needs __start. */
#undef LINK_SPEC
#define LINK_SPEC \
@ -45,7 +45,7 @@ $OpenBSD: patch-gcc_config_alpha_openbsd_h,v 1.2 2002/05/29 13:22:11 espie Exp $
/* Layout of source language data types. */
@@ -63,64 +72,19 @@ Boston, MA 02111-1307, USA. */
@@ -63,64 +63,19 @@ Boston, MA 02111-1307, USA. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG

View File

@ -1,7 +1,11 @@
$OpenBSD: patch-gcc_config_gcc,v 1.10 2002/05/30 21:15:28 espie Exp $
$OpenBSD: patch-gcc_config_gcc,v 1.11 2002/06/03 18:33:33 espie Exp $
--- gcc/config.gcc.orig Thu May 2 23:28:49 2002
+++ gcc/config.gcc Thu May 30 23:12:01 2002
@@ -579,6 +579,7 @@ alpha*-*-openbsd*)
+++ gcc/config.gcc Mon Jun 3 17:17:34 2002
@@ -576,9 +576,11 @@ alpha*-*-netbsd*)
;;
alpha*-*-openbsd*)
+ tm_file="alpha/alpha.h alpha/elf.h alpha/openbsd1.h openbsd.h ${tm_file}"
# default x-alpha is only appropriate for dec-osf.
target_cpu_default="MASK_GAS"
tmake_file="alpha/t-alpha alpha/t-ieee"
@ -9,7 +13,7 @@ $OpenBSD: patch-gcc_config_gcc,v 1.10 2002/05/30 21:15:28 espie Exp $
;;
alpha*-dec-osf*)
@@ -2762,6 +2763,7 @@ romp-*-openbsd*)
@@ -2762,6 +2764,7 @@ romp-*-openbsd*)
# Nothing special
;;
powerpc-*-openbsd*)
@ -17,13 +21,13 @@ $OpenBSD: patch-gcc_config_gcc,v 1.10 2002/05/30 21:15:28 espie Exp $
tmake_file="${tmake_file} rs6000/t-rs6000 rs6000/t-openbsd"
extra_headers=
;;
@@ -3086,6 +3088,13 @@ sparc-*-openbsd*)
@@ -3086,6 +3089,13 @@ sparc-*-openbsd*)
tmake_file="t-libc-ok t-openbsd sparc/t-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"
+ tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h"
+ xm_file=sparc/xm-sp64.h
+ gas=yes gnu_ld=yes
+ with_cpu=ultrasparc

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-gcc_config_sparc_openbsd64_h,v 1.7 2002/06/03 10:13:34 art Exp $
--- gcc/config/sparc/openbsd64.h.orig Sat Jun 1 23:45:17 2002
+++ gcc/config/sparc/openbsd64.h Sun Jun 2 06:25:40 2002
@@ -0,0 +1,77 @@
$OpenBSD: patch-gcc_config_sparc_openbsd64_h,v 1.8 2002/06/03 18:33:33 espie Exp $
--- gcc/config/sparc/openbsd64.h.orig Thu May 30 12:57:52 2002
+++ gcc/config/sparc/openbsd64.h Mon Jun 3 13:49:36 2002
@@ -0,0 +1,226 @@
+/* Configuration file for sparc64 OpenBSD target.
+ Copyright (C) 1999 Free Software Foundation, Inc.
+
@ -41,8 +41,6 @@ $OpenBSD: patch-gcc_config_sparc_openbsd64_h,v 1.7 2002/06/03 10:13:34 art Exp $
+#undef CPP_SUBTARGET_SPEC
+#define CPP_SUBTARGET_SPEC ""
+
+#undef CPLUSPLUS_CPP_SPEC
+
+#undef MD_EXEC_PREFIX
+#undef MD_STARTFILE_PREFIX
+
@ -63,6 +61,14 @@ $OpenBSD: patch-gcc_config_sparc_openbsd64_h,v 1.7 2002/06/03 10:13:34 art Exp $
+#undef LONG_DOUBLE_TYPE_SIZE
+#define LONG_DOUBLE_TYPE_SIZE 128
+
+#undef WINT_TYPE
+#define WINT_TYPE "long int"
+
+#undef WINT_TYPE_SIZE
+#define WINT_TYPE_SIZE 32
+
+#define HANDLE_PRAGMA_REDEFINE_EXTNAME 1
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{!shared:%{!nostdlib:%{!r*:%{!e*:-e __start}}}} \
@ -79,3 +85,146 @@ $OpenBSD: patch-gcc_config_sparc_openbsd64_h,v 1.7 2002/06/03 10:13:34 art Exp $
+ crtbegin%O%s} %{shared:crtbeginS%O%s}"
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC "%{!shared:crtend%O%s} %{shared:crtendS%O%s}"
+
+#undef ASM_CPU_DEFAULT_SPEC
+#define ASM_CPU_DEFAULT_SPEC "-xarch=v8plusa"
+
+#undef ASM_CPU_SPEC
+#define ASM_CPU_SPEC "\
+%{mcpu=v8plus:-xarch=v8plus} \
+%{mcpu=ultrasparc:-xarch=v8plusa} \
+%{!mcpu*:%(asm_cpu_default)} \
+"
+
+/* Same as sparc.h */
+#undef DBX_REGISTER_NUMBER
+#define DBX_REGISTER_NUMBER(REGNO) \
+ (TARGET_FLAT && (REGNO) == HARD_FRAME_POINTER_REGNUM ? 31 : REGNO)
+
+/* We use stabs-in-elf by default, because that is what the native
+ toolchain uses. */
+#undef PREFERRED_DEBUGGING_TYPE
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+
+/* The Solaris 2 assembler uses .skip, not .zero, so put this back. */
+#undef ASM_OUTPUT_SKIP
+#define ASM_OUTPUT_SKIP(FILE,SIZE) \
+ fprintf (FILE, "\t.skip %u\n", (SIZE))
+
+#undef LOCAL_LABEL_PREFIX
+#define LOCAL_LABEL_PREFIX "."
+
+/* This is how to output a definition of an internal numbered label where
+ PREFIX is the class of label and NUM is the number within the class. */
+
+#undef ASM_OUTPUT_INTERNAL_LABEL
+#define ASM_OUTPUT_INTERNAL_LABEL(FILE,PREFIX,NUM) \
+ fprintf (FILE, ".L%s%d:\n", PREFIX, NUM)
+
+/* This is how to output a reference to an internal numbered label where
+ PREFIX is the class of label and NUM is the number within the class. */
+
+#undef ASM_OUTPUT_INTERNAL_LABELREF
+#define ASM_OUTPUT_INTERNAL_LABELREF(FILE,PREFIX,NUM) \
+ fprintf (FILE, ".L%s%d", PREFIX, NUM)
+
+/* This is how to store into the string LABEL
+ the symbol_ref name of an internal numbered label where
+ PREFIX is the class of label and NUM is the number within the class.
+ This is suitable for output with `assemble_name'. */
+
+#undef ASM_GENERATE_INTERNAL_LABEL
+#define ASM_GENERATE_INTERNAL_LABEL(LABEL,PREFIX,NUM) \
+ sprintf ((LABEL), "*.L%s%ld", (PREFIX), (long)(NUM))
+
+/* Select a format to encode pointers in exception handling data. CODE
+ is 0 for data, 1 for code labels, 2 for function pointers. GLOBAL is
+ true if the symbol may be affected by dynamic relocations.
+
+ Some Solaris dynamic linkers don't handle unaligned section relative
+ relocs properly, so force them to be aligned. */
+#ifndef HAVE_AS_SPARC_UA_PCREL
+#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL) \
+ ((flag_pic || GLOBAL) ? DW_EH_PE_aligned : DW_EH_PE_absptr)
+#endif
+
+/* ??? This does not work in SunOS 4.x, so it is not enabled in sparc.h.
+ Instead, it is enabled here, because it does work under Solaris. */
+/* Define for support of TFmode long double and REAL_ARITHMETIC.
+ Sparc ABI says that long double is 4 words. */
+#define LONG_DOUBLE_TYPE_SIZE 128
+
+/* But indicate that it isn't supported by the hardware. */
+#define WIDEST_HARDWARE_FP_SIZE 64
+
+#define STDC_0_IN_SYSTEM_HEADERS 1
+
+#define MULDI3_LIBCALL "__mul64"
+#define DIVDI3_LIBCALL "__div64"
+#define UDIVDI3_LIBCALL "__udiv64"
+#define MODDI3_LIBCALL "__rem64"
+#define UMODDI3_LIBCALL "__urem64"
+
+#undef INIT_SUBTARGET_OPTABS
+#define INIT_SUBTARGET_OPTABS \
+ fixsfdi_libfunc \
+ = init_one_libfunc (TARGET_ARCH64 ? "__ftol" : "__ftoll"); \
+ fixunssfdi_libfunc \
+ = init_one_libfunc (TARGET_ARCH64 ? "__ftoul" : "__ftoull"); \
+ fixdfdi_libfunc \
+ = init_one_libfunc (TARGET_ARCH64 ? "__dtol" : "__dtoll"); \
+ fixunsdfdi_libfunc \
+ = init_one_libfunc (TARGET_ARCH64 ? "__dtoul" : "__dtoull")
+
+
+/*
+ * Attempt to turn on access permissions for the stack.
+ *
+ * This code must be defined when compiling gcc but not when compiling
+ * libgcc2.a, unless we're generating code for 64 bits SPARC
+ *
+ * _SC_STACK_PROT is only defined for post 2.6, but we want this code
+ * to run always. 2.6 can change the stack protection but has no way to
+ * query it.
+ *
+ */
+
+/* This declares mprotect (used in TRANSFER_FROM_TRAMPOLINE) for
+ libgcc2.c. */
+/* We don't want to include this because sys/mman.h is not present on
+ some non-Solaris configurations that use sol2.h. */
+#if 0 /* def L_trampoline */
+#include <sys/mman.h>
+#endif
+
+#define TRANSFER_FROM_TRAMPOLINE \
+static int need_enable_exec_stack; \
+ \
+static void check_enabling(void) __attribute__ ((constructor)); \
+static void check_enabling(void) \
+{ \
+ extern long sysconf(int); \
+ \
+ int prot = (int) sysconf(515 /*_SC_STACK_PROT */); \
+ if (prot != 7) \
+ need_enable_exec_stack = 1; \
+} \
+ \
+extern void __enable_execute_stack (void *); \
+void \
+__enable_execute_stack (addr) \
+ void *addr; \
+{ \
+ if (!need_enable_exec_stack) \
+ return; \
+ else { \
+ long size = getpagesize (); \
+ long mask = ~(size-1); \
+ char *page = (char *) (((long) addr) & mask); \
+ char *end = (char *) ((((long) (addr + TRAMPOLINE_SIZE)) & mask) + size); \
+ \
+ /* 7 is PROT_READ | PROT_WRITE | PROT_EXEC */ \
+ if (mprotect (page, end - page, 7) < 0) \
+ perror ("mprotect of trampoline code"); \
+ } \
+}