remove GCC2 FORTRAN compiler and libraries that had been used on GCC2 archs

This commit is contained in:
naddy 2013-08-09 10:59:30 +00:00
parent 35c197e090
commit d85f4f7fc0
19 changed files with 2 additions and 837 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.1153 2013/08/08 20:49:11 bluhm Exp $ # $OpenBSD: Makefile,v 1.1154 2013/08/09 10:59:30 naddy Exp $
SUBDIR = SUBDIR =
SUBDIR += ElectricFence SUBDIR += ElectricFence
@ -346,7 +346,6 @@
SUBDIR += libexecinfo SUBDIR += libexecinfo
SUBDIR += libexude SUBDIR += libexude
SUBDIR += libf2c SUBDIR += libf2c
SUBDIR += libf2c-old
SUBDIR += libffi SUBDIR += libffi
SUBDIR += libfmt SUBDIR += libfmt
SUBDIR += libftdi SUBDIR += libftdi

View File

@ -1,59 +0,0 @@
# $OpenBSD: Makefile,v 1.13 2013/07/07 21:25:27 naddy Exp $
V = 2.95.3
CONFIG = ${MACHINE_ARCH}-unknown-openbsd${OSREV}
SUBST_VARS += CONFIG V
PKGNAME = libf2c-$V
REVISION = 9
DISTFILES = libf2c-openbsd-$V.tgz
MASTER_SITES = http://spacehopper.org/mirrors/
ONLY_FOR_ARCHS = ${GCC2_ARCHS}
COMMENT = GNU fortran 77 libraries
CATEGORIES = devel math
PERMIT_PACKAGE_CDROM = Yes
MAJOR = 8
MINOR = 0
SHARED_LIBS = g2c ${MAJOR}.${MINOR}
WRKDIST = ${WRKDIR}/libf2c
BUILD_DEPENDS = lang/g77-old:patch
LIBIBERTY_INCLUDES = ${WRKDIR}/lang/g77-old/libiberty/include
EGCS_DIR = ${WRKDIR}/lang/g77-old/g77
MAKE_FILE = ${WRKDIST}/Makefile.bsd-wrapper
post-extract:
if test -e ${EGCS_DIR}/gcc; then \
ln -sf ${EGCS_DIR}/gcc ${WRKDIR}/gcc; \
else \
exit 1; \
fi
ln -sf ${EGCS_DIR}/install-sh ${WRKDIR}/install-sh
ln -sf ${EGCS_DIR}/config.sub ${WRKDIR}/config.sub
ln -sf ${EGCS_DIR}/config.guess ${WRKDIR}/config.guess
do-configure:
cd ${WRKDIST} && ${MAKE} ${MAKE_FLAGS} -f ${MAKE_FILE} obj
cd ${WRKDIST} && ${MAKE} ${MAKE_FLAGS} -f ${MAKE_FILE} depend
MAKE_FLAGS = MANDIR=${TRUEPREFIX}/man/cat \
INSTALL_LIBGCC= LIBGCC= \
COMPILERS=f771 \
USE_COLLECT2= \
LIBDIR=${TRUEPREFIX}/lib \
LIBIBERTY_INCLUDES=${LIBIBERTY_INCLUDES} \
major=${MAJOR} minor=${MINOR}
post-install:
cd ${WRKBUILD}/obj && ${INSTALL_DATA} g2c.h ${PREFIX}/include
${INSTALL_DATA_DIR} ${PREFIX}/lib/gcc-lib/${CONFIG}/$V
.for i in libfrtbegin.a libfrtbegin_pic.a libfrtbegin_p.a libg2c.a \
libg2c_p.a libg2c_pic.a libg2c.so.*
if test -e ${DESTDIR}${TRUEPREFIX}/lib/$i; then \
ln -sf ${TRUEPREFIX}/lib/$i ${PREFIX}/lib/gcc-lib/${CONFIG}/$V; \
fi
.endfor
.include <bsd.port.mk>

View File

@ -1,5 +0,0 @@
MD5 (libf2c-openbsd-2.95.3.tgz) = mvIqGP5tQ1ontnF//JjXCg==
RMD160 (libf2c-openbsd-2.95.3.tgz) = i3oyDI625pcbGUa2WgOdYzJxvPg=
SHA1 (libf2c-openbsd-2.95.3.tgz) = uzYTfZFwNgGV7kqaUDqJQP38EkQ=
SHA256 (libf2c-openbsd-2.95.3.tgz) = mcpzSOepDo3eFyTY5Shmhoszn7zkP21lEdDbX0T19p8=
SIZE (libf2c-openbsd-2.95.3.tgz) = 242588

View File

@ -1,12 +0,0 @@
$OpenBSD: patch-Makefile_bsd-wrapper,v 1.1.1.1 2010/05/27 08:36:54 espie Exp $
--- Makefile.bsd-wrapper.orig Tue May 25 11:38:21 2010
+++ Makefile.bsd-wrapper Tue May 25 11:38:43 2010
@@ -139,7 +139,7 @@ all: config.status
config.status: Makefile.in configure
mkdir -p libE77
- cd ${.CURDIR}/../gcc && \
+ cd ${EGCS_DIR}/gcc && \
make -f Makefile.bsd-wrapper config.status tree-check.h
# fake g771 existence
cd $(EGCS_OBJDIR)/gcc && touch f771

View File

@ -1 +0,0 @@
fortran 77 libraries for gcc 2.95.3.

View File

@ -1,3 +0,0 @@
@comment $OpenBSD: PFRAG.shared,v 1.2 2013/07/02 08:21:43 espie Exp $
@lib lib/libg2c.so.${LIBg2c_VERSION}
lib/gcc-lib/${CONFIG}/${V}/libg2c.${LIBg2c_VERSION}

View File

@ -1,14 +0,0 @@
@comment $OpenBSD: PLIST,v 1.3 2013/07/02 08:21:43 espie Exp $
include/g2c.h
lib/gcc-lib/
lib/gcc-lib/${CONFIG}/
lib/gcc-lib/${CONFIG}/${V}/
lib/gcc-lib/${CONFIG}/${V}/libfrtbegin.a
lib/gcc-lib/${CONFIG}/${V}/libfrtbegin_p.a
lib/gcc-lib/${CONFIG}/${V}/libg2c.a
lib/gcc-lib/${CONFIG}/${V}/libg2c_p.a
%%SHARED%%
lib/libfrtbegin.a
lib/libfrtbegin_p.a
lib/libg2c.a
lib/libg2c_p.a

View File

@ -1,4 +1,4 @@
# $OpenBSD: Makefile,v 1.153 2013/06/19 22:39:01 jturner Exp $ # $OpenBSD: Makefile,v 1.154 2013/08/09 10:59:31 naddy Exp $
SUBDIR = SUBDIR =
SUBDIR += STk SUBDIR += STk
@ -25,7 +25,6 @@
SUBDIR += gambit SUBDIR += gambit
SUBDIR += gawk SUBDIR += gawk
SUBDIR += g77 SUBDIR += g77
SUBDIR += g77-old
SUBDIR += gcc SUBDIR += gcc
SUBDIR += gforth SUBDIR += gforth
SUBDIR += gfortran SUBDIR += gfortran

View File

@ -1,102 +0,0 @@
# $OpenBSD: Makefile,v 1.15 2013/07/14 18:00:17 miod Exp $
ONLY_FOR_ARCHS = ${GCC2_ARCHS}
V = 2.95.3
PKGNAME = g77-$V
REVISION = 8
DISTFILES = g77-openbsd-2.95.3.tgz \
libiberty-includes-openbsd.tgz
CONFIG = ${MACHINE_ARCH}-unknown-openbsd${OSREV}
SUBST_VARS += CONFIG V
SYSV = 2.95.3
COMMENT = GNU fortran 77 compiler
CATEGORIES = lang math
MASTER_SITES = http://spacehopper.org/mirrors/
PERMIT_PACKAGE_CDROM = Yes
WRKDIST = ${WRKDIR}/g77
CONFIGURE_SCRIPT = ${WRKDIST}/gcc/configure
SEPARATE_BUILD = Yes
LIBIBERTY_INCLUDES = ${WRKDIR}/libiberty/include
GNUCFLAGS = ${CFLAGS} ${COPTS} -DOPENBSD_NATIVE \
-I${LIBIBERTY_INCLUDES}
VAXHOST_CFLAGS = -DIN_GCC -DOPENBSD_NATIVE -DHAVE_CONFIG_H -O0
CONFIGURE_STYLE = gnu
MAKE_FLAGS = CFLAGS="${GNUCFLAGS}" \
CC="${CC}" LDFLAGS="${LDSTATIC}" \
DEMANGLER_PROG= \
DEMANGLE_H= \
LIBIBERTY_INCLUDES=${LIBIBERTY_INCLUDES} \
LIBGCC2_INCLUDES=-I${LIBIBERTY_INCLUDES} \
BUILD_LIBIBERTY=-liberty \
LIBIBERTY=-liberty \
HOST_LIBDEPS= \
LIBDEPS= \
build_infodir=. \
INSTALL_LIBGCC= LIBGCC= \
COMPILERS=f771 \
USE_COLLECT2= \
LANGUAGES=f77 \
GCC_FOR_TARGET=gcc \
LIBGCC1=
FAKE_FLAGS= prefix=${WRKINST}${TRUEPREFIX} \
infodir=${WRKINST}${TRUEPREFIX}/info \
bindir=${WRKINST}${TRUEPREFIX}/bin \
NO_TARGET_GCC=true
.if ${MACHINE_ARCH} == "vax"
MAKE_FLAGS += HOST_CFLAGS="${VAXHOST_CFLAGS} -I${LIBIBERTY_INCLUDES}"
.endif
CONFIGURE_ENV = INSTALL_PROGRAM="${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP}" \
CPPFLAGS=-I${LIBIBERTY_INCLUDES}
CONFIGURE_ARGS = --with-gnu-as --with-gnu-ld \
--with-local-prefix=${PREFIX} ${CF} \
--with-gxx-include-dir=dummy \
-enable-languages='f77' \
--disable-cpp --disable-nls \
--enable-__cxa_atexit
ALL_TARGET = all doc
INSTALL_TARGET = install-common f77.install-info f77.install-normal
LIBDIR = ${PREFIX}/lib/gcc-lib/${CONFIG}/$V
SYSDIR = /usr/lib/gcc-lib/${CONFIG}/${SYSV}
.if ${MACHINE_ARCH} == "m68k"
PKG_ARGS += -DPIC=1
.else
PKG_ARGS += -DPIC=0
.endif
post-extract:
cd ${WRKDIST}/gcc; rm assert.h; ln -sf /usr/include/assert.h
post-patch:
@cp ${FILESDIR}/gcc_config_vax_openbsdelf.h \
${WRKSRC}/gcc/config/vax/openbsdelf.h
post-install:
ln -sf ${SYSDIR}/libgcc.a ${LIBDIR}/libgcc.a
if [ -d ${LIBDIR}/fpic ]; then \
ln -sf ${SYSDIR}/fpic/libgcc.a ${LIBDIR}/fpic/libgcc.a; \
fi
if [ -d ${LIBDIR}/fPIC ]; then \
ln -sf ${SYSDIR}/fPIC/libgcc.a ${LIBDIR}/fPIC/libgcc.a; \
fi
ln -sf ${SYSDIR}/cpp0 ${LIBDIR}/cpp0
${INSTALL_MAN} ${WRKDIST}/gcc/f/g77.1 ${PREFIX}/man/man1/g77.1
cd ${PREFIX}/man/man1 && ln -f g77.1 f77.1
cd ${PREFIX}/bin && ln -f g77 f77
WANTLIB = c iberty
.include <bsd.port.mk>

View File

@ -1,10 +0,0 @@
MD5 (g77-openbsd-2.95.3.tgz) = ujAYhdBRbvzN/hahA6SnuQ==
MD5 (libiberty-includes-openbsd.tgz) = WHqNyoI2toJt4z5iHIc23Q==
RMD160 (g77-openbsd-2.95.3.tgz) = Mhq5B3sV98S4lNvrS7vUiNa6/QE=
RMD160 (libiberty-includes-openbsd.tgz) = YSPA4sN5Dd8DZ9g3feIg5qum63s=
SHA1 (g77-openbsd-2.95.3.tgz) = xPAOIfbIjkS8L74+oKH0BOvOb7w=
SHA1 (libiberty-includes-openbsd.tgz) = /JjLnsZV7TTmMI0Nk9rTYrBxjAk=
SHA256 (g77-openbsd-2.95.3.tgz) = Z920jDWAgGbTjsEO7FmOCM0WmFiGxm1cwxNfeAD8mwc=
SHA256 (libiberty-includes-openbsd.tgz) = 0LLdT251NyRZWLGF1G99GU+8XFgDXGQo8KXHWkzbIVQ=
SIZE (g77-openbsd-2.95.3.tgz) = 8210338
SIZE (libiberty-includes-openbsd.tgz) = 69547

View File

@ -1,92 +0,0 @@
/* Configuration file for a vax 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. */
#undef TARGET_DEFAULT
#define TARGET_DEFAULT 0
#include <vax/vax.h>
#undef PCC_BITFIELD_TYPE_MATTERS
#include <elfos.h>
#define OBSD_NO_DYNAMIC_LIBRARIES
#include <openbsd.h>
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "-D__unix__ -D__vax__ -D__OpenBSD__ -D__ELF__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(vax) -Amachine(vax)"
#undef LINK_SPEC
#define LINK_SPEC \
"%{!nostdlib:%{!r*:%{!e*:-e _start}}} %{R*} %{assert*}"
/* As an elf system, we need crtbegin/crtend stuff. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{pg:gcrt0%O%s} %{!pg:%{p:gcrt0%O%s} %{!p:crt0%O%s}} crtbegin%O%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend%O%s"
/* 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 WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
#undef PCC_STATIC_STRUCT_RETURN
#undef REGISTER_PREFIX
#define REGISTER_PREFIX "%"
#undef USER_LABEL_PREFIX
#define USER_LABEL_PREFIX ""
/* Redefine this with register prefixes. */
#undef VAX_ISTREAM_SYNC
#define VAX_ISTREAM_SYNC "movpsl -(%sp)\n\tpushal 1(%pc)\n\trei"
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
asm_fprintf (FILE, "\tmovab .LP%d,%Rr0\n\tjsb __mcount\n", (LABELNO))
/* Use sjlj exceptions. */
#undef DWARF2_UNWIND_INFO
/* Make sure .stabs for a function are always the same section. */
#define DBX_OUTPUT_FUNCTION_END(file,decl) function_section(decl)
/* The VAX wants no space between the case instruction and the jump table. */
#undef ASM_OUTPUT_BEFORE_CASE_LABEL
#define ASM_OUTPUT_BEFORE_CASE_LABEL(FILE, PREFIX, NUM, TABLE)
/* Get the udiv/urem calls out of the user's namespace */
#undef UDIVSI3_LIBCALL
#define UDIVSI3_LIBCALL "*__udiv"
#undef UMODSI3_LIBCALL
#define UMODSI3_LIBCALL "*__urem"

View File

@ -1,13 +0,0 @@
$OpenBSD: patch-gcc_Makefile_in,v 1.1.1.1 2010/05/27 08:36:21 espie Exp $
--- gcc/Makefile.in.orig Tue May 25 11:08:35 2010
+++ gcc/Makefile.in Tue May 25 11:08:42 2010
@@ -2552,9 +2552,6 @@ install-common: native installdirs $(EXTRA_PARTS) lang
$(INSTALL_DATA) SYSCALLS.c.X $(libsubdir)/SYSCALLS.c.X; \
chmod a-x $(libsubdir)/SYSCALLS.c.X; \
fi
- -rm -f $(libsubdir)/cpp0$(exeext)
- $(INSTALL_PROGRAM) cpp0$(exeext) $(libsubdir)/cpp0$(exeext)
-# Install gcov if it was compiled.
-if [ -f gcov$(exeext) ]; \
then \
rm -f $(bindir)/gcov$(exeext); \

View File

@ -1,15 +0,0 @@
$OpenBSD: patch-gcc_config_gcc,v 1.1 2013/07/14 18:00:19 miod Exp $
--- gcc/config.gcc.orig Tue Nov 16 11:23:43 2004
+++ gcc/config.gcc Sun Jul 14 12:04:19 2013
@@ -2762,10 +2762,10 @@ vax-*-netbsd*)
use_collect2=yes
;;
vax-*-openbsd*)
+ tm_file="vax/openbsdelf.h"
tm_file="${tm_file} exec-stack.h"
tmake_file="${tmake_file} vax/t-openbsd"
float_format=vax
- use_collect2=yes
;;
vax-*-ultrix*) # vaxen running ultrix
tm_file="${tm_file} vax/ultrix.h"

View File

@ -1,163 +0,0 @@
$OpenBSD: patch-gcc_config_vax_vax_c,v 1.1 2013/07/14 18:00:19 miod Exp $
--- gcc/config/vax/vax.c.orig Wed May 26 13:36:09 1999
+++ gcc/config/vax/vax.c Sun Jul 14 12:08:27 2013
@@ -19,7 +19,7 @@ the Free Software Foundation, 59 Temple Place - Suite
Boston, MA 02111-1307, USA. */
#include "config.h"
-#include <stdio.h>
+#include "system.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
@@ -32,6 +32,8 @@ Boston, MA 02111-1307, USA. */
#ifdef VMS_TARGET
#include "tree.h"
#endif
+#include "reload.h"
+#include "recog.h"
/* This is like nonimmediate_operand with a restriction on the type of MEM. */
@@ -43,8 +45,9 @@ split_quadword_operands (operands, low, n)
int i;
/* Split operands. */
- low[0] = low[1] = low[2] = 0;
- for (i = 0; i < 3; i++)
+ for (i = 0; i < n; i++)
+ low[i] = 0;
+ for (i = 0; i < n; i++)
{
if (low[i])
/* it's already been figured out */;
@@ -56,7 +59,7 @@ split_quadword_operands (operands, low, n)
if (which_alternative == 0 && i == 0)
{
addr = XEXP (operands[i], 0);
- operands[i+1] = low[i+1] = gen_rtx (MEM, SImode, addr);
+ operands[i+1] = low[i+1] = gen_rtx_MEM (SImode, addr);
}
}
else
@@ -83,15 +86,15 @@ print_operand_address (file, addr)
goto retry;
case REG:
- fprintf (file, "(%s)", reg_names[REGNO (addr)]);
+ fprintf (file, "(%s%s)", REGISTER_PREFIX, reg_names[REGNO (addr)]);
break;
case PRE_DEC:
- fprintf (file, "-(%s)", reg_names[REGNO (XEXP (addr, 0))]);
+ fprintf (file, "-(%s%s)", REGISTER_PREFIX, reg_names[REGNO (XEXP (addr, 0))]);
break;
case POST_INC:
- fprintf (file, "(%s)+", reg_names[REGNO (XEXP (addr, 0))]);
+ fprintf (file, "(%s%s)+", REGISTER_PREFIX, reg_names[REGNO (XEXP (addr, 0))]);
break;
case PLUS:
@@ -232,7 +235,7 @@ print_operand_address (file, addr)
output_address (offset);
if (breg != 0)
- fprintf (file, "(%s)", reg_names[REGNO (breg)]);
+ fprintf (file, "(%s%s)", REGISTER_PREFIX, reg_names[REGNO (breg)]);
if (ireg != 0)
{
@@ -240,7 +243,7 @@ print_operand_address (file, addr)
ireg = XEXP (ireg, 0);
if (GET_CODE (ireg) != REG)
abort ();
- fprintf (file, "[%s]", reg_names[REGNO (ireg)]);
+ fprintf (file, "[%s%s]", REGISTER_PREFIX, reg_names[REGNO (ireg)]);
}
break;
@@ -249,7 +252,7 @@ print_operand_address (file, addr)
}
}
-char *
+const char *
rev_cond_name (op)
rtx op;
{
@@ -286,8 +289,10 @@ vax_float_literal(c)
register rtx c;
{
register enum machine_mode mode;
+#if HOST_FLOAT_FORMAT == VAX_FLOAT_FORMAT
int i;
union {double d; int i[2];} val;
+#endif
if (GET_CODE (c) != CONST_DOUBLE)
return 0;
@@ -323,7 +328,8 @@ vax_float_literal(c)
2 - indirect */
-int vax_address_cost(addr)
+int
+vax_address_cost (addr)
register rtx addr;
{
int reg = 0, indexed = 0, indir = 0, offset = 0, predec = 0;
@@ -365,6 +371,8 @@ int vax_address_cost(addr)
indir = 2; /* 3 on VAX 2 */
addr = XEXP (addr, 0);
goto restart;
+ default:
+ break;
}
/* Up to 3 things can be added in an address. They are stored in
@@ -402,7 +410,7 @@ vax_rtx_cost (x)
enum machine_mode mode = GET_MODE (x);
register int c;
int i = 0; /* may be modified in switch */
- char *fmt = GET_RTX_FORMAT (code); /* may be modified in switch */
+ const char *fmt = GET_RTX_FORMAT (code); /* may be modified in switch */
switch (code)
{
@@ -427,6 +435,8 @@ vax_rtx_cost (x)
case QImode:
c = 10; /* 3-4 on VAX 9000, 20-28 on VAX 2 */
break;
+ default:
+ break;
}
break;
case UDIV:
@@ -582,7 +592,7 @@ vax_rtx_cost (x)
/* Check a `double' value for validity for a particular machine mode. */
-static char *float_strings[] =
+static const char *const float_strings[] =
{
"1.70141173319264430e+38", /* 2^127 (2^24 - 1) / 2^24 */
"-1.70141173319264430e+38",
@@ -661,7 +671,7 @@ check_float_value (mode, d, overflow)
static
struct extern_list {
struct extern_list *next; /* next external */
- char *name; /* name of the external */
+ const char *name; /* name of the external */
int size; /* external's actual size */
int in_const; /* section type flag */
} *extern_head = 0, *pending_head = 0;
@@ -672,7 +682,7 @@ struct extern_list {
void
vms_check_external (decl, name, pending)
tree decl;
- char *name;
+ const char *name;
int pending;
{
register struct extern_list *p, *p0;

View File

@ -1,303 +0,0 @@
$OpenBSD: patch-gcc_config_vax_vax_h,v 1.1 2013/07/14 18:00:19 miod Exp $
--- gcc/config/vax/vax.h.orig Thu Jul 20 21:05:21 2006
+++ gcc/config/vax/vax.h Sun Jul 14 12:08:29 2013
@@ -25,7 +25,7 @@ Boston, MA 02111-1307, USA. */
/* If using g-format floating point, alter math.h. */
-#define CPP_SPEC "%{mg:-DGFLOAT}"
+#define CPP_SPEC "%{mg:%{!ansi:-DGFLOAT} -D__GFLOAT}"
/* Choose proper libraries depending on float format.
Note that there are no profiling libraries for g-format.
@@ -51,13 +51,16 @@ extern int target_flags;
/* Macros used in the machine description to test the flags. */
/* Nonzero if compiling code that Unix assembler can assemble. */
-#define TARGET_UNIX_ASM (target_flags & 1)
+#define MASK_UNIX_ASM 1
+#define TARGET_UNIX_ASM (target_flags & MASK_UNIX_ASM)
/* Nonzero if compiling with VAX-11 "C" style structure alignment */
-#define TARGET_VAXC_ALIGNMENT (target_flags & 2)
+#define MASK_VAXC_ALIGNMENT 2
+#define TARGET_VAXC_ALIGNMENT (target_flags & MASK_VAXC_ALIGNMENT)
/* Nonzero if compiling with `G'-format floating point */
-#define TARGET_G_FLOAT (target_flags & 4)
+#define MASK_G_FLOAT 4
+#define TARGET_G_FLOAT (target_flags & MASK_G_FLOAT)
/* Macro to define tables used to set the flags.
This is a list in braces of pairs in braces,
@@ -66,26 +69,26 @@ extern int target_flags;
An empty string NAME is used to identify the default VALUE. */
#define TARGET_SWITCHES \
- { {"unix", 1}, \
- {"gnu", -1}, \
- {"vaxc-alignment", 2}, \
- {"g", 4}, \
- {"g-float", 4}, \
- {"d", -4}, \
- {"d-float", -4}, \
- { "", TARGET_DEFAULT}}
+ { {"unix", MASK_UNIX_ASM, "Generate code for UNIX assembler"}, \
+ {"gnu", -MASK_UNIX_ASM, "Generate code for GNU assembler (gas)"}, \
+ {"vaxc-alignment", MASK_VAXC_ALIGNMENT, "Use VAXC structure conventions"}, \
+ {"g", MASK_G_FLOAT, "Generate GFLOAT double precision code"}, \
+ {"g-float", MASK_G_FLOAT, "Generate GFLOAT double precision code"}, \
+ {"d", -MASK_G_FLOAT, "Generate DFLOAT double precision code"}, \
+ {"d-float", -MASK_G_FLOAT, "Generate DFLOAT double precision code"}, \
+ { "", TARGET_DEFAULT, 0}}
/* Default target_flags if no switches specified. */
#ifndef TARGET_DEFAULT
-#define TARGET_DEFAULT 1
+#define TARGET_DEFAULT MASK_UNIX_ASM
#endif
/* Target machine storage layout */
/* Define for software floating point emulation of VAX format
when cross compiling from a non-VAX host. */
-/* #define REAL_ARITHMETIC */
+#define REAL_ARITHMETIC
/* Define this if most significant bit is lowest numbered
in instructions that operate on numbered bit-fields.
@@ -258,7 +261,7 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
This is an initializer for a vector of HARD_REG_SET
of length N_REG_CLASSES. */
-#define REG_CLASS_CONTENTS {0, 0xffff}
+#define REG_CLASS_CONTENTS {{0}, {0xffff}}
/* The same information, inverted:
Return the class number of the smallest class containing
@@ -347,8 +350,7 @@ enum reg_class { NO_REGS, ALL_REGS, LIM_REG_CLASSES };
/* Given an rtx for the address of a frame,
return an rtx for the address of the word in the frame
that holds the dynamic chain--the previous frame's address. */
-#define DYNAMIC_CHAIN_ADDRESS(frame) \
-gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
+#define DYNAMIC_CHAIN_ADDRESS(FRAME) plus_constant ((FRAME), 12)
/* If we generate an insn to push BYTES bytes,
this says how many the stack pointer really advances by.
@@ -377,14 +379,14 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
/* On the Vax the return value is in R0 regardless. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
- gen_rtx (REG, TYPE_MODE (VALTYPE), 0)
+ gen_rtx_REG (TYPE_MODE (VALTYPE), 0)
/* Define how to find the value returned by a library function
assuming the value has mode MODE. */
/* On the Vax the return value is in R0 regardless. */
-#define LIBCALL_VALUE(MODE) gen_rtx (REG, MODE, 0)
+#define LIBCALL_VALUE(MODE) gen_rtx_REG (MODE, 0)
/* Define this if PCC uses the nonreentrant convention for returning
structure and union values. */
@@ -469,10 +471,11 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
if (warn_stack_larger_than && size > stack_larger_than_size) \
warning ("stack usage is %d bytes", size); \
if ((size) >= 64) \
- fprintf (FILE, "\tmovab %d(sp),sp\n", -size); \
+ fprintf (FILE, "\tmovab %d(%ssp),%ssp\n", -size, \
+ REGISTER_PREFIX, REGISTER_PREFIX); \
else if (size) \
- fprintf (FILE, "\tsubl2 $%d,sp\n", (size)); \
-}
+ fprintf (FILE, "\tsubl2 $%d,%ssp\n", \
+ (size), REGISTER_PREFIX); }
/* vms.h redefines this. */
#define MAYBE_VMS_FUNCTION_PROLOGUE(FILE)
@@ -500,8 +503,9 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
*/
#define BLOCK_PROFILER(FILE, BLOCKNO) \
- fprintf (FILE, "\tmovpsl -(sp)\n\tmovw (sp),2(sp)\n\taddl2 $2,sp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (sp)+\n", \
- 4 * BLOCKNO)
+ fprintf (FILE, "\tmovpsl -(%ssp)\n\tmovw (%ssp),2(%ssp)\n\taddl2 $2,%ssp\n\taddl2 $1,LPBX2+%d\n\tbicpsw $255\n\tbispsw (%ssp)+\n", \
+ 4 * BLOCKNO, REGISTER_PREFIX, REGISTER_PREFIX, REGISTER_PREFIX, \
+ REGISTER_PREFIX, REGISTER_PREFIX)
/* EXIT_IGNORE_STACK should be nonzero if, when returning from a function,
the stack pointer does not matter. The value is tested only in
@@ -538,10 +542,10 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
#define TRAMPOLINE_TEMPLATE(FILE) \
{ \
ASM_OUTPUT_SHORT (FILE, const0_rtx); \
- ASM_OUTPUT_SHORT (FILE, GEN_INT (0x8fd0)); \
+ ASM_OUTPUT_SHORT (FILE, GEN_INT (0x8fd0)); \
ASM_OUTPUT_INT (FILE, const0_rtx); \
- ASM_OUTPUT_BYTE (FILE, 0x50+STATIC_CHAIN_REGNUM); \
- ASM_OUTPUT_SHORT (FILE, GEN_INT (0x9f17)); \
+ ASM_OUTPUT_BYTE (FILE, 0x50 + STATIC_CHAIN_REGNUM); \
+ ASM_OUTPUT_SHORT (FILE, GEN_INT (0x9f17)); \
ASM_OUTPUT_INT (FILE, const0_rtx); \
}
@@ -560,16 +564,20 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
FNADDR is an RTX for the address of the function's pure code.
CXT is an RTX for the static chain value for the function. */
+/* This is separated out so register prefixes can be added by a target
+ if it requires them */
+#define VAX_ISTREAM_SYNC "movpsl -(sp)\n\tpushal 1(pc)\n\trei"
+
/* We copy the register-mask from the function's pure code
to the start of the trampoline. */
+
#define INITIALIZE_TRAMPOLINE(TRAMP, FNADDR, CXT) \
{ \
- emit_insn (gen_rtx (ASM_INPUT, VOIDmode, \
- "movpsl -(sp)\n\tpushal 1(pc)\n\trei")); \
- emit_move_insn (gen_rtx (MEM, HImode, TRAMP), \
- gen_rtx (MEM, HImode, FNADDR)); \
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 4)), CXT);\
- emit_move_insn (gen_rtx (MEM, SImode, plus_constant (TRAMP, 11)), \
+ emit_insn (gen_rtx_ASM_INPUT (VOIDmode, VAX_ISTREAM_SYNC)); \
+ emit_move_insn (gen_rtx_MEM (HImode, TRAMP), \
+ gen_rtx_MEM (HImode, FNADDR)); \
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 4)), CXT);\
+ emit_move_insn (gen_rtx_MEM (SImode, plus_constant (TRAMP, 11)), \
plus_constant (FNADDR, 2)); \
FINALIZE_TRAMPOLINE(TRAMP); \
}
@@ -586,7 +594,7 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
#define RETURN_ADDR_RTX(COUNT, FRAME) \
((COUNT == 0) \
- ? gen_rtx (MEM, Pmode, plus_constant (FRAME, RETURN_ADDRESS_OFFSET)) \
+ ? gen_rtx_MEM (Pmode, plus_constant (FRAME, RETURN_ADDRESS_OFFSET)) \
: (rtx) 0)
@@ -841,6 +849,10 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
jumps to the default label instead. */
#define CASE_DROPS_THROUGH
+/* Indicate that jump tables go in the text section. This is
+ necessary when compiling PIC code. */
+#define JUMP_TABLES_IN_TEXT_SECTION 1
+
/* Specify the tree operation to be used to convert reals to integers. */
#define IMPLICIT_FIX_EXPR FIX_ROUND_EXPR
@@ -1041,15 +1053,18 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
/* Output before read-only data. */
-#define TEXT_SECTION_ASM_OP ".text"
+#define TEXT_SECTION_ASM_OP "\t.text"
/* Output before writable data. */
-#define DATA_SECTION_ASM_OP ".data"
+#define DATA_SECTION_ASM_OP "\t.data"
/* How to refer to registers in assembler output.
- This sequence is indexed by compiler's hard-register-number (see above). */
+ This sequence is indexed by compiler's hard-register-number (see above).
+ The register names will be prefixed by REGISTER_PREFIX, if any. */
+#define REGISTER_PREFIX ""
+
#define REGISTER_NAMES \
{"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", \
"r9", "r10", "r11", "ap", "fp", "sp", "pc"}
@@ -1098,7 +1113,7 @@ gen_rtx (PLUS, Pmode, frame, GEN_INT (12))
/* The prefix to add to user-visible assembler symbols. */
-#define USER_LABEL_PREFIX "_"
+#define USER_LABEL_PREFIX ""
/* This is how to output an internal numbered label where
PREFIX is the class of label and NUM is the number within the class. */
@@ -1159,25 +1174,45 @@ do { char dstr[30]; \
It need not be very fast code. */
#define ASM_OUTPUT_REG_PUSH(FILE,REGNO) \
- fprintf (FILE, "\tpushl %s\n", reg_names[REGNO])
+ fprintf (FILE, "\tpushl %s%s\n", REGISTER_PREFIX, reg_names[REGNO])
/* This is how to output an insn to pop a register from the stack.
It need not be very fast code. */
#define ASM_OUTPUT_REG_POP(FILE,REGNO) \
- fprintf (FILE, "\tmovl (sp)+,%s\n", reg_names[REGNO])
+ fprintf (FILE, "\tmovl (%ssp)+,%s%s\n", REGISTER_PREFIX, REGISTER_PREFIX, \
+ reg_names[REGNO])
/* This is how to output an element of a case-vector that is absolute.
(The Vax does not use such vectors,
but we must define this macro anyway.) */
-#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
- fprintf (FILE, "\t.long L%d\n", VALUE)
+#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
+ do \
+ { \
+ char label[256]; \
+ ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE)); \
+ fprintf (FILE, "\t.long "); \
+ assemble_name (FILE, label); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
/* This is how to output an element of a case-vector that is relative. */
-#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
- fprintf (FILE, "\t.word L%d-L%d\n", VALUE, REL)
+#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
+ do \
+ { \
+ char label[256]; \
+ ASM_GENERATE_INTERNAL_LABEL (label, "L", (VALUE)); \
+ fprintf (FILE, "\t.word "); \
+ assemble_name (FILE, label); \
+ ASM_GENERATE_INTERNAL_LABEL (label, "L", (REL)); \
+ fprintf (FILE, "-"); \
+ assemble_name (FILE, label); \
+ fprintf (FILE, "\n"); \
+ } \
+ while (0)
/* This is how to output an assembler line
that says to advance the location counter
@@ -1236,7 +1271,7 @@ do { char dstr[30]; \
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
do { \
fprintf (FILE, "\t.word 0x0ffc\n"); \
- fprintf (FILE, "\taddl2 $%d,4(ap)\n", DELTA); \
+ fprintf (FILE, "\taddl2 $%d,4(%sap)\n", DELTA, REGISTER_PREFIX); \
fprintf (FILE, "\tjmp "); \
assemble_name (FILE, XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0)); \
fprintf (FILE, "+2\n"); \
@@ -1284,7 +1319,7 @@ VAX operand formatting codes:
((CODE) == '#')
#define PRINT_OPERAND(FILE, X, CODE) \
-{ extern char *rev_cond_name (); \
+{ extern const char *rev_cond_name (); \
if (CODE == '#') fputc (ASM_DOUBLE_CHAR, FILE); \
else if (CODE == 'C') \
fputs (rev_cond_name (X), FILE); \
@@ -1308,7 +1343,7 @@ VAX operand formatting codes:
else if (CODE == 'M' && GET_CODE (X) == CONST_INT) \
fprintf (FILE, "$%d", ~((1 << INTVAL (x)) - 1)); \
else if (GET_CODE (X) == REG) \
- fprintf (FILE, "%s", reg_names[REGNO (X)]); \
+ fprintf (FILE, "%s%s", REGISTER_PREFIX, reg_names[REGNO (X)]); \
else if (GET_CODE (X) == MEM) \
output_address (XEXP (X, 0)); \
else if (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == SFmode) \

View File

@ -1,21 +0,0 @@
$OpenBSD: patch-gcc_f_lang-specs_h,v 1.1.1.1 2010/05/27 08:36:21 espie Exp $
--- gcc/f/lang-specs.h.orig Tue May 25 10:28:17 2010
+++ gcc/f/lang-specs.h Tue May 25 10:33:40 2010
@@ -35,7 +35,7 @@ the Free Software Foundation, 59 Temple Place - Suite
Sun f77, at least) so you test `__unix' rather than `unix'.
-D_LANGUAGE_FORTRAN is used by some compilers like SGI and
might as well be in there. */
- {"cpp0 -lang-c %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %{$} %I\
+ {"cc1 -E -traditional-cpp %{nostdinc*} %{C} %{v} %{A*} %{I*} %{P} %{$} %I\
%{C:%{!E:%eGNU C does not support -C without using -E}}\
%{M} %{MM} %{MD:-MD %b.d} %{MMD:-MMD %b.d} %{MG}\
%{!no-gcc:-D__GNUC__=%v1 -D__GNUC_MINOR__=%v2}\
@@ -44,7 +44,7 @@ the Free Software Foundation, 59 Temple Place - Suite
%c %{Os:-D__OPTIMIZE_SIZE__} %{O*:%{!O0:-D__OPTIMIZE__}} -traditional\
%{ffast-math:-D__FAST_MATH__}\
%{g*} %{W*} %{w} %{pedantic*} %{H} %{d*} %C %{D*} %{U*} %{i*} %Z\
- %i %{!M:%{!MM:%{!E:%{!pipe:%g.i}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n",
+ %i %{!M:%{!MM:%{!E:%{!pipe:-o %g.i}}}}%{E:%W{o*}}%{M:%W{o*}}%{MM:%W{o*}} |\n",
"%{!M:%{!MM:%{!E:f771 %{!pipe:%g.i} %(f771) \
%{!Q:-quiet} -dumpbase %b.F %{d*} %{m*} %{a*}\
%{g*} %{O*} %{W*} %{w} %{pedantic*} \

View File

@ -1 +0,0 @@
gnu fortran 77 for 2.95.3.

View File

@ -1,5 +0,0 @@
@comment $OpenBSD: PFRAG.PIC,v 1.2 2010/05/29 17:00:47 phessler Exp $
lib/gcc-lib/${CONFIG}/${V}/fpic/
lib/gcc-lib/${CONFIG}/${V}/fpic/libgcc.a
lib/gcc-lib/${CONFIG}/${V}/fPIC/
lib/gcc-lib/${CONFIG}/${V}/fPIC/libgcc.a

View File

@ -1,14 +0,0 @@
@comment $OpenBSD: PLIST,v 1.2 2011/06/21 20:17:53 naddy Exp $
@bin bin/f77
@bin bin/g77
@info info/g77.info
lib/gcc-lib/
lib/gcc-lib/${CONFIG}/
lib/gcc-lib/${CONFIG}/${V}/
lib/gcc-lib/${CONFIG}/${V}/cpp0
@bin lib/gcc-lib/${CONFIG}/${V}/f771
lib/gcc-lib/${CONFIG}/${V}/libgcc.a
%%PIC%%
lib/gcc-lib/${CONFIG}/${V}/specs
@man man/man1/f77.1
@man man/man1/g77.1