aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/pgcc/Makefile80
-rw-r--r--lang/pgcc/distinfo11
-rw-r--r--lang/pgcc/files/patch-ad59
-rw-r--r--lang/pgcc/files/patch-af136
-rw-r--r--lang/pgcc/files/patch-ah63
-rw-r--r--lang/pgcc/files/patch-aj20
-rw-r--r--lang/pgcc/files/patch-ak47
-rw-r--r--lang/pgcc/files/patch-al46
-rw-r--r--lang/pgcc/files/patch-am19
-rw-r--r--lang/pgcc/files/patch-an11
-rw-r--r--lang/pgcc/files/patch-ap26
-rw-r--r--lang/pgcc/files/patch-aq11
-rw-r--r--lang/pgcc/files/patch-bc31
-rw-r--r--lang/pgcc/files/patch-fb17
-rw-r--r--lang/pgcc/files/patch-fc19
-rw-r--r--lang/pgcc/files/patch-va20
-rw-r--r--lang/pgcc/pkg-plist52
17 files changed, 364 insertions, 304 deletions
diff --git a/lang/pgcc/Makefile b/lang/pgcc/Makefile
index 26e007319bb6..4e6a46c6a353 100644
--- a/lang/pgcc/Makefile
+++ b/lang/pgcc/Makefile
@@ -7,39 +7,41 @@
# $FreeBSD$
#
-DISTNAME= egcs-1.1.2
-PKGNAME= pgcc-1.1.3
+DISTNAME= gcc-2.95.1
+PKGNAME= pgcc-2.95.1
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}
+MASTER_SITES= ftp://go.cygnus.com/pub/sourceware.cygnus.com/pub/egcs/releases/${DISTNAME}/ \
+ ftp://egcs.cygnus.com/pub/egcs/releases/${DISTNAME}/ \
+ ${MASTER_SITE_GNU} \
+ ftp://ftp.nluug.nl/pub/languages/egcs/releases/${DISTNAME}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/releases/${DISTNAME}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/releases/${DISTNAME}/
+MASTER_SITE_SUBDIR= gcc
+DISTFILES= gcc-core-${DISTNAME:S/gcc-//g}${EXTRACT_SUFX} \
+ gcc-g++-${DISTNAME:S/gcc-//g}${EXTRACT_SUFX} \
+ gcc-g77-${DISTNAME:S/gcc-//g}${EXTRACT_SUFX} \
+ gcc-java-${DISTNAME:S/gcc-//g}${EXTRACT_SUFX} \
+ gcc-objc-${DISTNAME:S/gcc-//g}${EXTRACT_SUFX}
PATCH_SITES= http://www.gcc.ml.org/data/source/ \
ftp://ftp.goof.com/pub/pcg/source/ \
ftp://ftp.hitachi-sk.co.jp/pub/pentium-gcc/source/ \
ftp://ftp.fu-berlin.de/unix/languages/pgcc/source/
-PATCHFILES= egcs-1.1.2-pgcc-1.1.3.diff.gz
+PATCHFILES= gcc-2.95.1-pgcc-2.95.1.diff.gz
PATCH_DIST_STRIP= -p1
MAINTAINER= obrien@FreeBSD.org
BUILD_DEPENDS= autoconf:${PORTSDIR}/devel/autoconf
-BROKEN='waiting for new patches against gcc-2.95.1'
-
-.include <bsd.port.pre.mk>
+ONLY_FOR_ARCHS= i386
USE_BZIP2= yes
-EGCS_REV= pgcc-2.91.66
-LIBSTDCPP_REV= 2.9.0
+.include <bsd.port.pre.mk>
+
+GCC_REV= p${DISTNAME}
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
PLIST= ${WRKDIR}/PLIST
@@ -48,25 +50,28 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
.endif
-PLIST_SUB= EGCS_REV=${EGCS_REV} GNU_HOST=${GNUHOST}
+PLIST_SUB= EGCS_REV=${GCC_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}/${EGCS_REV}/include/g++
+ --with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_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++.1 g77.1 gcc.1
+MAN1= cccp.1 pg++.1 pg77.1 pgcc.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
pre-configure:
@(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
- ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \
+ ${SED} -e "s:__FreeBSD__[0-9=]*:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \
>${WRKSRC}/gcc/config/freebsd.h )
.if ${PORTOBJFORMAT} == "elf" && ${MACHINE_ARCH} == "i386"
@${SED} -e 's/^@comment ELF-only://' ${PKGDIR}/PLIST >${PLIST}
@@ -82,27 +87,36 @@ post-install:
${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 ; \
+ ${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/i386-portbld-freebsd4.0-gcc ${PREFIX}/bin/i386-portbld-freebsd4.0-pgcc
${MV} ${PREFIX}/bin/gcc ${PREFIX}/bin/pgcc
${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/pg++
${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/pg77
${MV} ${PREFIX}/bin/gcov ${PREFIX}/bin/pgcov
${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/pg++filt
+ ${MV} ${PREFIX}/bin/gcj ${PREFIX}/bin/pgcj
+ ${MV} ${PREFIX}/bin/gcjh ${PREFIX}/bin/pgcjh
+ ${MV} ${PREFIX}/bin/jv-scan ${PREFIX}/bin/pjv-scan
+ ${MV} ${PREFIX}/bin/jcf-dump ${PREFIX}/bin/pjcf-dump
+ ${RM} -f ${PREFIX}/bin/cpp
${MV} ${PREFIX}/lib/libiberty.a \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.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/pgcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/pg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/pg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
- ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
+ ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}
.endif
.for info in cpp g77 gcc
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
diff --git a/lang/pgcc/distinfo b/lang/pgcc/distinfo
index c5d92deb8cc2..f7c9c45f0a83 100644
--- a/lang/pgcc/distinfo
+++ b/lang/pgcc/distinfo
@@ -1,5 +1,6 @@
-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
-MD5 (egcs-1.1.2-pgcc-1.1.3.diff.gz) = 1b70b8cec9c5588ebd1108f45daebb60
+MD5 (gcc-core-2.95.1.tar.bz2) = 933e2a57312e1974156f03b03546b035
+MD5 (gcc-g++-2.95.1.tar.bz2) = 55bc8b3a08dcaec7f35fe93758e7ae04
+MD5 (gcc-g77-2.95.1.tar.bz2) = 3c1e66969f49eb9d235b0d1fc74477b1
+MD5 (gcc-java-2.95.1.tar.bz2) = a0b98682ffa57cdf050e2f063b9d5ea5
+MD5 (gcc-objc-2.95.1.tar.bz2) = 501acdfb08acd4fef1a307f637a88375
+MD5 (gcc-2.95.1-pgcc-2.95.1.diff.gz) = e2c2cae87d9ec39b1a8021217d8de82d
diff --git a/lang/pgcc/files/patch-ad b/lang/pgcc/files/patch-ad
index bea070deb344..f8a3b90fdb1a 100644
--- a/lang/pgcc/files/patch-ad
+++ b/lang/pgcc/files/patch-ad
@@ -1,5 +1,5 @@
---- 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
+--- 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
@@ -20,6 +20,10 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
@@ -8,25 +8,31 @@
+/* Get generic FreeBSD definitions. */
+#include <freebsd.h>
+
- /* This goes away when the math-emulator is fixed */
- #define TARGET_CPU_DEFAULT 0400 /* TARGET_NO_FANCY_MATH_387 */
+ /* This is tested by i386gas.h. */
+ #define YES_UNDERSCORES
-@@ -35,7 +39,7 @@
+@@ -32,12 +36,10 @@
#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}}"
-@@ -85,14 +89,6 @@
+@@ -87,14 +89,6 @@
necessary when compiling PIC code. */
#define JUMP_TABLES_IN_TEXT_SECTION 1
-
--/* Don't default to pcc-struct-return, because gcc is the only compiler, and
-- we want to retain compatibility with older gcc versions. */
+-/* Don't default to pcc-struct-return, because in FreeBSD we prefer the
+- superior nature of the older gcc way. */
-#define DEFAULT_PCC_STRUCT_RETURN 0
-
-/* Ensure we the configuration knows our system correctly so we can link with
@@ -35,7 +41,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
-@@ -103,19 +99,18 @@
+@@ -105,19 +99,18 @@
/* Profiling routines, partially copied from i386/osfrose.h. */
@@ -58,7 +64,7 @@
fprintf (FILE, "\tcall mcount\n"); \
} \
}
-@@ -133,6 +128,7 @@
+@@ -135,6 +128,7 @@
#define TYPE_ASM_OP ".type"
#define SIZE_ASM_OP ".size"
@@ -66,7 +72,7 @@
/* The following macro defines the format used to output the second
operand of the .type assembler directive. Different svr4 assemblers
-@@ -142,6 +138,12 @@
+@@ -144,6 +138,12 @@
#define TYPE_OPERAND_FMT "@%s"
@@ -79,34 +85,9 @@
/* 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. */
-@@ -244,29 +246,4 @@
+@@ -245,3 +245,5 @@
+ #define STARTFILE_SPEC \
"%{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/pgcc/files/patch-af b/lang/pgcc/files/patch-af
index c1f1ba0e855f..533a35a95584 100644
--- a/lang/pgcc/files/patch-af
+++ b/lang/pgcc/files/patch-af
@@ -1,85 +1,83 @@
---- 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 @@
+--- 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 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
--/* 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. */
++/* Don't use EGCS's normal profiling code -- we have our own fine-grained
++ basic block profiling. */
+#define NO_PROFILE_DATA
++
+ /* Tell final.c that we don't need a label passed to mcount. */
#undef FUNCTION_PROFILER
- #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 @@
+@@ -162,22 +166,30 @@
#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 -D__ELF__ -Acpu(i386) -Amachine(i386)" CPP_FBSD_PREDEFINES
++#define CPP_PREDEFINES "-Di386 -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}"
-+#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} */
++#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}}"
- #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 \
+ /* 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 \
- "%{!shared: \
-- %{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}}}"
+- %{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}"
- /* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
- for the special GCC options -static and -shared, which allow us to
+ /* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate
+ libc, depending on whether we're doing profiling or need threads support.
diff --git a/lang/pgcc/files/patch-ah b/lang/pgcc/files/patch-ah
index 8aa3792b1950..eff3a21fd16b 100644
--- a/lang/pgcc/files/patch-ah
+++ b/lang/pgcc/files/patch-ah
@@ -1,6 +1,6 @@
---- gcc/config/i386/i386.c.orig Wed May 12 17:51:23 1999
-+++ gcc/config/i386/i386.c Wed May 12 17:54:30 1999
-@@ -54,6 +54,11 @@
+--- gcc/config/i386/i386.c.orig Sat Apr 17 14:13:52 1999
++++ gcc/config/i386/i386.c Sun Apr 18 15:52:52 1999
+@@ -51,6 +51,11 @@
#define CHECK_STACK_LIMIT -1
#endif
@@ -12,76 +12,43 @@
/* Type of an operand for ix86_{binary,unary}_operator_ok */
enum reg_mem
{
-@@ -1987,13 +1992,11 @@
+@@ -1809,8 +1814,7 @@
char *name ATTRIBUTE_UNUSED;
{
rtx xops[2];
- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
- || current_function_uses_const_pool);
++ int pic_reg_used = PIC_REG_USED;
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;
-
-@@ -2123,8 +2126,7 @@
+@@ -2006,8 +2010,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 = ix86_frame_size ();
+ HOST_WIDE_INT tsize = ix86_compute_frame_size (get_frame_size (), (int *)0);
rtx insn;
int cfa_offset = INCOMING_FRAME_SP_OFFSET, cfa_store_offset = cfa_offset;
-@@ -2290,8 +2292,6 @@
+@@ -2177,8 +2180,7 @@
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);
++ int pic_reg_used = PIC_REG_USED;
#ifdef NON_SAVING_SETJMP
if (NON_SAVING_SETJMP && current_function_calls_setjmp)
-@@ -2303,7 +2303,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;
-@@ -2337,8 +2337,7 @@
- register int nregs, limit;
- int offset;
+@@ -2224,8 +2226,7 @@
+ register int limit;
+ int nregs;
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 = ix86_frame_size ();
-
- /* Compute the number of registers to pop */
-@@ -5714,8 +5713,7 @@
- {
- int regno;
- int offset = 0;
-- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
-- || current_function_uses_const_pool);
-+ int pic_reg_used = PIC_REG_USED;
- int tsize = get_frame_size ();
-
- for (regno = 0; regno < STACK_POINTER_REGNUM; regno++)
-@@ -5741,8 +5739,7 @@
- {
- int regno;
- int offset = 0;
-- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table
-- || current_function_uses_const_pool);
-+ int pic_reg_used = PIC_REG_USED;
- int limit = (frame_pointer_needed ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM);
- int tsize = get_frame_size ();
-
+ int sp_valid = !frame_pointer_needed || current_function_sp_is_unchanging;
+ HOST_WIDE_INT offset;
+ HOST_WIDE_INT tsize = ix86_compute_frame_size (get_frame_size (), &nregs);
diff --git a/lang/pgcc/files/patch-aj b/lang/pgcc/files/patch-aj
index 035627fc0908..4666dfa4e86f 100644
--- a/lang/pgcc/files/patch-aj
+++ b/lang/pgcc/files/patch-aj
@@ -1,14 +1,14 @@
---- config.guess.orig Mon Mar 1 14:37:59 1999
-+++ config.guess Sat Mar 13 19:28:44 1999
-@@ -478,9 +478,9 @@
+--- config.guess.orig Sun May 30 09:04:33 1999
++++ config.guess Mon Jun 21 00:55:29 1999
+@@ -521,9 +521,9 @@
exit 0 ;;
*:FreeBSD:*:*)
- 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
+ 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
exit 0 ;;
*:NetBSD:*:*)
diff --git a/lang/pgcc/files/patch-ak b/lang/pgcc/files/patch-ak
index 2e54beea1a61..c5585f836a0e 100644
--- a/lang/pgcc/files/patch-ak
+++ b/lang/pgcc/files/patch-ak
@@ -1,11 +1,11 @@
---- gcc/configure.orig Sun Mar 14 02:59:02 1999
-+++ gcc/configure Sat Mar 20 00:40:05 1999
-@@ -2395,6 +2395,15 @@
+--- gcc/configure.orig Tue Jun 8 02:19:23 1999
++++ gcc/configure Mon Jun 14 23:54:18 1999
+@@ -3058,6 +3058,15 @@
thread_file='posix'
fi
;;
+ alpha*-*-freebsd*)
-+ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h"
++ tm_file="${tm_file} freebsd.h alpha/freebsd.h"
+ xm_file="${xm_file} xm-freebsd.h"
+ target_cpu_default="MASK_GAS"
+ tmake_file="t-freebsd alpha/t-crtbe"
@@ -14,36 +14,29 @@
+ gas=yes gnu_ld=yes
+ ;;
alpha*-*-netbsd*)
- 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 @@
+ tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
+ target_cpu_default="MASK_GAS"
+@@ -3536,17 +3545,17 @@
# 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 linux.h i386/freebsd-elf.h i386/perform.h"
-+ i[34567]86-*-freebsdaout*)
+- 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/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*)
++ ;;
++ 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*)
- tm_file=i386/freebsd.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
-+ gas=yes
-+ gnu_ld=yes
-+ stabs=yes
+- tmake_file=t-freebsd
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/pgcc/files/patch-al b/lang/pgcc/files/patch-al
index c8a195127ed0..de95c4439b95 100644
--- a/lang/pgcc/files/patch-al
+++ b/lang/pgcc/files/patch-al
@@ -1,11 +1,11 @@
---- 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 @@
+--- 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 @@
thread_file='posix'
fi
;;
+ alpha*-*-freebsd*)
-+ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h"
++ tm_file="${tm_file} freebsd.h alpha/freebsd.h"
+ xm_file="${xm_file} xm-freebsd.h"
+ target_cpu_default="MASK_GAS"
+ tmake_file="t-freebsd alpha/t-crtbe"
@@ -14,36 +14,34 @@
+ gas=yes gnu_ld=yes
+ ;;
alpha*-*-netbsd*)
- 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.
+ tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
+ target_cpu_default="MASK_GAS"
+@@ -1136,20 +1145,20 @@
# use_collect2=yes
;;
-- 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
+ 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"
- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
-- tmake_file=i386/t-freebsd
++ tm_file=i386/freebsd.h
+ tmake_file=t-freebsd
- gas=yes
- gnu_ld=yes
- stabs=yes
-+ tmake_file=t-freebsd
;;
- i[[34567]]86-*-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
- tm_file=i386/freebsd.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
++ 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
+ tmake_file=t-freebsd
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
;;
- i[[34567]]86-*-netbsd*)
- tm_file=i386/netbsd.h
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/pgcc/files/patch-am b/lang/pgcc/files/patch-am
index f69f6ffa7798..c3c4553367c9 100644
--- a/lang/pgcc/files/patch-am
+++ b/lang/pgcc/files/patch-am
@@ -1,12 +1,7 @@
---- 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;
+--- 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)
diff --git a/lang/pgcc/files/patch-an b/lang/pgcc/files/patch-an
new file mode 100644
index 000000000000..36378bfeee3f
--- /dev/null
+++ b/lang/pgcc/files/patch-an
@@ -0,0 +1,11 @@
+--- 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/pgcc/files/patch-ap b/lang/pgcc/files/patch-ap
new file mode 100644
index 000000000000..f7a486910063
--- /dev/null
+++ b/lang/pgcc/files/patch-ap
@@ -0,0 +1,26 @@
+--- 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/pgcc/files/patch-aq b/lang/pgcc/files/patch-aq
new file mode 100644
index 000000000000..32f0788b5379
--- /dev/null
+++ b/lang/pgcc/files/patch-aq
@@ -0,0 +1,11 @@
+--- 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/pgcc/files/patch-bc b/lang/pgcc/files/patch-bc
index c6faefae79d6..c3159ca2788c 100644
--- a/lang/pgcc/files/patch-bc
+++ b/lang/pgcc/files/patch-bc
@@ -1,16 +1,16 @@
---- libstdc++/Makefile.in.orig Sat Jul 11 19:20:49 1998
-+++ libstdc++/Makefile.in Sun Mar 14 21:48:39 1999
+--- libstdc++/Makefile.in.orig Sat Jul 17 22:50:47 1999
++++ libstdc++/Makefile.in Tue Jul 20 07:56:00 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.9.0
-+VERSION = 3
+-VERSION = 2.10.0
++VERSION = 4
+ INTERFACE = 3
- 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)
+ gxx_include_dir=${includedir}/g++
+@@ -111,7 +111,8 @@
+ $(LN_S) $(SHLIB) $(SHLINK) || cp $(ARLIB) $(ARLINK)
mshlink:
- @$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)"
@@ -19,15 +19,16 @@
$(IO_DIR)/iostream.list: force
cd $(IO_DIR) ; $(MAKE) $(FLAGS_TO_PASS) iostream.list
-@@ -281,10 +282,7 @@
- if [ $$FILE = $(SHLINK) ] ; then \
- ln -f -s $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
+@@ -336,11 +337,7 @@
+ || cp $${RELINSTALLDIR}$(ARLIB) $${INSTALLLINKDIR}$(MULTISUBDIR)/$$FILE ; \
+ fi; \
elif [ $$FILE = mshlink ]; then \
- for FILE in $(MSHLINK) ; do \
- rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
-- ln -f -s $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
+- $(LN_S) $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE \
+- || cp $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
- done; \
+ true; \
- elif [ $$FILE = $(SHLIB) ]; then \
- $(INSTALL_PROGRAM) $$FILE $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
- : On the HP, shared libraries must be mode 555. ;\
+ elif [ $$FILE = marlink ]; then \
+ for FILE in $(MARLINK) ; do \
+ rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \
diff --git a/lang/pgcc/files/patch-fb b/lang/pgcc/files/patch-fb
index b86da95cfa90..dae6d331898c 100644
--- a/lang/pgcc/files/patch-fb
+++ b/lang/pgcc/files/patch-fb
@@ -1,12 +1,13 @@
---- 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 @@
+--- 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 @@
+
+ extern int warn_aggregate_return;
- /* Do the full regmove optimization pass. */
- extern int flag_regmove;
-+
+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
+extern int flag_format_extensions;
-
- /* Other basic status info about current function. */
++
+ /* Nonzero if generating code to do profiling. */
+ extern int profile_flag;
diff --git a/lang/pgcc/files/patch-fc b/lang/pgcc/files/patch-fc
index 456579bf4366..a3f44c5e158b 100644
--- a/lang/pgcc/files/patch-fc
+++ b/lang/pgcc/files/patch-fc
@@ -1,22 +1,21 @@
---- gcc/toplev.c.orig Wed May 12 17:57:09 1999
-+++ gcc/toplev.c Wed May 12 17:58:25 1999
-@@ -764,6 +764,10 @@
+--- gcc/toplev.c.orig Mon Mar 22 15:23:26 1999
++++ gcc/toplev.c Tue Mar 30 13:13:44 1999
+@@ -754,6 +754,9 @@
- extern int flag_dump_unnumbered;
+ int flag_no_ident = 0;
+/* Nonzero means that -Wformat accepts certain system-dependent formats. */
-+
+int flag_format_extensions = 0;
+
-
/* Table of supported debugging formats. */
static struct
-@@ -951,6 +955,8 @@
+ {
+@@ -954,6 +957,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},
- /* intel1 */
- {"compare-elim", &flag_compare_elim, 1},
+ {"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,
diff --git a/lang/pgcc/files/patch-va b/lang/pgcc/files/patch-va
new file mode 100644
index 000000000000..48040ffa6e96
--- /dev/null
+++ b/lang/pgcc/files/patch-va
@@ -0,0 +1,20 @@
+--- gcc/Makefile.in.orig Thu Feb 25 12:40:16 1999
++++ gcc/Makefile.in Mon Mar 1 04:36:40 1999
+@@ -793,7 +793,7 @@
+ rm -f config.run
+
+ $(srcdir)/configure: $(srcdir)/configure.in
+- cd $(srcdir); autoconf
++ cd $(srcdir); echo "wants to run autoconf"
+
+ # cstamp-h.in controls rebuilding of config.in.
+ # It is named cstamp-h.in and not stamp-h.in so the mostlyclean rule doesn't
+@@ -806,7 +806,7 @@
+ # ??? Newer versions have a maintainer mode that may be useful here.
+ $(srcdir)/config.in: $(srcdir)/cstamp-h.in
+ $(srcdir)/cstamp-h.in: $(srcdir)/configure.in $(srcdir)/acconfig.h
+- cd $(srcdir) && autoheader
++ cd $(srcdir) && echo "want to run autoheader"
+ @rm -f $(srcdir)/cstamp-h.in
+ echo timestamp > $(srcdir)/cstamp-h.in
+ auto-host.h: cstamp-h ; @true
diff --git a/lang/pgcc/pkg-plist b/lang/pgcc/pkg-plist
index 240e3a276c76..b57348facf4d 100644
--- a/lang/pgcc/pkg-plist
+++ b/lang/pgcc/pkg-plist
@@ -1,21 +1,25 @@
@comment $FreeBSD$
-bin/pg++filt
bin/pg++
+bin/pg++filt
bin/pg77
bin/pgcc
+bin/%%GNU_HOST%%-pgcc
+bin/pgcj
+bin/pgcjh
bin/pgcov
-bin/%%GNU_HOST%%-gcc
+bin/pjv-scan
+bin/pjcf-dump
bin/protoize
bin/unprotoize
%%GNU_HOST%%/include/_G_config.h
%%GNU_HOST%%/include/assert.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
@@ -99,8 +103,18 @@ 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
@@ -145,6 +159,7 @@ 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
@@ -168,6 +183,7 @@ 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
@@ -198,6 +214,7 @@ 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
@@ -221,9 +238,11 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
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/curses.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
@@ -239,8 +258,34 @@ 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
@@ -250,7 +295,6 @@ 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