aboutsummaryrefslogtreecommitdiffstats
path: root/lang
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2000-11-30 19:39:26 +0800
committerobrien <obrien@FreeBSD.org>2000-11-30 19:39:26 +0800
commit3e734a0c4cff689a3da326cd13ca4f6b2652a69b (patch)
tree21dff0a810c12ec4e38552504034427855dd3e31 /lang
parent3c33e5b4b4a927e63b33087d668742210520e7c7 (diff)
downloadfreebsd-ports-gnome-3e734a0c4cff689a3da326cd13ca4f6b2652a69b.tar.gz
freebsd-ports-gnome-3e734a0c4cff689a3da326cd13ca4f6b2652a69b.tar.zst
freebsd-ports-gnome-3e734a0c4cff689a3da326cd13ca4f6b2652a69b.zip
This should take this port back to the last version of it for EGCS-1.1.2.
The gcc-2.95.2 bits have been repo copied to ports/lang/gcc295. GCC 2.95.2 does not work for some people's code. GCC 3.0 will be even worse. So it looks like we'll have to keep a port for each version of GCC we've ever used.
Diffstat (limited to 'lang')
-rw-r--r--lang/egcs/Makefile106
-rw-r--r--lang/egcs/distinfo9
-rw-r--r--lang/egcs/files/alpha-freebsd-elf.h61
-rw-r--r--lang/egcs/files/alpha-freebsd.h122
-rw-r--r--lang/egcs/files/freebsd.h65
-rw-r--r--lang/egcs/files/patch-ad59
-rw-r--r--lang/egcs/files/patch-af136
-rw-r--r--lang/egcs/files/patch-ah67
-rw-r--r--lang/egcs/files/patch-aj20
-rw-r--r--lang/egcs/files/patch-ak47
-rw-r--r--lang/egcs/files/patch-al46
-rw-r--r--lang/egcs/files/patch-am19
-rw-r--r--lang/egcs/files/patch-an11
-rw-r--r--lang/egcs/files/patch-ap26
-rw-r--r--lang/egcs/files/patch-aq11
-rw-r--r--lang/egcs/files/patch-ba10
-rw-r--r--lang/egcs/files/patch-bb9
-rw-r--r--lang/egcs/files/patch-bc31
-rw-r--r--lang/egcs/files/patch-fa183
-rw-r--r--lang/egcs/files/patch-fb17
-rw-r--r--lang/egcs/files/patch-fc29
-rw-r--r--lang/egcs/pkg-comment2
-rw-r--r--lang/egcs/pkg-descr21
-rw-r--r--lang/egcs/pkg-plist68
24 files changed, 489 insertions, 686 deletions
diff --git a/lang/egcs/Makefile b/lang/egcs/Makefile
index ed89d55e4ee2..251b63a8935d 100644
--- a/lang/egcs/Makefile
+++ b/lang/egcs/Makefile
@@ -1,25 +1,25 @@
# ex:ts=8
# Ports collection makefile for: egcs
+# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
# $FreeBSD$
#
-PORTNAME= gcc
-PORTVERSION= 2.95.2
-CATEGORIES= lang java
-MASTER_SITES= ftp://egcs.cygnus.com/pub/egcs/releases/${DISTNAME}/ \
- ftp://ftp.ninemoons.com/pub/mirrors/egcs/releases/${DISTNAME}/ \
- ftp://ftp.iij.ad.jp/pub/egcs/releases/${DISTNAME}/ \
- ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/releases/${DISTNAME}/ \
- ftp://ftp.fu-berlin.de/unix/languages/egcs/releases/${DISTNAME}/
-MASTER_SITE_SUBDIR= gcc
-DISTFILES= gcc-core-${GCC_REV}${EXTRACT_SUFX} \
- gcc-g++-${GCC_REV}${EXTRACT_SUFX} \
- gcc-g77-${GCC_REV}${EXTRACT_SUFX} \
- gcc-java-${GCC_REV}${EXTRACT_SUFX} \
- gcc-objc-${GCC_REV}${EXTRACT_SUFX}
+PORTNAME= egcs
+PORTVERSION= 1.1.2
+CATEGORIES= lang
+MASTER_SITES= ftp://go.cygnus.com/pub/ftp.cygnus.com/egcs/releases/egcs-1.1.2/ \
+ ftp://ftp.crc.ca/pub/packages/egcs/egcs-1.1.2/ \
+ ftp://ftp.funet.fi/mirrors/ftp.cygnus.com/pub/egcs/releases/egcs-1.1.2/ \
+ ftp://egcs.cygnus.com/pub/egcs/releases/egcs-1.1.2/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/releases/egcs-1.1.2/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/releases/egcs-1.1.2/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/releases/egcs-1.1.2/ \
+ ftp://cambridge.cygnus.com/pub/egcs/releases/egcs-1.1.2/
+DISTFILES= egcs-core-1.1.2${EXTRACT_SUFX} egcs-g++-1.1.2${EXTRACT_SUFX} \
+ egcs-g77-1.1.2${EXTRACT_SUFX} egcs-objc-1.1.2${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
@@ -27,54 +27,47 @@ USE_BZIP2= yes
.include <bsd.port.pre.mk>
-GCC_REV= ${DISTNAME:S/gcc-//g}
-LIBSTDCPP_REV= 4
-
-.if ${OSVERSION} < 400000
-PLIST_SUB+= CURSES:="@comment "
-.else
-PLIST_SUB+= CURSES:=""
-.endif
+EGCS_REV= egcs-2.91.66
+LIBSTDCPP_REV= 2.9.0
.if ${PORTOBJFORMAT} == "elf"
.if ${MACHINE_ARCH} == "i386"
-PLIST_SUB+= ELF:=""
-.else
-PLIST_SUB+= ELF:="@comment "
+PLIST= ${WRKDIR}/PLIST
.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
.endif
-PLIST_SUB+= EGCS_REV=${GCC_REV} GNU_HOST=${CONFIGURE_TARGET}
+PLIST_SUB= EGCS_REV=${EGCS_REV} GNU_HOST=${CONFIGURE_TARGET}
GNU_CONFIGURE= yes
USE_GMAKE= yes
CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/include/g++
+ --with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/include/g++
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.endif
-.if defined(WANT_THREADS)
-# ?is this an ObjC only thing?
-CONFIGURE_ARGS+= --enable-threads=posix
-.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++295.1 g77.1 gcc295.1
+MAN1= cccp.1 g++.1 g77.1 gcc.1
pre-patch:
+ @${MV} ${WRKSRC}/gcc/config/i386/t-freebsd ${WRKSRC}/gcc/config/
@${MV} ${WRKSRC}/gcc/config/i386/freebsd.h ${WRKSRC}/gcc/config/i386/freebsd-aout.h
@${MV} ${WRKSRC}/gcc/config/i386/freebsd-elf.h ${WRKSRC}/gcc/config/i386/freebsd.h
+ @${CP} ${FILESDIR}/alpha-freebsd-elf.h ${WRKSRC}/gcc/config/alpha/freebsd-elf.h
+ @${CP} ${FILESDIR}/alpha-freebsd.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
- @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
- ${SED} -e "s:__FreeBSD__[0-9=]*:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \
- >${WRKSRC}/gcc/config/freebsd.h )
- @${CP} ${FILESDIR}/alpha-freebsd.h ${WRKSRC}/gcc/config/alpha/freebsd.h
@# Keep from running `autoconf' and `autoheader' since we modified
@# configure.in by patching it.
@touch ${WRKSRC}/gcc/configure
@touch ${WRKSRC}/gcc/cstamp-h.in
+ @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
+ ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \
+ >${WRKSRC}/gcc/config/freebsd.h )
+.if ${PORTOBJFORMAT} == "elf" && ${MACHINE_ARCH} == "i386"
+ @${SED} -e 's/^@comment ELF-only://' ${PKGDIR}/pkg-plist >${PLIST}
+.endif
pre-install:
${MKDIR} ${PREFIX}/info
@@ -83,33 +76,26 @@ post-install:
@${RM} -f ${PREFIX}/bin/c++
@${MV} -f ${PREFIX}/bin/c++filt ${PREFIX}/bin/g++filt
@(for prog in ${PREFIX}/bin/gcc ${PREFIX}/bin/g++ \
- ${PREFIX}/bin/g++filt ${PREFIX}/bin/g77 ${PREFIX}/bin/gcov \
- ${PREFIX}/bin/protoize ${PREFIX}/bin/unprotoize \
- ${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/cc1 \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/cc1obj \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/cc1plus \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/cpp \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/collect2 \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/f771 ; \
- do \
- strip $$prog ; \
- done)
- ${MV} ${PREFIX}/bin/gcc ${PREFIX}/bin/gcc295
- ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/g++295
- ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/g77
- ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/g++filt295
- ${RM} -f ${PREFIX}/bin/cpp
+ ${PREFIX}/bin/g++filt ${PREFIX}/bin/g77 ${PREFIX}/bin/gcov \
+ ${PREFIX}/bin/protoize ${PREFIX}/bin/unprotoize \
+ ${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1 \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1obj \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1plus \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cpp \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/collect2 \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/f771 ; \
+ do strip $$prog ; \
+ done)
+ ln -f ${PREFIX}/bin/gcc ${PREFIX}/bin/egcc
+ ln -f ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
${MV} ${PREFIX}/lib/libiberty.a \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}/libstdc++.a
- ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/gcc295.1
- ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/g++295.1
- ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/g77.1
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
+ ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
.endif
.for info in cpp g77 gcc
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
diff --git a/lang/egcs/distinfo b/lang/egcs/distinfo
index 4c92893d4f64..55665654d3f3 100644
--- a/lang/egcs/distinfo
+++ b/lang/egcs/distinfo
@@ -1,5 +1,4 @@
-MD5 (gcc-core-2.95.2.tar.bz2) = ec486554bc3491f1ebbb3b850c12650a
-MD5 (gcc-g++-2.95.2.tar.bz2) = eaabfb6b09d5f0ada4d7ce45db8b7e52
-MD5 (gcc-g77-2.95.2.tar.bz2) = 7e7b81a6ded50121b12fb78384b63a6e
-MD5 (gcc-java-2.95.2.tar.bz2) = cd19878014d3c60808af8fc8e976c6e5
-MD5 (gcc-objc-2.95.2.tar.bz2) = 44e0ba43e4c9b68e2ecaa7a50c1cddab
+MD5 (egcs-core-1.1.2.tar.bz2) = ad12b8eb6014a3f4fd3fe7f9bd6df01d
+MD5 (egcs-g++-1.1.2.tar.bz2) = defecf8027a98c18b0ecbff0ab970243
+MD5 (egcs-g77-1.1.2.tar.bz2) = d5e7e645896a549bdbdfebbb01bc3235
+MD5 (egcs-objc-1.1.2.tar.bz2) = 91e12ee2e12fa866aeec41174bcf1dfe
diff --git a/lang/egcs/files/alpha-freebsd-elf.h b/lang/egcs/files/alpha-freebsd-elf.h
new file mode 100644
index 000000000000..5edb57f05dd0
--- /dev/null
+++ b/lang/egcs/files/alpha-freebsd-elf.h
@@ -0,0 +1,61 @@
+/* Definitions of target machine for GNU compiler
+ for Alpha FreeBSD systems using ELF.
+ Copyright (C) 1998 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)");
+
+#undef SUB_CPP_PREDEFINES
+#define SUB_CPP_PREDEFINES "-D__ELF__"
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS \
+{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
+
+#define ELF_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1"
+
+#undef LINK_SPEC
+#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \
+ %{O*:-O3} %{!O*:-O1} \
+ %{assert*} \
+ %{shared:-shared} \
+ %{!shared: \
+ -dc -dp \
+ %{!nostdlib:%{!r*:%{!e*:-e _start}}} \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker %(elf_dynamic_linker)}} \
+ %{static:-static}}"
+
+#undef STARTFILE_SPEC
+#define STARTFILE_SPEC \
+ "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \
+ %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
+
+/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the
+ magical crtend.o file which provides part of the support for
+ getting C++ file-scope static object constructed before entering
+ `main', followed by a normal ELF "finalizer" file, `crtn.o'. */
+
+#undef ENDFILE_SPEC
+#define ENDFILE_SPEC \
+ "%{!shared:crtend.o%s} %{shared:crtendS.o%s}"
+
+/* We support #pragma. */
+#define HANDLE_SYSV_PRAGMA
diff --git a/lang/egcs/files/alpha-freebsd.h b/lang/egcs/files/alpha-freebsd.h
index 5ffada3584e4..e6f81cca503a 100644
--- a/lang/egcs/files/alpha-freebsd.h
+++ b/lang/egcs/files/alpha-freebsd.h
@@ -22,7 +22,9 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
This was taken from the NetBSD configuration, and modified
for FreeBSD/alpha by Hidetoshi Shimokawa <simokawa@FreeBSD.ORG> */
-/* $FreeBSD$ */
+
+/* Get generic FreeBSD definitions. */
+#include <freebsd.h>
#undef OBJECT_FORMAT_COFF
@@ -36,7 +38,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
/* This is the char to use for continuation (in case we need to turn
continuation back on). */
-#undef DBX_CONTIN_CHAR
#define DBX_CONTIN_CHAR '?'
#undef ASM_FINAL_SPEC
@@ -45,28 +46,20 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
XXX FreeBSD, by convention, shouldn't do __alpha, but lots of applications
expect it because that's what OSF/1 does. */
-#undef TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)");
-
#undef TARGET_DEFAULT
#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES \
- "-D__alpha__ -D__alpha -D__ELF__ -Acpu(alpha) -Amachine(alpha)" \
- CPP_FBSD_PREDEFINES
-
-#undef CPP_SPEC
-#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
+#define CPP_PREDEFINES "\
+-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
+CPP_FBSD_PREDEFINES \
+SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
-#undef WCHAR_UNSIGNED
-#define WCHAR_UNSIGNED 0
-
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 32
@@ -101,7 +94,6 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
fprintf (FILE, "\t.set noat\n"); \
}
-#undef ASM_OUTPUT_SOURCE_LINE
#define ASM_OUTPUT_SOURCE_LINE(STREAM, LINE) \
alpha_output_lineno (STREAM, LINE)
extern void alpha_output_lineno ();
@@ -113,18 +105,14 @@ extern void output_file_directive ();
.ident string is patterned after the ones produced by native svr4
C compilers. */
-#undef IDENT_ASM_OP
#define IDENT_ASM_OP ".ident"
#ifdef IDENTIFY_WITH_IDENT
-#undef ASM_IDENTIFY_GCC
#define ASM_IDENTIFY_GCC(FILE) /* nothing */
-#undef ASM_IDENTIFY_LANGUAGE
#define ASM_IDENTIFY_LANGUAGE(FILE) \
fprintf(FILE, "\t%s \"GCC (%s) %s\"\n", IDENT_ASM_OP, \
lang_identify(), version_string)
#else
-#undef ASM_FILE_END
#define ASM_FILE_END(FILE) \
do { \
fprintf ((FILE), "\t%s\t\"GCC: (GNU) %s\"\n", \
@@ -138,14 +126,12 @@ do { \
/* Output #ident as a .ident. */
-#undef ASM_OUTPUT_IDENT
#define ASM_OUTPUT_IDENT(FILE, NAME) \
fprintf (FILE, "\t%s\t\"%s\"\n", IDENT_ASM_OP, NAME);
/* This is how to allocate empty space in some section. The .zero
pseudo-op is used for this on most svr4 assemblers. */
-#undef SKIP_ASM_OP
#define SKIP_ASM_OP ".zero"
#undef ASM_OUTPUT_SKIP
@@ -160,7 +146,6 @@ do { \
make sure that the location counter for the .rodata section gets pro-
perly re-aligned prior to the actual beginning of the jump table. */
-#undef ALIGN_ASM_OP
#define ALIGN_ASM_OP ".align"
#ifndef ASM_OUTPUT_BEFORE_CASE_LABEL
@@ -179,7 +164,6 @@ do { \
library routines (e.g. .udiv) be explicitly declared as .globl
in each assembly file where they are referenced. */
-#undef ASM_OUTPUT_EXTERNAL_LIBCALL
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
ASM_GLOBALIZE_LABEL (FILE, XSTR (FUN, 0))
@@ -188,7 +172,6 @@ do { \
the linker seems to want the alignment of data objects
to depend on their types. We do exactly that here. */
-#undef COMMON_ASM_OP
#define COMMON_ASM_OP ".comm"
#undef ASM_OUTPUT_ALIGNED_COMMON
@@ -204,7 +187,6 @@ do { \
the linker seems to want the alignment of data objects
to depend on their types. We do exactly that here. */
-#undef LOCAL_ASM_OP
#define LOCAL_ASM_OP ".local"
#undef ASM_OUTPUT_ALIGNED_LOCAL
@@ -219,7 +201,6 @@ do { \
/* This is the pseudo-op used to generate a 64-bit word of data with a
specific value in some section. */
-#undef INT_ASM_OP
#define INT_ASM_OP ".quad"
/* This is the pseudo-op used to generate a contiguous sequence of byte
@@ -237,10 +218,8 @@ do { \
EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, SELECT_SECTION, and
SELECT_RTX_SECTION. We do both here just to be on the safe side. */
-#undef USE_CONST_SECTION
#define USE_CONST_SECTION 1
-#undef CONST_SECTION_ASM_OP
#define CONST_SECTION_ASM_OP ".section\t.rodata"
/* Define the pseudo-ops used to switch to the .ctors and .dtors sections.
@@ -258,9 +237,7 @@ do { \
errors unless the .ctors and .dtors sections are marked as writable
via the SHF_WRITE attribute.) */
-#undef CTORS_SECTION_ASM_OP
#define CTORS_SECTION_ASM_OP ".section\t.ctors,\"aw\""
-#undef DTORS_SECTION_ASM_OP
#define DTORS_SECTION_ASM_OP ".section\t.dtors,\"aw\""
/* On svr4, we *do* have support for the .init and .fini sections, and we
@@ -269,9 +246,7 @@ do { \
The definitions say how to change sections to the .init and .fini
sections. This is the same for all known svr4 assemblers. */
-#undef INIT_SECTION_ASM_OP
#define INIT_SECTION_ASM_OP ".section\t.init"
-#undef FINI_SECTION_ASM_OP
#define FINI_SECTION_ASM_OP ".section\t.fini"
/* A default list of other sections which we might be "in" at any given
@@ -297,7 +272,6 @@ do { \
extern void text_section ();
-#undef CONST_SECTION_FUNCTION
#define CONST_SECTION_FUNCTION \
void \
const_section () \
@@ -311,7 +285,6 @@ const_section () \
} \
}
-#undef CTORS_SECTION_FUNCTION
#define CTORS_SECTION_FUNCTION \
void \
ctors_section () \
@@ -323,7 +296,6 @@ ctors_section () \
} \
}
-#undef DTORS_SECTION_FUNCTION
#define DTORS_SECTION_FUNCTION \
void \
dtors_section () \
@@ -340,7 +312,6 @@ dtors_section () \
We make the section read-only and executable for a function decl,
read-only for a const data decl, and writable for a non-const data decl. */
-#undef ASM_OUTPUT_SECTION_NAME
#define ASM_OUTPUT_SECTION_NAME(FILE, DECL, NAME, RELOC) \
fprintf (FILE, ".section\t%s,\"%s\",@progbits\n", NAME, \
(DECL) && TREE_CODE (DECL) == FUNCTION_DECL ? "ax" : \
@@ -349,7 +320,6 @@ dtors_section () \
/* A C statement (sans semicolon) to output an element in the table of
global constructors. */
-#undef ASM_OUTPUT_CONSTRUCTOR
#define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \
do { \
ctors_section (); \
@@ -360,7 +330,6 @@ dtors_section () \
/* A C statement (sans semicolon) to output an element in the table of
global destructors. */
-#undef ASM_OUTPUT_DESTRUCTOR
#define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \
do { \
dtors_section (); \
@@ -374,7 +343,6 @@ dtors_section () \
or a constant of some sort. RELOC indicates whether forming
the initial value of DECL requires link-time relocations. */
-#undef SELECT_SECTION
#define SELECT_SECTION(DECL,RELOC) \
{ \
if (TREE_CODE (DECL) == STRING_CST) \
@@ -408,20 +376,17 @@ dtors_section () \
#undef SELECT_RTX_SECTION
#define SELECT_RTX_SECTION(MODE,RTX) const_section()
-/* Define the strings used for the .type, .size and .set directives.
+/* Define the strings used for the special svr4 .type and .size directives.
These strings generally do not vary from one system running svr4 to
another, but if a given system (e.g. m88k running svr) needs to use
different pseudo-op names for these, they may be overridden in the
file which includes this one. */
-#undef TYPE_ASM_OP
#define TYPE_ASM_OP ".type"
-#undef SIZE_ASM_OP
#define SIZE_ASM_OP ".size"
/* This is how we tell the assembler that two symbols have the same value. */
-#undef ASM_OUTPUT_DEF
#define ASM_OUTPUT_DEF(FILE,NAME1,NAME2) \
do { assemble_name(FILE, NAME1); \
fputs(" = ", FILE); \
@@ -442,7 +407,6 @@ dtors_section () \
the i386) don't know about that. Also, we don't use \v
since some versions of gas, such as 2.2 did not accept it. */
-#undef ESCAPES
#define ESCAPES \
"\1\1\1\1\1\1\1\1btn\1fr\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
@@ -465,83 +429,15 @@ dtors_section () \
should define this to zero.
*/
-#undef STRING_LIMIT
#define STRING_LIMIT ((unsigned) 256)
-#undef STRING_ASM_OP
#define STRING_ASM_OP ".string"
/*
* We always use gas here, so we don't worry about ECOFF assembler problems.
*/
#undef TARGET_GAS
-#define TARGET_GAS 1
+#define TARGET_GAS (1)
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
-
-#undef LINK_SPEC
-#define LINK_SPEC "-m elf64alpha \
- %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
- %{Wl,*:%*} \
- %{assert*} %{R*} %{rpath*} %{defsym*} \
- %{shared:-Bshareable %{h*} %{soname*}} \
- %{symbolic:-Bsymbolic} \
- %{!shared: \
- %{!static: \
- %{rdynamic:-export-dynamic} \
- %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \
- %{static:-Bstatic}}"
-
-#undef STARTFILE_SPEC
-#define STARTFILE_SPEC \
- "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \
- %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
-/* Provide a ENDFILE_SPEC appropriate for ELF. Here we tack on the
- magical crtend.o file which provides part of the support for
- getting C++ file-scope static object constructed before entering
- `main', followed by a normal ELF "finalizer" file, `crtn.o'. */
-
-#undef ENDFILE_SPEC
-#define ENDFILE_SPEC \
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s}"
-
-/* Implicit library calls should use memcpy, not bcopy, etc. */
-
-#define TARGET_MEM_FUNCTIONS
-
-/* Handle #pragma weak and #pragma pack. */
-
-#define HANDLE_SYSV_PRAGMA
-
-/*
- * Some imports from svr4.h in support of shared libraries.
- * Currently, we need the DECLARE_OBJECT_SIZE stuff.
- */
-
-/* This is how we tell the assembler that a symbol is weak. */
-
-#undef ASM_WEAKEN_LABEL
-#define ASM_WEAKEN_LABEL(FILE,NAME) \
- do { fputs ("\t.globl\t", FILE); assemble_name (FILE, NAME); \
- fputc ('\n', FILE); \
- fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
- fputc ('\n', FILE); } while (0)
-
-/* The following macro defines the format used to output the second
- operand of the .type assembler directive. Different svr4 assemblers
- expect various different forms for this operand. The one given here
- is just a default. You may need to override it in your machine-
- specific tm.h file (depending upon the particulars of your assembler). */
-
-#undef TYPE_OPERAND_FMT
-#define TYPE_OPERAND_FMT "@%s"
-
-/* Write the extra assembler code needed to declare a function's result.
- Most svr4 assemblers don't require any special declaration of the
- result value, but there are exceptions. */
-
-#ifndef ASM_DECLARE_RESULT
-#define ASM_DECLARE_RESULT(FILE, RESULT)
-#endif
diff --git a/lang/egcs/files/freebsd.h b/lang/egcs/files/freebsd.h
index 17511cd638f5..5719d55a4b9b 100644
--- a/lang/egcs/files/freebsd.h
+++ b/lang/egcs/files/freebsd.h
@@ -1,4 +1,3 @@
-/* $FreeBSD$ */
/* Base configuration file for all FreeBSD targets.
Copyright (C) 1999 Free Software Foundation, Inc.
@@ -26,83 +25,59 @@ Boston, MA 02111-1307, USA. */
egcs/gcc/config/i386/freebsd-elf.h version by David O'Brien */
-/* Don't assume anything about the header files. */
+/* Don't assume anything about the header files. */
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C
/* This defines which switch letters take arguments. On FreeBSD, most of
the normal cases (defined in gcc.c) apply, and we also have -h* and
-z* options (for the linker) (comming from svr4).
- We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
-
-#define FBSD_SWITCH_TAKES_ARG(CHAR) \
- (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
- || (CHAR) == 'h' \
- || (CHAR) == 'z' /* ignored by ld */ \
- || (CHAR) == 'R')
+ We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
#undef SWITCH_TAKES_ARG
-#define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR))
+#define SWITCH_TAKES_ARG(CHAR) \
+ (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
+ || (CHAR) == 'h' \
+ || (CHAR) == 'z' /* ignored by ld */ \
+ || (CHAR) == 'R')
-#define FBSD_WORD_SWITCH_TAKES_ARG(STR) \
+#undef WORD_SWITCH_TAKES_ARG
+#define WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
|| !strcmp (STR, "rpath") || !strcmp (STR, "rpath-link") \
|| !strcmp (STR, "soname") || !strcmp (STR, "defsym") \
|| !strcmp (STR, "assert") || !strcmp (STR, "dynamic-linker"))
-#undef WORD_SWITCH_TAKES_ARG
-#define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR))
-/* Place spaces around this string. We depend on string splicing to produce
- the final CPP_PREDEFINES value. */
#define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) "
-/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
- libc, depending on whether we're doing profiling or need threads support.
- (simular to the default, except no -lg, and no -p). */
-
-#undef LIB_SPEC
-#define LIB_SPEC "%{!shared: \
- %{!pg:%{!pthread:%{!kthread:-lc} \
- %{kthread:-lpthread -lc}} \
- %{pthread:-lc_r}} \
- %{pg:%{!pthread:%{!kthread:-lc_p} \
- %{kthread:-lpthread_p -lc_p}} \
- %{pthread:-lc_r_p}}}"
-
-#ifdef COMMENT_OUT /* only redefine LIBGCC_SPEC for our native GCC */
-/* Tell gcc to locate libgcc.a for us according to the -m rules. */
-#undef LIBGCC_SPEC
-#define LIBGCC_SPEC \
- "%{!shared:%{!pthread:%{!kthread:libgcc.a%s}}%{pthread|kthread:libgcc_r.a%s}}"
-#endif
-
/* Code generation parameters. */
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
- we want to retain compatibility with older gcc versions
+ we want to retain compatibility with older gcc versions.
(even though the svr4 ABI for the i386 says that records and unions are
- returned in memory). */
+ returned in memory) */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Ensure we the configuration knows our system correctly so we can link with
- libraries compiled with the native cc. */
+ libraries compiled with the native cc. */
#undef NO_DOLLAR_IN_LABEL
-/* Use more efficient ``thunks'' to implement C++ vtables. */
+/* Use more efficient ``thunks'' to implement C++ vtables. XXX note that
+ this setting is claimed to have a few bugs by the EGCS maintainers. They
+ believe the bugs will be worked out in EGCS 1.2. */
#undef DEFAULT_VTABLE_THUNKS
#define DEFAULT_VTABLE_THUNKS 1
+/* Our malloc can allocte pagesized blocks efficiently. The default size
+ of 4072 bytes is not optimal on the i386 nor the Alpha. */
+#undef OBSTACK_CHUNK_SIZE
+#define OBSTACK_CHUNK_SIZE (getpagesize())
+
/* Miscellaneous parameters. */
/* Tell libgcc2.c that FreeBSD targets support atexit(3). */
#define HAVE_ATEXIT
-
-#ifdef BOOTSTRAP_BOMBS_ON_CURRENT
-/* Our malloc can allocte pagesized blocks efficiently. The default size
- of 4072 bytes is not optimal on the i386 nor the Alpha. */
-#define OBSTACK_CHUNK_SIZE (getpagesize())
-#endif
diff --git a/lang/egcs/files/patch-ad b/lang/egcs/files/patch-ad
index f8a3b90fdb1a..bea070deb344 100644
--- a/lang/egcs/files/patch-ad
+++ b/lang/egcs/files/patch-ad
@@ -1,5 +1,5 @@
---- gcc/config/i386/freebsd-aout.h.orig Tue Jun 1 17:02:37 1999
-+++ gcc/config/i386/freebsd-aout.h Mon Jun 14 14:11:20 1999
+--- gcc/config/i386/freebsd-aout.h.orig Mon Mar 1 14:47:33 1999
++++ gcc/config/i386/freebsd-aout.h Sat Mar 20 00:27:02 1999
@@ -20,6 +20,10 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -8,31 +8,25 @@
+/* Get generic FreeBSD definitions. */
+#include <freebsd.h>
+
- /* This is tested by i386gas.h. */
- #define YES_UNDERSCORES
+ /* This goes away when the math-emulator is fixed */
+ #define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */
-@@ -32,12 +36,10 @@
+@@ -35,7 +39,7 @@
#include "i386/perform.h"
- /* This goes away when the math-emulator is fixed */
--#undef TARGET_DEFAULT
--#define TARGET_DEFAULT \
-- (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
-+#define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */
-
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Dunix -Di386 -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
+#define CPP_PREDEFINES "-Di386 -Acpu(i386) -Amachine(i386)" CPP_FBSD_PREDEFINES
/* Like the default, except no -lg. */
#define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}"
-@@ -87,14 +89,6 @@
+@@ -85,14 +89,6 @@
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
-
--/* Don't default to pcc-struct-return, because in FreeBSD we prefer the
-- superior nature of the older gcc way. */
+-/* 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
-
-/* Ensure we the configuration knows our system correctly so we can link with
@@ -41,7 +35,7 @@
/* i386 freebsd still uses old binutils that don't insert nops by default
when the .align directive demands to insert extra space in the text
-@@ -105,19 +99,18 @@
+@@ -103,19 +99,18 @@
/* Profiling routines, partially copied from i386/osfrose.h. */
@@ -64,7 +58,7 @@
fprintf (FILE, "\tcall mcount\n"); \
} \
}
-@@ -135,6 +128,7 @@
+@@ -133,6 +128,7 @@
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
@@ -72,7 +66,7 @@
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
-@@ -144,6 +138,12 @@
+@@ -142,6 +138,12 @@
#define TYPE_OPERAND_FMT "@%s"
@@ -85,9 +79,34 @@
/* Write the extra assembler code needed to declare a function's result.
Most svr4 assemblers don't require any special declaration of the
result value, but there are exceptions. */
-@@ -245,3 +245,5 @@
- #define STARTFILE_SPEC \
+@@ -244,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
-+
+
+-/* This is defined when gcc is compiled in the BSD-directory-tree, and must
+- * make up for the gap to all the stuff done in the GNU-makefiles.
+- */
+-
+-#ifdef FREEBSD_NATIVE
+-
+-#define INCLUDE_DEFAULTS { \
+- { "/usr/include", 0, 0, 0 }, \
+- { "/usr/include/g++", "G++", 1, 1 }, \
+- { 0, 0, 0, 0} \
+- }
+-
+-#undef MD_EXEC_PREFIX
+-#define MD_EXEC_PREFIX "/usr/libexec/"
+-
+-#undef STANDARD_STARTFILE_PREFIX
+-#define STANDARD_STARTFILE_PREFIX "/usr/lib"
+-
+-#if 0 /* This is very wrong!!! */
+-#define DEFAULT_TARGET_MACHINE "i386-unknown-freebsd_1.0"
+-#define GPLUSPLUS_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
+-#define TOOL_INCLUDE_DIR "/usr/local/i386-unknown-freebsd_1.0/include"
+-#define GCC_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include"
+-#endif
+-
+-#endif /* FREEBSD_NATIVE */
+#define MD_STARTFILE_PREFIX "/usr/lib/aout/"
diff --git a/lang/egcs/files/patch-af b/lang/egcs/files/patch-af
index 533a35a95584..c1f1ba0e855f 100644
--- a/lang/egcs/files/patch-af
+++ b/lang/egcs/files/patch-af
@@ -1,83 +1,85 @@
---- gcc/config/i386/freebsd.h.orig Thu Jun 17 05:33:32 1999
-+++ gcc/config/i386/freebsd.h Sat Jul 24 17:59:06 1999
-@@ -135,6 +135,10 @@
+--- gcc/config/i386/freebsd.h.orig Mon Mar 1 14:47:32 1999
++++ gcc/config/i386/freebsd.h Sun Mar 21 16:58:39 1999
+@@ -21,19 +21,13 @@
+ the Free Software Foundation, 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
++
++/* Get generic FreeBSD definitions. */
++#include <freebsd.h>
++
+ #undef TARGET_VERSION
+ #define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD/ELF)");
+
+-/* The svr4 ABI for the i386 says that records and unions are returned
+- in memory. */
+-/* On FreeBSD, we do not. */
+-#undef DEFAULT_PCC_STRUCT_RETURN
+-#define DEFAULT_PCC_STRUCT_RETURN 0
+-
+-/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using
+- libraries compiled with the native cc, so undef it. */
+-#undef NO_DOLLAR_IN_LABEL
+-
+ /* 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. */
+@@ -113,22 +107,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
-+/* Don't use EGCS's normal profiling code -- we have our own fine-grained
-+ basic block profiling. */
+-/* Output assembler code to FILE to increment profiler label # LABELNO
+- for profiling a function entry. */
++/* Tell final.c that we don't need a label passed to mcount. */
+#define NO_PROFILE_DATA
-+
- /* Tell final.c that we don't need a label passed to mcount. */
#undef FUNCTION_PROFILER
-@@ -162,22 +166,30 @@
+ #define FUNCTION_PROFILER(FILE, LABELNO) \
+ { \
+ if (flag_pic) \
+ { \
+- fprintf (FILE, "\tleal %sP%d@GOTOFF(%%ebx),%%edx\n", \
+- LPREFIX, (LABELNO)); \
+- fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \
++ fprintf (FILE, "\tcall *.mcount@GOT(%%ebx)\n"); \
+ } \
+ else \
+ { \
+- fprintf (FILE, "\tmovl $%sP%d,%%edx\n", LPREFIX, (LABELNO)); \
+- fprintf (FILE, "\tcall mcount\n"); \
++ fprintf (FILE, "\tcall .mcount\n"); \
+ } \
+ }
+
+@@ -145,26 +136,16 @@
#define WCHAR_TYPE_SIZE BITS_PER_WORD
#undef CPP_PREDEFINES
-#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)"
-+#define CPP_PREDEFINES "-Di386 -Acpu(i386) -Amachine(i386)" CPP_FBSD_PREDEFINES
++#define CPP_PREDEFINES "-Di386 -D__ELF__ -Acpu(i386) -Amachine(i386)" CPP_FBSD_PREDEFINES
#undef CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}"
-+#if TARGET_CPU_DEFAULT == 2
-+#define CPP_SPEC "\
-+ %{!maout: -D__ELF__} \
-+ %{munderscores: -D__UNDERSCORES__} \
-+ %{maout: %{!mno-underscores: -D__UNDERSCORES__}} \
-+ %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{!m386:-D__i486__}"
-+#else
-+#define CPP_SPEC "\
-+ %{!maout: -D__ELF__} \
-+ %{munderscores: -D__UNDERSCORES__} \
-+ %{maout: %{!mno-underscores: -D__UNDERSCORES__}} \
-+ %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{m486:-D__i486__}"
-+#endif
-+
-+#undef CC1_SPEC
-+#define CC1_SPEC "\
-+ %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
-+ %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}"
-
--/* This defines which switch letters take arguments. On FreeBSD, most of
-- the normal cases (defined in gcc.c) apply, and we also have -h* and
-- -z* options (for the linker) (comming from svr4).
-- We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */
--
--#undef SWITCH_TAKES_ARG
--#define SWITCH_TAKES_ARG(CHAR) \
-- (DEFAULT_SWITCH_TAKES_ARG (CHAR) \
-- || (CHAR) == 'h' \
-- || (CHAR) == 'z' \
-- || (CHAR) == 'R')
-+#undef ASM_SPEC
-+#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++#define CPP_SPEC \
++ "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE} %{m486:-D__i486__}"
++ /* %{pthread:-D_REENTRANT} */
- /* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
- the magical crtbegin.o file (see crtstuff.c) which provides part
-@@ -186,11 +198,11 @@
-
- #undef STARTFILE_SPEC
- #define STARTFILE_SPEC \
+ #undef LIB_SPEC
+-#if 1
+-/* We no longer link with libc_p.a or libg.a by default. If you
+- * want to profile or debug the C library, please add
+- * -lc_p or -ggdb to LDFLAGS at the link time, respectively.
+- */
+-#define LIB_SPEC \
+- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
+- %{!ggdb:-lc} %{ggdb:-lg}}"
+-#else
+ #define LIB_SPEC \
- "%{!shared: \
-- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
-- %{!p:%{profile:gcrt1.o%s} \
-- %{!profile:crt1.o%s}}}} \
-- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-+ "%{maout: %{shared:c++rt0.o%s} \
-+ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}} \
-+ %{!maout: %{!shared: \
-+ %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \
-+ crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"
-
- /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
- the magical crtend.o file (see crtstuff.c) which provides part of
-@@ -200,7 +212,7 @@
-
- #undef ENDFILE_SPEC
- #define ENDFILE_SPEC \
-- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-+ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
+- %{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} \
+- %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}"
+-#endif
++ "%{!shared:%{!pg:%{!pthread:%{!kthread:-lc}%{kthread:-lpthread -lc}}%{pthread:-lc_r}}%{pg:%{!pthread:%{!kthread:-lc_p}%{kthread:-lpthread_p -lc_p}}%{pthread:-lc_r_p}}}"
- /* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
- libc, depending on whether we're doing profiling or need threads support.
+ /* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
+ for the special GCC options -static and -shared, which allow us to
diff --git a/lang/egcs/files/patch-ah b/lang/egcs/files/patch-ah
new file mode 100644
index 000000000000..fad69668db7b
--- /dev/null
+++ b/lang/egcs/files/patch-ah
@@ -0,0 +1,67 @@
+--- gcc/config/i386/i386.c.orig Sat Sep 5 22:52:05 1998
++++ gcc/config/i386/i386.c Wed Oct 7 17:06:48 1998
+@@ -51,6 +51,11 @@
+ #define CHECK_STACK_LIMIT -1
+ #endif
+
++#define PIC_REG_USED \
++ (flag_pic && (current_function_uses_pic_offset_table \
++ || current_function_uses_const_pool \
++ || profile_flag || profile_block_flag))
++
+ /* Type of an operand for ix86_{binary,unary}_operator_ok */
+ enum reg_mem
+ {
+@@ -1938,13 +1943,11 @@
+ char *name ATTRIBUTE_UNUSED;
+ {
+ rtx xops[2];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
+ xops[0] = pic_offset_table_rtx;
+ xops[1] = stack_pointer_rtx;
+
+ /* Deep branch prediction favors having a return for every call. */
+- if (pic_reg_used && TARGET_DEEP_BRANCH_PREDICTION)
++ if (PIC_REG_USED && TARGET_DEEP_BRANCH_PREDICTION)
+ {
+ tree prologue_node;
+
+@@ -2074,8 +2077,7 @@
+ register int regno;
+ int limit;
+ rtx xops[4];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
++ int pic_reg_used = PIC_REG_USED;
+ long tsize = get_frame_size ();
+ rtx insn;
+ int cfa_offset = INCOMING_FRAME_SP_OFFSET, cfa_store_offset = cfa_offset;
+@@ -2245,8 +2247,6 @@
+ int nregs = 0;
+ int reglimit = (frame_pointer_needed
+ ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM);
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
+
+ #ifdef NON_SAVING_SETJMP
+ if (NON_SAVING_SETJMP && current_function_calls_setjmp)
+@@ -2258,7 +2258,7 @@
+
+ for (regno = reglimit - 1; regno >= 0; regno--)
+ if ((regs_ever_live[regno] && ! call_used_regs[regno])
+- || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used))
++ || (regno == PIC_OFFSET_TABLE_REGNUM && PIC_REG_USED))
+ nregs++;
+
+ return nregs == 0 || ! frame_pointer_needed;
+@@ -2292,8 +2292,7 @@
+ register int nregs, limit;
+ int offset;
+ rtx xops[3];
+- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
+- || current_function_uses_const_pool);
++ int pic_reg_used = PIC_REG_USED;
+ long tsize = get_frame_size ();
+
+ /* Compute the number of registers to pop */
diff --git a/lang/egcs/files/patch-aj b/lang/egcs/files/patch-aj
index 4666dfa4e86f..035627fc0908 100644
--- a/lang/egcs/files/patch-aj
+++ b/lang/egcs/files/patch-aj
@@ -1,14 +1,14 @@
---- config.guess.orig Sun May 30 09:04:33 1999
-+++ config.guess Mon Jun 21 00:55:29 1999
-@@ -521,9 +521,9 @@
+--- config.guess.orig Mon Mar 1 14:37:59 1999
++++ config.guess Sat Mar 13 19:28:44 1999
+@@ -478,9 +478,9 @@
exit 0 ;;
*:FreeBSD:*:*)
- if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then
-- echo ${UNAME_MACHINE}-unknown-freebsdelf
-+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
- else
-- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
-+ echo ${UNAME_MACHINE}-unknown-freebsdaout`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
- fi
+ if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then
+- echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+- else
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
++ else
++ echo ${UNAME_MACHINE}-unknown-freebsdaout`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ fi
exit 0 ;;
*:NetBSD:*:*)
diff --git a/lang/egcs/files/patch-ak b/lang/egcs/files/patch-ak
index c5585f836a0e..2e54beea1a61 100644
--- a/lang/egcs/files/patch-ak
+++ b/lang/egcs/files/patch-ak
@@ -1,11 +1,11 @@
---- gcc/configure.orig Tue Jun 8 02:19:23 1999
-+++ gcc/configure Mon Jun 14 23:54:18 1999
-@@ -3058,6 +3058,15 @@
+--- gcc/configure.orig Sun Mar 14 02:59:02 1999
++++ gcc/configure Sat Mar 20 00:40:05 1999
+@@ -2395,6 +2395,15 @@
thread_file='posix'
fi
;;
+ alpha*-*-freebsd*)
-+ tm_file="${tm_file} freebsd.h alpha/freebsd.h"
++ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h"
+ xm_file="${xm_file} xm-freebsd.h"
+ target_cpu_default="MASK_GAS"
+ tmake_file="t-freebsd alpha/t-crtbe"
@@ -14,29 +14,36 @@
+ gas=yes gnu_ld=yes
+ ;;
alpha*-*-netbsd*)
- tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
- target_cpu_default="MASK_GAS"
-@@ -3536,17 +3545,17 @@
+ tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsdl-elf.h"
+ xm_file="xm-netbsd.h ${xm_file}"
+@@ -2851,21 +2860,21 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
- i[34567]86-*-freebsdelf*)
-- tm_file="i386/i386.h i386/att.h svr4.h i386/freebsd-elf.h i386/perform.h"
-+ i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd[12] | i[34567]86-*-freebsdaout*)
+- tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h"
++ i[34567]86-*-freebsdaout*)
+ tm_file=i386/freebsd-aout.h
+ # On FreeBSD, the headers are already ok, except for math.h.
+ fixincludes=fixinc.wrap
+- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
+- tmake_file=i386/t-freebsd
+- gas=yes
+- gnu_ld=yes
+- stabs=yes
+ tmake_file=t-freebsd
-+ ;;
-+ i[34567]86-*-freebsd[3-9].* | i[34567]86-*-freebsd[3-9] | i[34567]86-*-freebsd* | i[34567]86-*-freebsdelf*)
-+ tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/freebsd.h i386/perform.h"
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
- tmake_file=t-freebsd
- gas=yes
- gnu_ld=yes
- stabs=yes
-- ;;
-- i[34567]86-*-freebsd*)
+ ;;
+ i[34567]86-*-freebsd*)
- tm_file=i386/freebsd.h
-- tmake_file=t-freebsd
++ tm_file="i386/i386.h i386/att.h linux.h i386/freebsd.h i386/perform.h"
+ # On FreeBSD, the headers are already ok, except for math.h.
+ fixincludes=fixinc.wrap
+- tmake_file=i386/t-freebsd
++ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
++ tmake_file=t-freebsd
++ gas=yes
++ gnu_ld=yes
++ stabs=yes
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/egcs/files/patch-al b/lang/egcs/files/patch-al
index de95c4439b95..c8a195127ed0 100644
--- a/lang/egcs/files/patch-al
+++ b/lang/egcs/files/patch-al
@@ -1,11 +1,11 @@
---- gcc/configure.in.orig Mon Jun 7 14:37:24 1999
-+++ gcc/configure.in Mon Jun 14 19:25:53 1999
-@@ -625,6 +625,15 @@
+--- gcc/configure.in.orig Sun Mar 7 16:22:22 1999
++++ gcc/configure.in Sat Mar 20 00:40:58 1999
+@@ -416,6 +416,15 @@
thread_file='posix'
fi
;;
+ alpha*-*-freebsd*)
-+ tm_file="${tm_file} freebsd.h alpha/freebsd.h"
++ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h"
+ xm_file="${xm_file} xm-freebsd.h"
+ target_cpu_default="MASK_GAS"
+ tmake_file="t-freebsd alpha/t-crtbe"
@@ -14,34 +14,36 @@
+ gas=yes gnu_ld=yes
+ ;;
alpha*-*-netbsd*)
- tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
- target_cpu_default="MASK_GAS"
-@@ -1136,20 +1145,20 @@
+ tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsdl-elf.h"
+ xm_file="xm-netbsd.h ${xm_file}"
+@@ -872,21 +881,21 @@
+ # Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
- changequote(,)dnl
-- i[34567]86-*-freebsdelf*)
-++ i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd[12] | i[34567]86-*-freebsdaout*)
- changequote([,])dnl
-- tm_file="i386/i386.h i386/att.h svr4.h i386/freebsd-elf.h i386/perform.h"
+- i[[34567]]86-*-freebsdelf*)
+- tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h"
++ i[[34567]]86-*-freebsdaout*)
++ tm_file=i386/freebsd-aout.h
+ # On FreeBSD, the headers are already ok, except for math.h.
+ fixincludes=fixinc.wrap
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-+ tm_file=i386/freebsd.h
- tmake_file=t-freebsd
+- tmake_file=i386/t-freebsd
- gas=yes
- gnu_ld=yes
- stabs=yes
++ tmake_file=t-freebsd
;;
- changequote(,)dnl
-- i[34567]86-*-freebsd*)
-+ i[34567]86-*-freebsd[3-9].* | i[34567]86-*-freebsd[3-9] | i[34567]86-*-freebsd* | i[34567]86-*-freebsdelf* | i[34567]86-*-freebsd*)
- changequote([,])dnl
+ i[[34567]]86-*-freebsd*)
- tm_file=i386/freebsd.h
-+ tm_file="i386/i386.h i386/att.h svr4.h freebsd.h i386/freebsd.h i386/perform.h"
++ tm_file="i386/i386.h i386/att.h linux.h i386/freebsd.h i386/perform.h"
+ # On FreeBSD, the headers are already ok, except for math.h.
+ fixincludes=fixinc.wrap
+- tmake_file=i386/t-freebsd
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
- tmake_file=t-freebsd
++ tmake_file=t-freebsd
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
;;
- changequote(,)dnl
- i[34567]86-*-netbsd*)
+ i[[34567]]86-*-netbsd*)
+ tm_file=i386/netbsd.h
diff --git a/lang/egcs/files/patch-am b/lang/egcs/files/patch-am
index c3c4553367c9..f69f6ffa7798 100644
--- a/lang/egcs/files/patch-am
+++ b/lang/egcs/files/patch-am
@@ -1,7 +1,12 @@
---- gcc/config/t-freebsd.orig Tue Jun 1 17:02:39 1999
-+++ gcc/config/t-freebsd Tue Jun 22 11:05:25 1999
-@@ -1,4 +1,2 @@
- # Don't run fixproto
- STMP_FIXPROTO =
--# Use only native include files
--USER_H = $(EXTRA_HEADERS) $(LANG_EXTRA_HEADERS)
+--- libstdc++/stl/stl_rope.h.orig Fri Feb 20 03:13:44 1998
++++ libstdc++/stl/stl_rope.h Sun Feb 28 03:50:24 1999
+@@ -702,7 +702,8 @@
+ __rope_iterator_base<charT,Alloc>(r.tree_ptr, pos) {}
+ __rope_const_iterator& operator= (const __rope_const_iterator & x) {
+ if (0 != x.buf_ptr) {
+- *this = x;
++ *(static_cast<__rope_iterator_base<charT,Alloc>*>(this)) = x;
++ // bugfix by Kevin Atkinosn (kevina@clark.net) was *this = x;
+ } else {
+ current_pos = x.current_pos;
+ root = x.root;
diff --git a/lang/egcs/files/patch-an b/lang/egcs/files/patch-an
deleted file mode 100644
index 36378bfeee3f..000000000000
--- a/lang/egcs/files/patch-an
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcc/fixinc/mkfixinc.sh.orig Sat May 15 11:21:35 1999
-+++ gcc/fixinc/mkfixinc.sh Thu Jun 10 19:49:25 1999
-@@ -40,7 +40,7 @@
-
- *-*-netbsd* | \
- alpha*-*-linux-gnulibc1* | \
-- i[34567]86-*-freebsd* | \
-+ *-*-freebsd* | \
- i[34567]86-*-netbsd* | i[34567]86-*-openbsd* | \
- i[34567]86-*-solaris2* | \
- sparcv9-*-solaris2* | \
diff --git a/lang/egcs/files/patch-ap b/lang/egcs/files/patch-ap
deleted file mode 100644
index f7a486910063..000000000000
--- a/lang/egcs/files/patch-ap
+++ /dev/null
@@ -1,26 +0,0 @@
---- gcc/ginclude/stddef.h.orig Wed Dec 16 13:19:25 1998
-+++ gcc/ginclude/stddef.h Tue Jun 22 11:05:25 1999
-@@ -109,7 +109,6 @@
- #define _T_PTRDIFF
- #define __PTRDIFF_T
- #define _PTRDIFF_T_
--#define _BSD_PTRDIFF_T_
- #define ___int_ptrdiff_t_h
- #define _GCC_PTRDIFF_T
- #ifndef __PTRDIFF_TYPE__
-@@ -156,7 +155,6 @@
- #define _T_SIZE
- #define __SIZE_T
- #define _SIZE_T_
--#define _BSD_SIZE_T_
- #define _SIZE_T_DEFINED_
- #define _SIZE_T_DEFINED
- #define ___int_size_t_h
-@@ -217,7 +215,6 @@
- #define _T_WCHAR
- #define __WCHAR_T
- #define _WCHAR_T_
--#define _BSD_WCHAR_T_
- #define _WCHAR_T_DEFINED_
- #define _WCHAR_T_DEFINED
- #define _WCHAR_T_H
diff --git a/lang/egcs/files/patch-aq b/lang/egcs/files/patch-aq
deleted file mode 100644
index 32f0788b5379..000000000000
--- a/lang/egcs/files/patch-aq
+++ /dev/null
@@ -1,11 +0,0 @@
---- gcc/ginclude/stdarg.h.orig Fri May 7 18:52:35 1999
-+++ gcc/ginclude/stdarg.h Wed Jun 23 16:38:00 1999
-@@ -67,7 +67,7 @@
-
- #ifndef __GNUC_VA_LIST
- #define __GNUC_VA_LIST
--#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__)
-+#if defined(__svr4__) || defined(_AIX) || defined(_M_UNIX) || defined(__NetBSD__) || defined(__FreeBSD__)
- typedef char *__gnuc_va_list;
- #else
- typedef void *__gnuc_va_list;
diff --git a/lang/egcs/files/patch-ba b/lang/egcs/files/patch-ba
new file mode 100644
index 000000000000..9ad05014b6e6
--- /dev/null
+++ b/lang/egcs/files/patch-ba
@@ -0,0 +1,10 @@
+--- libstdc++/configure.in.orig Thu Feb 18 11:40:03 1999
++++ libstdc++/configure.in Thu Feb 18 11:44:01 1999
+@@ -54,6 +54,7 @@
+ *-*-hpux*) frags="${frags} hpux.ml" ;;
+ *-*-irix[56]*) frags="${frags} irix5.ml" ;;
+ *-*-linux*aout*) ;;
++ *-*-freebsd*) frags="${frags} freebsd.ml" ;;
+ *-*-linux*) frags="${frags} linux.ml" ;;
+ *-*-sysv4*) frags="${frags} elf.ml" ;;
+ *-*-solaris*) frags="${frags} sol2shm.ml" ;;
diff --git a/lang/egcs/files/patch-bb b/lang/egcs/files/patch-bb
new file mode 100644
index 000000000000..193a278d3c44
--- /dev/null
+++ b/lang/egcs/files/patch-bb
@@ -0,0 +1,9 @@
+--- libstdc++/config/freebsd.ml.orig Thu Feb 18 11:44:11 1999
++++ libstdc++/config/freebsd.ml Thu Feb 18 11:44:17 1999
+@@ -0,0 +1,6 @@
++# Elf with shared libm, so we can link it into the shared libstdc++.
++
++LIBS = $(ARLIB) $(SHLIB) $(SHLINK) mshlink
++SHFLAGS = -Wl,-soname,$(MSHLINK)
++SHDEPS = -lm
++DEPLIBS = ../$(SHLIB)
diff --git a/lang/egcs/files/patch-bc b/lang/egcs/files/patch-bc
index c3159ca2788c..c6faefae79d6 100644
--- a/lang/egcs/files/patch-bc
+++ b/lang/egcs/files/patch-bc
@@ -1,16 +1,16 @@
---- libstdc++/Makefile.in.orig Sat Jul 17 22:50:47 1999
-+++ libstdc++/Makefile.in Tue Jul 20 07:56:00 1999
+--- libstdc++/Makefile.in.orig Sat Jul 11 19:20:49 1998
++++ libstdc++/Makefile.in Sun Mar 14 21:48:39 1999
@@ -14,7 +14,7 @@
# along with this library; see the file COPYING. If not, write to the Free
# Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
--VERSION = 2.10.0
-+VERSION = 4
- INTERFACE = 3
+-VERSION = 2.9.0
++VERSION = 3
- gxx_include_dir=${includedir}/g++
-@@ -111,7 +111,8 @@
- $(LN_S) $(SHLIB) $(SHLINK) || cp $(ARLIB) $(ARLINK)
+ OBJS = cstringi.o stdexcepti.o cstdlibi.o cmathi.o stlinst.o
+ SUBLIBS = $(STAMP)-string $(STAMP)-complx
+@@ -98,7 +98,8 @@
+ ln -f -s $(SHLIB) $(SHLINK)
mshlink:
- @$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)"
@@ -19,16 +19,15 @@
$(IO_DIR)/iostream.list: force
cd $(IO_DIR) ; $(MAKE) $(FLAGS_TO_PASS) iostream.list
-@@ -336,11 +337,7 @@
- || cp $${RELINSTALLDIR}$(ARLIB) $${INSTALLLINKDIR}$(MULTISUBDIR)/$$FILE ; \
- fi; \
+@@ -281,10 +282,7 @@
+ if [ $$FILE = $(SHLINK) ] ; then \
+ ln -f -s $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
elif [ $$FILE = mshlink ]; then \
- for FILE in $(MSHLINK) ; do \
- rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
-- $(LN_S) $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE \
-- || cp $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
+- ln -f -s $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
- done; \
+ true; \
- elif [ $$FILE = marlink ]; then \
- for FILE in $(MARLINK) ; do \
- rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
+ elif [ $$FILE = $(SHLIB) ]; then \
+ $(INSTALL_PROGRAM) $$FILE $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
+ : On the HP, shared libraries must be mode 555. ;\
diff --git a/lang/egcs/files/patch-fa b/lang/egcs/files/patch-fa
index b4cc8fd420bd..7f5e0e611ae8 100644
--- a/lang/egcs/files/patch-fa
+++ b/lang/egcs/files/patch-fa
@@ -1,15 +1,15 @@
---- gcc/c-common.c.orig Tue Sep 7 01:11:16 1999
-+++ gcc/c-common.c Sun Nov 26 15:35:38 2000
-@@ -64,7 +64,7 @@
+--- gcc/c-common.c.orig Mon Feb 15 16:40:05 1999
++++ gcc/c-common.c Tue Mar 30 03:35:22 1999
+@@ -61,7 +61,7 @@
int, int, int));
static void init_attributes PROTO((void));
static void record_function_format PROTO((tree, tree, enum format_type,
- int, int));
+ int, int, int));
static void record_international_format PROTO((tree, tree, int));
- static tree c_find_base_decl PROTO((tree));
- static int default_valid_lang_attribute PROTO ((tree, tree, tree, tree));
-@@ -715,6 +715,7 @@
+
+ /* Keep a stack of if statements. We record the number of compound
+@@ -669,6 +669,7 @@
= TREE_VALUE (TREE_CHAIN (TREE_CHAIN (args)));
int format_num;
int first_arg_num;
@@ -17,7 +17,7 @@
enum format_type format_type;
tree argument;
int arg_num;
-@@ -728,7 +729,7 @@
+@@ -682,7 +683,7 @@
if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
{
@@ -26,8 +26,8 @@
continue;
}
else
-@@ -736,12 +737,26 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
+ {
@@ -52,8 +52,8 @@
+ }
else
{
- warning ("`%s' is an unrecognized format function type", p);
-@@ -812,7 +827,8 @@
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
record_function_format (DECL_NAME (decl),
DECL_ASSEMBLER_NAME (decl),
@@ -63,7 +63,7 @@
break;
}
-@@ -1090,6 +1106,11 @@
+@@ -1010,6 +1026,11 @@
} format_char_info;
static format_char_info print_char_table[] = {
@@ -75,7 +75,7 @@
{ "di", 0, T_I, T_I, T_I, T_L, T_LL, T_LL, T_ST, "-wp0 +" },
{ "oxX", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0#" },
{ "u", 0, T_UI, T_UI, T_UI, T_UL, T_ULL, T_ULL, T_ST, "-wp0" },
-@@ -1150,6 +1171,7 @@
+@@ -1070,6 +1091,7 @@
tree name; /* identifier such as "printf" */
tree assembler_name; /* optional mangled identifier (for C++) */
enum format_type format_type; /* type of format (printf, scanf, etc.) */
@@ -83,7 +83,7 @@
int format_num; /* number of format argument */
int first_arg_num; /* number of first arg (zero for varargs) */
} function_format_info;
-@@ -1182,25 +1204,25 @@
+@@ -1102,25 +1124,25 @@
init_function_format_info ()
{
record_function_format (get_identifier ("printf"), NULL_TREE,
@@ -119,7 +119,7 @@
record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
-@@ -1217,11 +1239,12 @@
+@@ -1137,11 +1159,12 @@
(e.g. for varargs such as vfprintf). */
static void
@@ -133,7 +133,7 @@
int format_num;
int first_arg_num;
{
-@@ -1245,6 +1268,7 @@
+@@ -1165,6 +1188,7 @@
}
info->format_type = format_type;
@@ -141,150 +141,17 @@
info->format_num = format_num;
info->first_arg_num = first_arg_num;
}
-@@ -1292,6 +1316,21 @@
- warning ("too few arguments for format");
- }
-
-+static function_format_info *
-+find_function_format (name, assembler_name)
-+ tree name;
-+ tree assembler_name;
-+{
-+ function_format_info *info;
-+
-+ for (info = function_format_list; info; info = info->next)
-+ if (info->assembler_name
-+ ? (info->assembler_name == assembler_name)
-+ : (info->name == name))
-+ return info;
-+ return 0;
-+}
-+
- /* Check the argument list of a call to printf, scanf, etc.
- NAME is the function identifier.
- ASSEMBLER_NAME is the function's assembler identifier.
-@@ -1307,17 +1346,10 @@
- function_format_info *info;
-
- /* See if this function is a format function. */
-- for (info = function_format_list; info; info = info->next)
-- {
-- if (info->assembler_name
-- ? (info->assembler_name == assembler_name)
-- : (info->name == name))
-- {
-- /* Yup; check it. */
-- check_format_info (info, params);
-- break;
-- }
-- }
-+ info = find_function_format (name, assembler_name);
-+
-+ if (info)
-+ check_format_info (info, params);
- }
-
- /* Check the argument list of a call to printf, scanf, etc.
-@@ -1361,6 +1393,7 @@
- return;
+@@ -1314,7 +1338,8 @@
- /* We can only check the format if it's a string constant. */
-+ again:
- while (TREE_CODE (format_tree) == NOP_EXPR)
- format_tree = TREE_OPERAND (format_tree, 0); /* strip coercion */
-
-@@ -1396,16 +1429,73 @@
- }
- }
-
-+ if (TREE_CODE (format_tree) == COND_EXPR)
-+ {
-+ format_tree = TREE_OPERAND(format_tree, 1);
-+ goto again;
-+ }
-+
if (integer_zerop (format_tree))
{
- warning ("null format string");
+ if (!info->null_format_ok)
+ warning ("null format string");
-+ return;
-+ }
-+ if (TREE_CODE (format_tree) != ADDR_EXPR)
-+ {
-+ if ((info->first_arg_num == 0) &&
-+ (TREE_CODE(format_tree) == PARM_DECL))
-+ {
-+ function_format_info *i2;
-+ tree p;
-+ int n;
-+
-+ /* Now, we need to determine if the current function is printf-like,
-+ and, if so, if the parameter we have here is as a parameter of
-+ the current function and is in the argument slot declared to
-+ contain the format argument. */
-+
-+ p = current_function_decl;
-+
-+ i2 = find_function_format (p->decl.name, p->decl.assembler_name);
-+
-+ if (i2 == NULL)
-+ {
-+ if (warn_format > 1)
-+ warning("non-constant format parameter");
-+ }
-+ else
-+ {
-+ for (n = 1, p = current_function_decl->decl.arguments;
-+ (n < i2->format_num) && (p != NULL);
-+ n++, p = TREE_CHAIN(p))
-+ ;
-+ if ((p == NULL) || (n != i2->format_num))
-+ warning("can't find format arg for current format function");
-+ else if (p != format_tree)
-+ warning("format argument passed here is not declared as format argument");
-+ }
-+ }
-+ else if ((info->format_type != strftime_format_type) &&
-+ (warn_format > 1))
-+ warning("non-constant format parameter");
return;
}
-- if (TREE_CODE (format_tree) != ADDR_EXPR)
-- return;
- format_tree = TREE_OPERAND (format_tree, 0);
-- if (TREE_CODE (format_tree) != STRING_CST)
-- return;
-+ if (warn_format > 1 &&
-+ (TREE_CODE (format_tree) == VAR_DECL) &&
-+ TREE_READONLY(format_tree) &&
-+ (DECL_INITIAL(format_tree) != NULL) &&
-+ TREE_CODE(DECL_INITIAL(format_tree)) == STRING_CST)
-+ format_tree = DECL_INITIAL(format_tree);
-+
-+ if (TREE_CODE (format_tree) != STRING_CST)
-+ {
-+ if ((info->format_type != strftime_format_type) &&
-+ (warn_format > 1))
-+ warning("non-constant format parameter");
-+ return;
-+ }
- format_chars = TREE_STRING_POINTER (format_tree);
- format_length = TREE_STRING_LENGTH (format_tree);
- if (format_length <= 1)
-@@ -1433,7 +1523,10 @@
- if (format_chars - TREE_STRING_POINTER (format_tree) != format_length)
- warning ("embedded `\\0' in format");
- if (info->first_arg_num != 0 && params != 0 && ! has_operand_number)
-- warning ("too many arguments for format");
-+ {
-+ if (warn_format_extra_args)
-+ warning ("too many arguments for format");
-+ }
- return;
- }
- if (*format_chars++ != '%')
-@@ -1569,12 +1662,13 @@
+ if (TREE_CODE (format_tree) != ADDR_EXPR)
+@@ -1485,12 +1510,13 @@
It will work on most machines, because size_t and int
have the same mode. But might as well warn anyway,
since it will fail on other machines. */
@@ -299,7 +166,7 @@
}
}
else
-@@ -1619,6 +1713,53 @@
+@@ -1535,6 +1561,53 @@
}
}
}
@@ -353,7 +220,7 @@
aflag = 0;
-@@ -1688,7 +1829,8 @@
+@@ -1604,7 +1677,8 @@
switch (info->format_type)
{
case printf_format_type:
@@ -363,11 +230,3 @@
break;
case scanf_format_type:
fci = scan_char_table;
-@@ -1787,7 +1929,6 @@
- warning ("use of `%c' length character with `%c' type character",
- length_char, format_char);
-
-- /* Finally. . .check type of argument against desired type! */
- if (info->first_arg_num == 0)
- continue;
- if (fci->pointer_count == 0 && wanted_type == void_type_node)
diff --git a/lang/egcs/files/patch-fb b/lang/egcs/files/patch-fb
index dae6d331898c..b86da95cfa90 100644
--- a/lang/egcs/files/patch-fb
+++ b/lang/egcs/files/patch-fb
@@ -1,13 +1,12 @@
---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999
-+++ gcc/flags.h Tue Mar 30 13:17:11 1999
-@@ -137,6 +137,10 @@
+--- gcc/flags.h.orig Sat Feb 27 10:33:03 1999
++++ gcc/flags.h Tue Mar 30 03:36:49 1999
+@@ -449,6 +449,9 @@
- extern int warn_aggregate_return;
-
-+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
+ /* Do the full regmove optimization pass. */
+ extern int flag_regmove;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
+extern int flag_format_extensions;
-+
- /* Nonzero if generating code to do profiling. */
+
+ /* Other basic status info about current function. */
- extern int profile_flag;
diff --git a/lang/egcs/files/patch-fc b/lang/egcs/files/patch-fc
index 081cdcbabc52..24fefb020007 100644
--- a/lang/egcs/files/patch-fc
+++ b/lang/egcs/files/patch-fc
@@ -1,31 +1,22 @@
---- gcc/toplev.c.orig Thu Oct 21 00:01:37 1999
-+++ gcc/toplev.c Sun Nov 26 15:25:45 2000
-@@ -771,6 +771,9 @@
+--- gcc/toplev.c.orig Sat Feb 27 10:33:02 1999
++++ gcc/toplev.c Tue Mar 30 03:37:57 1999
+@@ -728,6 +728,10 @@
- int flag_no_ident = 0;
+ extern int flag_dump_unnumbered;
+/* Nonzero means that -Wformat accepts certain system-dependent formats. */
++
+int flag_format_extensions = 0;
+
+
/* Table of supported debugging formats. */
static struct
- {
-@@ -971,6 +974,8 @@
+@@ -915,6 +919,8 @@
"Generate code to check every memory access" },
{"prefix-function-name", &flag_prefix_function_name, 1,
"Add a prefix to all function names" },
+ {"format-extensions", &flag_format_extensions, 1,
+ "-Wformat accepts certain FreeBSD system-dependent formats" },
- {"dump-unnumbered", &flag_dump_unnumbered, 1,
- "Suppress output of instruction numbers and line number notes in debugging dumps"},
- {"instrument-functions", &flag_instrument_function_entry_exit, 1,
-@@ -1051,7 +1056,9 @@
- { "-Wconversion", "Warn about possibly confusing type conversions" },
- { "-Wno-conversion", "" },
- { "-Wformat", "Warn about printf format anomalies" },
-+ { "-Wnon-const-format", "Warn about printf-like format strings" },
- { "-Wno-format", "" },
-+ { "-Wno-format-extra-args", "" },
- { "-Wimplicit-function-declaration",
- "Warn about implicit function declarations" },
- { "-Wno-implicit-function-declaration", "" },
+ {"dump-unnumbered", &flag_dump_unnumbered, 1}
+ };
+
diff --git a/lang/egcs/pkg-comment b/lang/egcs/pkg-comment
index 5386f1ed981f..c23b39554386 100644
--- a/lang/egcs/pkg-comment
+++ b/lang/egcs/pkg-comment
@@ -1 +1 @@
-GNU compiler suite
+EGCS enhanced version of the GNU compiler suite
diff --git a/lang/egcs/pkg-descr b/lang/egcs/pkg-descr
index 4ff8902c47b5..0429360a5404 100644
--- a/lang/egcs/pkg-descr
+++ b/lang/egcs/pkg-descr
@@ -1,10 +1,17 @@
-This is GNU's latest offering of GCC (the GNU Compiler Collection).
-Version 2.95 contains many improvements and features not found in the
-gcc-2.7.2 and gcc-2.8.1 compliers. C++ support, is vastly improved, in
-particular template support is worlds above that that of gcc-2.7.2.
+Egcs (pronounced "eggs") is an enhanced version of the GNU compiler
+suite, including gcc, g++, and g77. Egcs is based on a recent
+snapshot of the gcc-2.8 development sources; it contains nearly
+all of the new features found in gcc-2.8. Egcs also contains many
+improvements and features not found in gcc-2.7 and even the soon to be
+released gcc-2.8 compilers. C++ support, and in particular template
+support, is vastly improved over gcc-2.7.
-For more details, see <http://egcs.cygnus.com/>.
+For more details, see <http://www.cygnus.com/egcs/>.
-- David O'Brien <obrien@FreeBSD.org>
+Beware: This port installs new versions of "gcc", "g++", "c++" and
+so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you
+don't want to use this compiler by default.
-WWW: http://egcs.cygnus.com/
+- John Polstra <jdp@polstra.com>
+
+WWW: http://egcs.cygnus.com
diff --git a/lang/egcs/pkg-plist b/lang/egcs/pkg-plist
index 86d7c8841830..0c1c86753fa7 100644
--- a/lang/egcs/pkg-plist
+++ b/lang/egcs/pkg-plist
@@ -1,26 +1,23 @@
-@comment $FreeBSD$
-bin/g++295
-bin/g++filt295
+@comment $Id: PLIST,v 1.21 1998/12/26 20:10:02 obrien Exp $
+bin/g++filt
+bin/g++
+bin/eg++
bin/g77
-bin/gcc295
-bin/%%GNU_HOST%%-gcc
-bin/gcj
-bin/gcjh
+bin/gcc
+bin/egcc
bin/gcov
-bin/jv-scan
-bin/jcf-dump
+bin/%%GNU_HOST%%-gcc
bin/protoize
bin/unprotoize
%%GNU_HOST%%/include/_G_config.h
%%GNU_HOST%%/include/assert.h
-%%CURSES:%%lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/curses.h
+%%GNU_HOST%%/lib/libiberty.a
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/PlotFile.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/SFile.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/algo.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/algobase.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/algorithm
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/alloc.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/bitset
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/builtinbuf.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/bvector.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/cassert
@@ -104,18 +101,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/complext.cc
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/complext.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/dcomplex.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/fcomplex.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/gslice.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/gslice_array.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/indirect_array.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/ldcomplex.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/mask_array.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/slice.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/slice_array.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/std_valarray.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/straits.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/valarray_array.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/valarray_array.tcc
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std/valarray_meta.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/stdexcept
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/stdiostream.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/stl.h
@@ -160,7 +147,6 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/tempbuf.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/tree.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/type_traits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/utility
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/valarray
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@@ -184,7 +170,6 @@ info/g77.info-18
info/g77.info-19
info/g77.info-2
info/g77.info-20
-info/g77.info-21
info/g77.info-3
info/g77.info-4
info/g77.info-5
@@ -215,7 +200,6 @@ info/gcc.info-26
info/gcc.info-27
info/gcc.info-28
info/gcc.info-29
-info/gcc.info-30
info/gcc.info-3
info/gcc.info-4
info/gcc.info-5
@@ -232,17 +216,16 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
-%%ELF:%%lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
-%%ELF:%%lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbeginS.o
-%%ELF:%%lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtend.o
-%%ELF:%%lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtendS.o
+@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
+@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbeginS.o
+@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtend.o
+@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtendS.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/f771
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/README
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/assert.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/exception
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/float.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g2c.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/iso646.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/limits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/math.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/new
@@ -258,34 +241,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/objc/objc.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/objc/sarray.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/objc/thr.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/objc/typedstream.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/proto.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/stdarg.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/stdbool.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/stddef.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-alpha.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-arc.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-c4x.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-clipper.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-h8300.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-i860.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-i960.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-m32r.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-m88k.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-mips.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-mn10200.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-mn10300.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-pa.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-ppc.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-pyr.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-sh.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-sparc.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-spur.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/va-v850.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/varargs.h
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
-lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libgcc.a
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libobjc.a
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/specs
@@ -295,6 +252,7 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libg2c.a
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libiberty.a
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libstdc++.a
@dirrm %%GNU_HOST%%/include
+@dirrm %%GNU_HOST%%/lib
@dirrm %%GNU_HOST%%
@dirrm lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/objc
@dirrm lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/std