summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/gcc-devel/Makefile68
-rw-r--r--lang/gcc-devel/distinfo10
-rw-r--r--lang/gcc-devel/files/alpha-freebsd.h2
-rw-r--r--lang/gcc-devel/files/patch-ad30
-rw-r--r--lang/gcc-devel/files/patch-af110
-rw-r--r--lang/gcc-devel/files/patch-ak38
-rw-r--r--lang/gcc-devel/files/patch-al53
-rw-r--r--lang/gcc-devel/files/patch-bc29
-rw-r--r--lang/gcc-devel/files/patch-fa232
-rw-r--r--lang/gcc-devel/files/patch-fb13
-rw-r--r--lang/gcc-devel/files/patch-fc21
-rw-r--r--lang/gcc-devel/files/patch-va20
-rw-r--r--lang/gcc-devel/pkg-comment2
-rw-r--r--lang/gcc-devel/pkg-plist26
-rw-r--r--lang/gcc-ooo/Makefile68
-rw-r--r--lang/gcc-ooo/distinfo10
-rw-r--r--lang/gcc-ooo/files/alpha-freebsd.h2
-rw-r--r--lang/gcc-ooo/files/patch-ad30
-rw-r--r--lang/gcc-ooo/files/patch-af110
-rw-r--r--lang/gcc-ooo/files/patch-ak38
-rw-r--r--lang/gcc-ooo/files/patch-al53
-rw-r--r--lang/gcc-ooo/files/patch-bc29
-rw-r--r--lang/gcc-ooo/files/patch-fa232
-rw-r--r--lang/gcc-ooo/files/patch-fb13
-rw-r--r--lang/gcc-ooo/files/patch-fc21
-rw-r--r--lang/gcc-ooo/files/patch-va20
-rw-r--r--lang/gcc-ooo/pkg-comment2
-rw-r--r--lang/gcc-ooo/pkg-plist26
-rw-r--r--lang/gcc/Makefile68
-rw-r--r--lang/gcc/distinfo10
-rw-r--r--lang/gcc/files/alpha-freebsd.h2
-rw-r--r--lang/gcc/files/patch-ad30
-rw-r--r--lang/gcc/files/patch-af110
-rw-r--r--lang/gcc/files/patch-ak38
-rw-r--r--lang/gcc/files/patch-al53
-rw-r--r--lang/gcc/files/patch-bc29
-rw-r--r--lang/gcc/files/patch-fa232
-rw-r--r--lang/gcc/files/patch-fb13
-rw-r--r--lang/gcc/files/patch-fc21
-rw-r--r--lang/gcc/files/patch-va20
-rw-r--r--lang/gcc/pkg-comment2
-rw-r--r--lang/gcc/pkg-plist26
-rw-r--r--lang/gcc30/Makefile68
-rw-r--r--lang/gcc30/distinfo10
-rw-r--r--lang/gcc30/files/alpha-freebsd.h2
-rw-r--r--lang/gcc30/files/patch-ad30
-rw-r--r--lang/gcc30/files/patch-af110
-rw-r--r--lang/gcc30/files/patch-ak38
-rw-r--r--lang/gcc30/files/patch-al53
-rw-r--r--lang/gcc30/files/patch-bc29
-rw-r--r--lang/gcc30/files/patch-fa232
-rw-r--r--lang/gcc30/files/patch-fb13
-rw-r--r--lang/gcc30/files/patch-fc21
-rw-r--r--lang/gcc30/files/patch-va20
-rw-r--r--lang/gcc30/pkg-comment2
-rw-r--r--lang/gcc30/pkg-plist26
-rw-r--r--lang/gcc31/Makefile68
-rw-r--r--lang/gcc31/distinfo10
-rw-r--r--lang/gcc31/files/alpha-freebsd.h2
-rw-r--r--lang/gcc31/files/patch-ad30
-rw-r--r--lang/gcc31/files/patch-af110
-rw-r--r--lang/gcc31/files/patch-ak38
-rw-r--r--lang/gcc31/files/patch-al53
-rw-r--r--lang/gcc31/files/patch-bc29
-rw-r--r--lang/gcc31/files/patch-fa232
-rw-r--r--lang/gcc31/files/patch-fb13
-rw-r--r--lang/gcc31/files/patch-fc21
-rw-r--r--lang/gcc31/files/patch-va20
-rw-r--r--lang/gcc31/pkg-comment2
-rw-r--r--lang/gcc31/pkg-plist26
-rw-r--r--lang/gcc32/Makefile68
-rw-r--r--lang/gcc32/distinfo10
-rw-r--r--lang/gcc32/files/alpha-freebsd.h2
-rw-r--r--lang/gcc32/files/patch-ad30
-rw-r--r--lang/gcc32/files/patch-af110
-rw-r--r--lang/gcc32/files/patch-ak38
-rw-r--r--lang/gcc32/files/patch-al53
-rw-r--r--lang/gcc32/files/patch-bc29
-rw-r--r--lang/gcc32/files/patch-fa232
-rw-r--r--lang/gcc32/files/patch-fb13
-rw-r--r--lang/gcc32/files/patch-fc21
-rw-r--r--lang/gcc32/files/patch-va20
-rw-r--r--lang/gcc32/pkg-comment2
-rw-r--r--lang/gcc32/pkg-plist26
-rw-r--r--lang/gcc33/Makefile68
-rw-r--r--lang/gcc33/distinfo10
-rw-r--r--lang/gcc33/files/alpha-freebsd.h2
-rw-r--r--lang/gcc33/files/patch-ad30
-rw-r--r--lang/gcc33/files/patch-af110
-rw-r--r--lang/gcc33/files/patch-ak38
-rw-r--r--lang/gcc33/files/patch-al53
-rw-r--r--lang/gcc33/files/patch-bc29
-rw-r--r--lang/gcc33/files/patch-fa232
-rw-r--r--lang/gcc33/files/patch-fb13
-rw-r--r--lang/gcc33/files/patch-fc21
-rw-r--r--lang/gcc33/files/patch-va20
-rw-r--r--lang/gcc33/pkg-comment2
-rw-r--r--lang/gcc33/pkg-plist26
-rw-r--r--lang/gcc34/Makefile68
-rw-r--r--lang/gcc34/distinfo10
-rw-r--r--lang/gcc34/files/alpha-freebsd.h2
-rw-r--r--lang/gcc34/files/patch-ad30
-rw-r--r--lang/gcc34/files/patch-af110
-rw-r--r--lang/gcc34/files/patch-ak38
-rw-r--r--lang/gcc34/files/patch-al53
-rw-r--r--lang/gcc34/files/patch-bc29
-rw-r--r--lang/gcc34/files/patch-fa232
-rw-r--r--lang/gcc34/files/patch-fb13
-rw-r--r--lang/gcc34/files/patch-fc21
-rw-r--r--lang/gcc34/files/patch-va20
-rw-r--r--lang/gcc34/pkg-comment2
-rw-r--r--lang/gcc34/pkg-plist26
-rw-r--r--lang/gcc35/Makefile68
-rw-r--r--lang/gcc35/distinfo10
-rw-r--r--lang/gcc35/files/alpha-freebsd.h2
-rw-r--r--lang/gcc35/files/patch-ad30
-rw-r--r--lang/gcc35/files/patch-af110
-rw-r--r--lang/gcc35/files/patch-ak38
-rw-r--r--lang/gcc35/files/patch-al53
-rw-r--r--lang/gcc35/files/patch-bc29
-rw-r--r--lang/gcc35/files/patch-fa232
-rw-r--r--lang/gcc35/files/patch-fb13
-rw-r--r--lang/gcc35/files/patch-fc21
-rw-r--r--lang/gcc35/files/patch-va20
-rw-r--r--lang/gcc35/pkg-comment2
-rw-r--r--lang/gcc35/pkg-plist26
-rw-r--r--lang/gcc40/Makefile68
-rw-r--r--lang/gcc40/distinfo10
-rw-r--r--lang/gcc40/files/alpha-freebsd.h2
-rw-r--r--lang/gcc40/files/patch-ad30
-rw-r--r--lang/gcc40/files/patch-af110
-rw-r--r--lang/gcc40/files/patch-ak38
-rw-r--r--lang/gcc40/files/patch-al53
-rw-r--r--lang/gcc40/files/patch-bc29
-rw-r--r--lang/gcc40/files/patch-fa232
-rw-r--r--lang/gcc40/files/patch-fb13
-rw-r--r--lang/gcc40/files/patch-fc21
-rw-r--r--lang/gcc40/files/patch-va20
-rw-r--r--lang/gcc40/pkg-comment2
-rw-r--r--lang/gcc40/pkg-plist26
-rw-r--r--lang/gcc41/Makefile68
-rw-r--r--lang/gcc41/distinfo10
-rw-r--r--lang/gcc41/files/alpha-freebsd.h2
-rw-r--r--lang/gcc41/files/patch-ad30
-rw-r--r--lang/gcc41/files/patch-af110
-rw-r--r--lang/gcc41/files/patch-ak38
-rw-r--r--lang/gcc41/files/patch-al53
-rw-r--r--lang/gcc41/files/patch-bc29
-rw-r--r--lang/gcc41/files/patch-fa232
-rw-r--r--lang/gcc41/files/patch-fb13
-rw-r--r--lang/gcc41/files/patch-fc21
-rw-r--r--lang/gcc41/files/patch-va20
-rw-r--r--lang/gcc41/pkg-comment2
-rw-r--r--lang/gcc41/pkg-plist26
-rw-r--r--lang/gcc42/Makefile68
-rw-r--r--lang/gcc42/distinfo10
-rw-r--r--lang/gcc42/files/alpha-freebsd.h2
-rw-r--r--lang/gcc42/files/patch-ad30
-rw-r--r--lang/gcc42/files/patch-af110
-rw-r--r--lang/gcc42/files/patch-ak38
-rw-r--r--lang/gcc42/files/patch-al53
-rw-r--r--lang/gcc42/files/patch-bc29
-rw-r--r--lang/gcc42/files/patch-fa232
-rw-r--r--lang/gcc42/files/patch-fb13
-rw-r--r--lang/gcc42/files/patch-fc21
-rw-r--r--lang/gcc42/files/patch-va20
-rw-r--r--lang/gcc42/pkg-comment2
-rw-r--r--lang/gcc42/pkg-plist26
-rw-r--r--lang/gcc43/Makefile68
-rw-r--r--lang/gcc43/distinfo10
-rw-r--r--lang/gcc43/files/alpha-freebsd.h2
-rw-r--r--lang/gcc43/files/patch-ad30
-rw-r--r--lang/gcc43/files/patch-af110
-rw-r--r--lang/gcc43/files/patch-ak38
-rw-r--r--lang/gcc43/files/patch-al53
-rw-r--r--lang/gcc43/files/patch-bc29
-rw-r--r--lang/gcc43/files/patch-fa232
-rw-r--r--lang/gcc43/files/patch-fb13
-rw-r--r--lang/gcc43/files/patch-fc21
-rw-r--r--lang/gcc43/files/patch-va20
-rw-r--r--lang/gcc43/pkg-comment2
-rw-r--r--lang/gcc43/pkg-plist26
-rw-r--r--lang/gcc44/Makefile68
-rw-r--r--lang/gcc44/distinfo10
-rw-r--r--lang/gcc44/files/alpha-freebsd.h2
-rw-r--r--lang/gcc44/files/patch-ad30
-rw-r--r--lang/gcc44/files/patch-af110
-rw-r--r--lang/gcc44/files/patch-ak38
-rw-r--r--lang/gcc44/files/patch-al53
-rw-r--r--lang/gcc44/files/patch-bc29
-rw-r--r--lang/gcc44/files/patch-fa232
-rw-r--r--lang/gcc44/files/patch-fb13
-rw-r--r--lang/gcc44/files/patch-fc21
-rw-r--r--lang/gcc44/files/patch-va20
-rw-r--r--lang/gcc44/pkg-comment2
-rw-r--r--lang/gcc44/pkg-plist26
-rw-r--r--lang/gcc45/Makefile68
-rw-r--r--lang/gcc45/distinfo10
-rw-r--r--lang/gcc45/files/alpha-freebsd.h2
-rw-r--r--lang/gcc45/files/patch-ad30
-rw-r--r--lang/gcc45/files/patch-af110
-rw-r--r--lang/gcc45/files/patch-ak38
-rw-r--r--lang/gcc45/files/patch-al53
-rw-r--r--lang/gcc45/files/patch-bc29
-rw-r--r--lang/gcc45/files/patch-fa232
-rw-r--r--lang/gcc45/files/patch-fb13
-rw-r--r--lang/gcc45/files/patch-fc21
-rw-r--r--lang/gcc45/files/patch-va20
-rw-r--r--lang/gcc45/pkg-comment2
-rw-r--r--lang/gcc45/pkg-plist26
-rw-r--r--lang/gcc46/Makefile68
-rw-r--r--lang/gcc46/distinfo10
-rw-r--r--lang/gcc46/files/alpha-freebsd.h2
-rw-r--r--lang/gcc46/files/patch-ad30
-rw-r--r--lang/gcc46/files/patch-af110
-rw-r--r--lang/gcc46/files/patch-ak38
-rw-r--r--lang/gcc46/files/patch-al53
-rw-r--r--lang/gcc46/files/patch-bc29
-rw-r--r--lang/gcc46/files/patch-fa232
-rw-r--r--lang/gcc46/files/patch-fb13
-rw-r--r--lang/gcc46/files/patch-fc21
-rw-r--r--lang/gcc46/files/patch-va20
-rw-r--r--lang/gcc46/pkg-comment2
-rw-r--r--lang/gcc46/pkg-plist26
-rw-r--r--lang/gcc47/Makefile68
-rw-r--r--lang/gcc47/distinfo10
-rw-r--r--lang/gcc47/files/alpha-freebsd.h2
-rw-r--r--lang/gcc47/files/patch-ad30
-rw-r--r--lang/gcc47/files/patch-af110
-rw-r--r--lang/gcc47/files/patch-ak38
-rw-r--r--lang/gcc47/files/patch-al53
-rw-r--r--lang/gcc47/files/patch-bc29
-rw-r--r--lang/gcc47/files/patch-fa232
-rw-r--r--lang/gcc47/files/patch-fb13
-rw-r--r--lang/gcc47/files/patch-fc21
-rw-r--r--lang/gcc47/files/patch-va20
-rw-r--r--lang/gcc47/pkg-comment2
-rw-r--r--lang/gcc47/pkg-plist26
-rw-r--r--lang/gcc48/Makefile68
-rw-r--r--lang/gcc48/distinfo10
-rw-r--r--lang/gcc48/files/alpha-freebsd.h2
-rw-r--r--lang/gcc48/files/patch-ad30
-rw-r--r--lang/gcc48/files/patch-af110
-rw-r--r--lang/gcc48/files/patch-ak38
-rw-r--r--lang/gcc48/files/patch-al53
-rw-r--r--lang/gcc48/files/patch-bc29
-rw-r--r--lang/gcc48/files/patch-fa232
-rw-r--r--lang/gcc48/files/patch-fb13
-rw-r--r--lang/gcc48/files/patch-fc21
-rw-r--r--lang/gcc48/files/patch-va20
-rw-r--r--lang/gcc48/pkg-comment2
-rw-r--r--lang/gcc48/pkg-plist26
252 files changed, 9144 insertions, 2628 deletions
diff --git a/lang/gcc-devel/Makefile b/lang/gcc-devel/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc-devel/Makefile
+++ b/lang/gcc-devel/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc-devel/distinfo b/lang/gcc-devel/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc-devel/distinfo
+++ b/lang/gcc-devel/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc-devel/files/alpha-freebsd.h b/lang/gcc-devel/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc-devel/files/alpha-freebsd.h
+++ b/lang/gcc-devel/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc-devel/files/patch-ad b/lang/gcc-devel/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc-devel/files/patch-ad
+++ b/lang/gcc-devel/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc-devel/files/patch-af b/lang/gcc-devel/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc-devel/files/patch-af
+++ b/lang/gcc-devel/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc-devel/files/patch-ak b/lang/gcc-devel/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc-devel/files/patch-ak
+++ b/lang/gcc-devel/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc-devel/files/patch-al b/lang/gcc-devel/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc-devel/files/patch-al
+++ b/lang/gcc-devel/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc-devel/files/patch-bc b/lang/gcc-devel/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc-devel/files/patch-bc
+++ b/lang/gcc-devel/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc-devel/files/patch-fa b/lang/gcc-devel/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc-devel/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc-devel/files/patch-fb b/lang/gcc-devel/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc-devel/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc-devel/files/patch-fc b/lang/gcc-devel/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc-devel/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc-devel/files/patch-va b/lang/gcc-devel/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc-devel/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/gcc-devel/pkg-comment b/lang/gcc-devel/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc-devel/pkg-comment
+++ b/lang/gcc-devel/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc-devel/pkg-plist b/lang/gcc-devel/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc-devel/pkg-plist
+++ b/lang/gcc-devel/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc-ooo/Makefile
+++ b/lang/gcc-ooo/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc-ooo/distinfo
+++ b/lang/gcc-ooo/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc-ooo/files/alpha-freebsd.h b/lang/gcc-ooo/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc-ooo/files/alpha-freebsd.h
+++ b/lang/gcc-ooo/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc-ooo/files/patch-ad b/lang/gcc-ooo/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc-ooo/files/patch-ad
+++ b/lang/gcc-ooo/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc-ooo/files/patch-af b/lang/gcc-ooo/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc-ooo/files/patch-af
+++ b/lang/gcc-ooo/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc-ooo/files/patch-ak b/lang/gcc-ooo/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc-ooo/files/patch-ak
+++ b/lang/gcc-ooo/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc-ooo/files/patch-al b/lang/gcc-ooo/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc-ooo/files/patch-al
+++ b/lang/gcc-ooo/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc-ooo/files/patch-bc b/lang/gcc-ooo/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc-ooo/files/patch-bc
+++ b/lang/gcc-ooo/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc-ooo/files/patch-fa b/lang/gcc-ooo/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc-ooo/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc-ooo/files/patch-fb b/lang/gcc-ooo/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc-ooo/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc-ooo/files/patch-fc b/lang/gcc-ooo/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc-ooo/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc-ooo/files/patch-va b/lang/gcc-ooo/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc-ooo/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/gcc-ooo/pkg-comment b/lang/gcc-ooo/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc-ooo/pkg-comment
+++ b/lang/gcc-ooo/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc-ooo/pkg-plist b/lang/gcc-ooo/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc-ooo/pkg-plist
+++ b/lang/gcc-ooo/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc/Makefile
+++ b/lang/gcc/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc/distinfo
+++ b/lang/gcc/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc/files/alpha-freebsd.h b/lang/gcc/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc/files/alpha-freebsd.h
+++ b/lang/gcc/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc/files/patch-ad b/lang/gcc/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc/files/patch-ad
+++ b/lang/gcc/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc/files/patch-af b/lang/gcc/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc/files/patch-af
+++ b/lang/gcc/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc/files/patch-ak b/lang/gcc/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc/files/patch-ak
+++ b/lang/gcc/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc/files/patch-al b/lang/gcc/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc/files/patch-al
+++ b/lang/gcc/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc/files/patch-bc b/lang/gcc/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc/files/patch-bc
+++ b/lang/gcc/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc/files/patch-fa b/lang/gcc/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc/files/patch-fb b/lang/gcc/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc/files/patch-fc b/lang/gcc/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc/files/patch-va b/lang/gcc/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc/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/gcc/pkg-comment b/lang/gcc/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc/pkg-comment
+++ b/lang/gcc/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc/pkg-plist b/lang/gcc/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc/pkg-plist
+++ b/lang/gcc/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc30/Makefile b/lang/gcc30/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc30/Makefile
+++ b/lang/gcc30/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc30/distinfo b/lang/gcc30/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc30/distinfo
+++ b/lang/gcc30/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc30/files/alpha-freebsd.h b/lang/gcc30/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc30/files/alpha-freebsd.h
+++ b/lang/gcc30/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc30/files/patch-ad b/lang/gcc30/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc30/files/patch-ad
+++ b/lang/gcc30/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc30/files/patch-af b/lang/gcc30/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc30/files/patch-af
+++ b/lang/gcc30/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc30/files/patch-ak b/lang/gcc30/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc30/files/patch-ak
+++ b/lang/gcc30/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc30/files/patch-al b/lang/gcc30/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc30/files/patch-al
+++ b/lang/gcc30/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc30/files/patch-bc b/lang/gcc30/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc30/files/patch-bc
+++ b/lang/gcc30/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc30/files/patch-fa b/lang/gcc30/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc30/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc30/files/patch-fb b/lang/gcc30/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc30/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc30/files/patch-fc b/lang/gcc30/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc30/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc30/files/patch-va b/lang/gcc30/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc30/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/gcc30/pkg-comment b/lang/gcc30/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc30/pkg-comment
+++ b/lang/gcc30/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc30/pkg-plist b/lang/gcc30/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc30/pkg-plist
+++ b/lang/gcc30/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc31/Makefile b/lang/gcc31/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc31/Makefile
+++ b/lang/gcc31/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc31/distinfo b/lang/gcc31/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc31/distinfo
+++ b/lang/gcc31/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc31/files/alpha-freebsd.h b/lang/gcc31/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc31/files/alpha-freebsd.h
+++ b/lang/gcc31/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc31/files/patch-ad b/lang/gcc31/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc31/files/patch-ad
+++ b/lang/gcc31/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc31/files/patch-af b/lang/gcc31/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc31/files/patch-af
+++ b/lang/gcc31/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc31/files/patch-ak b/lang/gcc31/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc31/files/patch-ak
+++ b/lang/gcc31/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc31/files/patch-al b/lang/gcc31/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc31/files/patch-al
+++ b/lang/gcc31/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc31/files/patch-bc b/lang/gcc31/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc31/files/patch-bc
+++ b/lang/gcc31/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc31/files/patch-fa b/lang/gcc31/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc31/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc31/files/patch-fb b/lang/gcc31/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc31/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc31/files/patch-fc b/lang/gcc31/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc31/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc31/files/patch-va b/lang/gcc31/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc31/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/gcc31/pkg-comment b/lang/gcc31/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc31/pkg-comment
+++ b/lang/gcc31/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc31/pkg-plist b/lang/gcc31/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc31/pkg-plist
+++ b/lang/gcc31/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc32/Makefile b/lang/gcc32/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc32/Makefile
+++ b/lang/gcc32/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc32/distinfo b/lang/gcc32/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc32/distinfo
+++ b/lang/gcc32/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc32/files/alpha-freebsd.h b/lang/gcc32/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc32/files/alpha-freebsd.h
+++ b/lang/gcc32/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc32/files/patch-ad b/lang/gcc32/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc32/files/patch-ad
+++ b/lang/gcc32/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc32/files/patch-af b/lang/gcc32/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc32/files/patch-af
+++ b/lang/gcc32/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc32/files/patch-ak b/lang/gcc32/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc32/files/patch-ak
+++ b/lang/gcc32/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc32/files/patch-al b/lang/gcc32/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc32/files/patch-al
+++ b/lang/gcc32/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc32/files/patch-bc b/lang/gcc32/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc32/files/patch-bc
+++ b/lang/gcc32/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc32/files/patch-fa b/lang/gcc32/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc32/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc32/files/patch-fb b/lang/gcc32/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc32/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc32/files/patch-fc b/lang/gcc32/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc32/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc32/files/patch-va b/lang/gcc32/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc32/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/gcc32/pkg-comment b/lang/gcc32/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc32/pkg-comment
+++ b/lang/gcc32/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc32/pkg-plist b/lang/gcc32/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc32/pkg-plist
+++ b/lang/gcc32/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc33/Makefile b/lang/gcc33/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc33/Makefile
+++ b/lang/gcc33/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc33/distinfo b/lang/gcc33/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc33/distinfo
+++ b/lang/gcc33/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc33/files/alpha-freebsd.h b/lang/gcc33/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc33/files/alpha-freebsd.h
+++ b/lang/gcc33/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc33/files/patch-ad b/lang/gcc33/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc33/files/patch-ad
+++ b/lang/gcc33/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc33/files/patch-af b/lang/gcc33/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc33/files/patch-af
+++ b/lang/gcc33/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc33/files/patch-ak b/lang/gcc33/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc33/files/patch-ak
+++ b/lang/gcc33/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc33/files/patch-al b/lang/gcc33/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc33/files/patch-al
+++ b/lang/gcc33/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc33/files/patch-bc b/lang/gcc33/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc33/files/patch-bc
+++ b/lang/gcc33/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc33/files/patch-fa b/lang/gcc33/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc33/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc33/files/patch-fb b/lang/gcc33/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc33/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc33/files/patch-fc b/lang/gcc33/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc33/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc33/files/patch-va b/lang/gcc33/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc33/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/gcc33/pkg-comment b/lang/gcc33/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc33/pkg-comment
+++ b/lang/gcc33/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc33/pkg-plist b/lang/gcc33/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc33/pkg-plist
+++ b/lang/gcc33/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc34/Makefile b/lang/gcc34/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc34/Makefile
+++ b/lang/gcc34/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc34/distinfo
+++ b/lang/gcc34/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc34/files/alpha-freebsd.h b/lang/gcc34/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc34/files/alpha-freebsd.h
+++ b/lang/gcc34/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc34/files/patch-ad b/lang/gcc34/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc34/files/patch-ad
+++ b/lang/gcc34/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc34/files/patch-af b/lang/gcc34/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc34/files/patch-af
+++ b/lang/gcc34/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc34/files/patch-ak b/lang/gcc34/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc34/files/patch-ak
+++ b/lang/gcc34/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc34/files/patch-al b/lang/gcc34/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc34/files/patch-al
+++ b/lang/gcc34/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc34/files/patch-bc b/lang/gcc34/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc34/files/patch-bc
+++ b/lang/gcc34/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc34/files/patch-fa b/lang/gcc34/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc34/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc34/files/patch-fb b/lang/gcc34/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc34/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc34/files/patch-fc b/lang/gcc34/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc34/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc34/files/patch-va b/lang/gcc34/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc34/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/gcc34/pkg-comment b/lang/gcc34/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc34/pkg-comment
+++ b/lang/gcc34/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc34/pkg-plist b/lang/gcc34/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc34/pkg-plist
+++ b/lang/gcc34/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc35/Makefile b/lang/gcc35/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc35/Makefile
+++ b/lang/gcc35/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc35/distinfo b/lang/gcc35/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc35/distinfo
+++ b/lang/gcc35/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc35/files/alpha-freebsd.h b/lang/gcc35/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc35/files/alpha-freebsd.h
+++ b/lang/gcc35/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc35/files/patch-ad b/lang/gcc35/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc35/files/patch-ad
+++ b/lang/gcc35/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc35/files/patch-af b/lang/gcc35/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc35/files/patch-af
+++ b/lang/gcc35/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc35/files/patch-ak b/lang/gcc35/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc35/files/patch-ak
+++ b/lang/gcc35/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc35/files/patch-al b/lang/gcc35/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc35/files/patch-al
+++ b/lang/gcc35/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc35/files/patch-bc b/lang/gcc35/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc35/files/patch-bc
+++ b/lang/gcc35/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc35/files/patch-fa b/lang/gcc35/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc35/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc35/files/patch-fb b/lang/gcc35/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc35/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc35/files/patch-fc b/lang/gcc35/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc35/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc35/files/patch-va b/lang/gcc35/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc35/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/gcc35/pkg-comment b/lang/gcc35/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc35/pkg-comment
+++ b/lang/gcc35/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc35/pkg-plist b/lang/gcc35/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc35/pkg-plist
+++ b/lang/gcc35/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc40/Makefile b/lang/gcc40/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc40/Makefile
+++ b/lang/gcc40/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc40/distinfo
+++ b/lang/gcc40/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc40/files/alpha-freebsd.h b/lang/gcc40/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc40/files/alpha-freebsd.h
+++ b/lang/gcc40/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc40/files/patch-ad b/lang/gcc40/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc40/files/patch-ad
+++ b/lang/gcc40/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc40/files/patch-af b/lang/gcc40/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc40/files/patch-af
+++ b/lang/gcc40/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc40/files/patch-ak b/lang/gcc40/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc40/files/patch-ak
+++ b/lang/gcc40/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc40/files/patch-al b/lang/gcc40/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc40/files/patch-al
+++ b/lang/gcc40/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc40/files/patch-bc b/lang/gcc40/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc40/files/patch-bc
+++ b/lang/gcc40/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc40/files/patch-fa b/lang/gcc40/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc40/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc40/files/patch-fb b/lang/gcc40/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc40/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc40/files/patch-fc b/lang/gcc40/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc40/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc40/files/patch-va b/lang/gcc40/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc40/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/gcc40/pkg-comment b/lang/gcc40/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc40/pkg-comment
+++ b/lang/gcc40/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc40/pkg-plist b/lang/gcc40/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc40/pkg-plist
+++ b/lang/gcc40/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc41/Makefile b/lang/gcc41/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc41/Makefile
+++ b/lang/gcc41/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc41/distinfo b/lang/gcc41/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc41/distinfo
+++ b/lang/gcc41/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc41/files/alpha-freebsd.h b/lang/gcc41/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc41/files/alpha-freebsd.h
+++ b/lang/gcc41/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc41/files/patch-ad b/lang/gcc41/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc41/files/patch-ad
+++ b/lang/gcc41/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc41/files/patch-af b/lang/gcc41/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc41/files/patch-af
+++ b/lang/gcc41/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc41/files/patch-ak b/lang/gcc41/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc41/files/patch-ak
+++ b/lang/gcc41/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc41/files/patch-al b/lang/gcc41/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc41/files/patch-al
+++ b/lang/gcc41/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc41/files/patch-bc b/lang/gcc41/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc41/files/patch-bc
+++ b/lang/gcc41/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc41/files/patch-fa b/lang/gcc41/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc41/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc41/files/patch-fb b/lang/gcc41/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc41/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc41/files/patch-fc b/lang/gcc41/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc41/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc41/files/patch-va b/lang/gcc41/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc41/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/gcc41/pkg-comment b/lang/gcc41/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc41/pkg-comment
+++ b/lang/gcc41/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc41/pkg-plist b/lang/gcc41/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc41/pkg-plist
+++ b/lang/gcc41/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc42/Makefile b/lang/gcc42/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc42/Makefile
+++ b/lang/gcc42/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc42/distinfo
+++ b/lang/gcc42/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc42/files/alpha-freebsd.h b/lang/gcc42/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc42/files/alpha-freebsd.h
+++ b/lang/gcc42/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc42/files/patch-ad b/lang/gcc42/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc42/files/patch-ad
+++ b/lang/gcc42/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc42/files/patch-af b/lang/gcc42/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc42/files/patch-af
+++ b/lang/gcc42/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc42/files/patch-ak b/lang/gcc42/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc42/files/patch-ak
+++ b/lang/gcc42/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc42/files/patch-al b/lang/gcc42/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc42/files/patch-al
+++ b/lang/gcc42/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc42/files/patch-bc b/lang/gcc42/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc42/files/patch-bc
+++ b/lang/gcc42/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc42/files/patch-fa b/lang/gcc42/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc42/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc42/files/patch-fb b/lang/gcc42/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc42/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc42/files/patch-fc b/lang/gcc42/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc42/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc42/files/patch-va b/lang/gcc42/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc42/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/gcc42/pkg-comment b/lang/gcc42/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc42/pkg-comment
+++ b/lang/gcc42/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc42/pkg-plist b/lang/gcc42/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc42/pkg-plist
+++ b/lang/gcc42/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc43/Makefile b/lang/gcc43/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc43/Makefile
+++ b/lang/gcc43/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc43/distinfo b/lang/gcc43/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc43/distinfo
+++ b/lang/gcc43/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc43/files/alpha-freebsd.h b/lang/gcc43/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc43/files/alpha-freebsd.h
+++ b/lang/gcc43/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc43/files/patch-ad b/lang/gcc43/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc43/files/patch-ad
+++ b/lang/gcc43/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc43/files/patch-af b/lang/gcc43/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc43/files/patch-af
+++ b/lang/gcc43/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc43/files/patch-ak b/lang/gcc43/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc43/files/patch-ak
+++ b/lang/gcc43/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc43/files/patch-al b/lang/gcc43/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc43/files/patch-al
+++ b/lang/gcc43/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc43/files/patch-bc b/lang/gcc43/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc43/files/patch-bc
+++ b/lang/gcc43/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc43/files/patch-fa b/lang/gcc43/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc43/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc43/files/patch-fb b/lang/gcc43/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc43/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc43/files/patch-fc b/lang/gcc43/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc43/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc43/files/patch-va b/lang/gcc43/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc43/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/gcc43/pkg-comment b/lang/gcc43/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc43/pkg-comment
+++ b/lang/gcc43/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc43/pkg-plist b/lang/gcc43/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc43/pkg-plist
+++ b/lang/gcc43/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc44/Makefile b/lang/gcc44/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc44/Makefile
+++ b/lang/gcc44/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc44/distinfo b/lang/gcc44/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc44/distinfo
+++ b/lang/gcc44/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc44/files/alpha-freebsd.h b/lang/gcc44/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc44/files/alpha-freebsd.h
+++ b/lang/gcc44/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc44/files/patch-ad b/lang/gcc44/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc44/files/patch-ad
+++ b/lang/gcc44/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc44/files/patch-af b/lang/gcc44/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc44/files/patch-af
+++ b/lang/gcc44/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc44/files/patch-ak b/lang/gcc44/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc44/files/patch-ak
+++ b/lang/gcc44/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc44/files/patch-al b/lang/gcc44/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc44/files/patch-al
+++ b/lang/gcc44/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc44/files/patch-bc b/lang/gcc44/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc44/files/patch-bc
+++ b/lang/gcc44/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc44/files/patch-fa b/lang/gcc44/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc44/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc44/files/patch-fb b/lang/gcc44/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc44/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc44/files/patch-fc b/lang/gcc44/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc44/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc44/files/patch-va b/lang/gcc44/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc44/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/gcc44/pkg-comment b/lang/gcc44/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc44/pkg-comment
+++ b/lang/gcc44/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc44/pkg-plist b/lang/gcc44/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc44/pkg-plist
+++ b/lang/gcc44/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc45/Makefile b/lang/gcc45/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc45/Makefile
+++ b/lang/gcc45/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc45/distinfo
+++ b/lang/gcc45/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc45/files/alpha-freebsd.h b/lang/gcc45/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc45/files/alpha-freebsd.h
+++ b/lang/gcc45/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc45/files/patch-ad b/lang/gcc45/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc45/files/patch-ad
+++ b/lang/gcc45/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc45/files/patch-af b/lang/gcc45/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc45/files/patch-af
+++ b/lang/gcc45/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc45/files/patch-ak b/lang/gcc45/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc45/files/patch-ak
+++ b/lang/gcc45/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc45/files/patch-al b/lang/gcc45/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc45/files/patch-al
+++ b/lang/gcc45/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc45/files/patch-bc b/lang/gcc45/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc45/files/patch-bc
+++ b/lang/gcc45/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc45/files/patch-fa b/lang/gcc45/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc45/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc45/files/patch-fb b/lang/gcc45/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc45/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc45/files/patch-fc b/lang/gcc45/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc45/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc45/files/patch-va b/lang/gcc45/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc45/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/gcc45/pkg-comment b/lang/gcc45/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc45/pkg-comment
+++ b/lang/gcc45/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc45/pkg-plist b/lang/gcc45/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc45/pkg-plist
+++ b/lang/gcc45/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc46/Makefile b/lang/gcc46/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc46/Makefile
+++ b/lang/gcc46/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc46/distinfo b/lang/gcc46/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc46/distinfo
+++ b/lang/gcc46/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc46/files/alpha-freebsd.h b/lang/gcc46/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc46/files/alpha-freebsd.h
+++ b/lang/gcc46/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc46/files/patch-ad b/lang/gcc46/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc46/files/patch-ad
+++ b/lang/gcc46/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc46/files/patch-af b/lang/gcc46/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc46/files/patch-af
+++ b/lang/gcc46/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc46/files/patch-ak b/lang/gcc46/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc46/files/patch-ak
+++ b/lang/gcc46/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc46/files/patch-al b/lang/gcc46/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc46/files/patch-al
+++ b/lang/gcc46/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc46/files/patch-bc b/lang/gcc46/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc46/files/patch-bc
+++ b/lang/gcc46/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc46/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc46/files/patch-fb b/lang/gcc46/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc46/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc46/files/patch-fc b/lang/gcc46/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc46/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc46/files/patch-va b/lang/gcc46/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc46/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/gcc46/pkg-comment b/lang/gcc46/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc46/pkg-comment
+++ b/lang/gcc46/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc46/pkg-plist b/lang/gcc46/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc46/pkg-plist
+++ b/lang/gcc46/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc47/Makefile
+++ b/lang/gcc47/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc47/distinfo
+++ b/lang/gcc47/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc47/files/alpha-freebsd.h b/lang/gcc47/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc47/files/alpha-freebsd.h
+++ b/lang/gcc47/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc47/files/patch-ad b/lang/gcc47/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc47/files/patch-ad
+++ b/lang/gcc47/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc47/files/patch-af b/lang/gcc47/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc47/files/patch-af
+++ b/lang/gcc47/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc47/files/patch-ak b/lang/gcc47/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc47/files/patch-ak
+++ b/lang/gcc47/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc47/files/patch-al b/lang/gcc47/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc47/files/patch-al
+++ b/lang/gcc47/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc47/files/patch-bc b/lang/gcc47/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc47/files/patch-bc
+++ b/lang/gcc47/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc47/files/patch-fa b/lang/gcc47/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc47/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc47/files/patch-fb b/lang/gcc47/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc47/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc47/files/patch-fc b/lang/gcc47/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc47/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc47/files/patch-va b/lang/gcc47/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc47/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/gcc47/pkg-comment b/lang/gcc47/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc47/pkg-comment
+++ b/lang/gcc47/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc47/pkg-plist b/lang/gcc47/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc47/pkg-plist
+++ b/lang/gcc47/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile
index 2deaa19..2a41e98 100644
--- a/lang/gcc48/Makefile
+++ b/lang/gcc48/Makefile
@@ -1,42 +1,44 @@
-# ex:ts=8
-# Ports collection makefile for: egcs
+# ex:ts=8
+# Ports collection makefile for: egcs
# Version required: 1998-09-14
# Date created: 9 Jan 1998
# Whom: John Polstra <jdp@polstra.com>
#
-# $Id: Makefile,v 1.54 1999/04/08 19:05:43 billf Exp $
+# $Id: Makefile,v 1.35 1998/10/01 21:40:03 obrien Exp $
#
-DISTNAME= egcs-1.1.2
+SNAPDATE= 1999-04-18
+SNAPVER= ${SNAPDATE:S/-//g}
+
+DISTNAME= egcs-${SNAPVER}
+PKGNAME= egcs-devel-${SNAPVER}
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/ftp.cygnus.com/egcs/snapshots/${SNAPDATE}/ \
+ ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.nluug.nl/pub/languages/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
+ ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/ \
+ ftp://cambridge.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+DISTFILES= egcs-chill-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-core-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g++-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-g77-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-java-${SNAPVER}${EXTRACT_SUFX} \
+ egcs-objc-${SNAPVER}${EXTRACT_SUFX}
MAINTAINER= obrien@FreeBSD.org
-WWW_SITE= http://egcs.cygnus.com/
-
-FORBIDDEN= repository copy of lang/egcs, awaiting upgrade
+WWW_SITE= http://egcs.cygnus.com
-USE_BZIP2= yes
+NO_CDROM= 'dated material'
.include <bsd.port.pre.mk>
-EGCS_REV= egcs-2.91.66
-LIBSTDCPP_REV= 2.9.0
+EGCS_REV= egcs-2.93.19
+LIBSTDCPP_REV= 4
.if ${PORTOBJFORMAT} == "elf"
-.if ${MACHINE_ARCH} == "i386"
PLIST= ${WRKDIR}/PLIST
-.endif
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL}
@@ -51,14 +53,13 @@ CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \
CONFIGURE_ARGS+= --enable-shared
.endif
ALL_TARGET= bootstrap
-MAN1= cccp.1 g++.1 g77.1 gcc.1
+MAN1= cccp.1 eg++.1 eg77.1 egcc.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
+ ${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.h ${WRKSRC}/gcc/config/alpha/freebsd.h
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -90,12 +91,17 @@ post-install:
${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}/bin/gcc ${PREFIX}/bin/egcc
+ ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++
+ ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/eg77
+ ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/eg++filt
${MV} ${PREFIX}/lib/libiberty.a \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
- ${MV} -f ${PREFIX}/lib/libstdc++.a \
+ ${MV} -f ${PREFIX}/lib/libstdc++.a.${LIBSTDCPP_REV} \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a
+ ${MV} ${PREFIX}/man/man1/gcc.1 ${PREFIX}/man/man1/egcc.1
+ ${MV} ${PREFIX}/man/man1/g++.1 ${PREFIX}/man/man1/eg++.1
+ ${MV} ${PREFIX}/man/man1/g77.1 ${PREFIX}/man/man1/eg77.1
.if defined(WANT_SHAREDLIBS)
${MV} -f ${PREFIX}/lib/libstdc++.so* \
${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}
diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo
index 5566565..8dfe86d 100644
--- a/lang/gcc48/distinfo
+++ b/lang/gcc48/distinfo
@@ -1,4 +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-chill-19990418.tar.gz) = 618bced7973ebb4cac38b720188ff6dd
+MD5 (egcs-core-19990418.tar.gz) = 5d3e9993c0afbd9dbb0cf769bf6a3ef2
+MD5 (egcs-g++-19990418.tar.gz) = ac03cfacb1394bcb864dcac471a176e5
+MD5 (egcs-g77-19990418.tar.gz) = 53009da04ff99de463a21883a892a5c4
+MD5 (egcs-java-19990418.tar.gz) = 43c7206a22a27bd831756132081d2c01
+MD5 (egcs-objc-19990418.tar.gz) = a9d05ce441dd7499b05a9ec8a7ebcf2f
diff --git a/lang/gcc48/files/alpha-freebsd.h b/lang/gcc48/files/alpha-freebsd.h
index 60a1f07..e6f81cc 100644
--- a/lang/gcc48/files/alpha-freebsd.h
+++ b/lang/gcc48/files/alpha-freebsd.h
@@ -52,7 +52,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D__alpha__ -D__alpha -Acpu(alpha) -Amachine(alpha) " \
-FBSD_CPP_PREDEFINES \
+CPP_FBSD_PREDEFINES \
SUB_CPP_PREDEFINES
/* Make gcc agree with <machine/ansi.h> */
diff --git a/lang/gcc48/files/patch-ad b/lang/gcc48/files/patch-ad
index bea070d..dcddb18 100644
--- a/lang/gcc48/files/patch-ad
+++ b/lang/gcc48/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 Mar 23 13:34:48 1999
++++ gcc/config/i386/freebsd-aout.h Mon Apr 19 15:10:47 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,7 +85,7 @@
/* 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 @@
+@@ -246,29 +246,4 @@
"%{shared:c++rt0.o%s} \
%{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}"
diff --git a/lang/gcc48/files/patch-af b/lang/gcc48/files/patch-af
index c1f1ba0..88bf144 100644
--- a/lang/gcc48/files/patch-af
+++ b/lang/gcc48/files/patch-af
@@ -1,30 +1,22 @@
---- 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 @@
+--- gcc/config/i386/freebsd.h.orig Tue Feb 16 15:51:31 1999
++++ gcc/config/i386/freebsd.h Mon Apr 19 09:22:46 1999
+@@ -21,6 +21,15 @@
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
+
++/* Use stabs instead of DWARF debug format. */
++#undef PREFERRED_DEBUGGING_TYPE
++#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
++#include "svr4.h"
++
+/* 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 @@
+@@ -113,22 +122,19 @@
: ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \
: (-1))
@@ -51,20 +43,17 @@
} \
}
-@@ -145,26 +136,16 @@
+@@ -145,27 +151,31 @@
#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} */
-
- #undef LIB_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
@@ -73,13 +62,78 @@
-#define LIB_SPEC \
- "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \
- %{!ggdb:-lc} %{ggdb:-lg}}"
--#else
- #define LIB_SPEC \
++#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 LIB_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}}}"
++#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 }}}"
++
++#undef ASM_SPEC
++#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
++
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
for the special GCC options -static and -shared, which allow us to
+ link things in one of these three modes by applying the appropriate
+@@ -181,13 +191,23 @@
+ done. */
+
+ #undef LINK_SPEC
+-#define LINK_SPEC "-m elf_i386 %{shared:-shared} \
+- %{!shared: \
+- %{!ibcs: \
++#define LINK_SPEC "\
++ %{p:%e`-p' not supported; use `-pg' and gprof(1)} \
++ %{maout: %{shared:-Bshareable} \
++ %{!shared:%{!nostdlib:%{!r:%{!e*:-e start}}} -dc -dp %{static:-Bstatic} \
++ %{pg:-Bstatic} %{Z}} \
++ %{assert*} %{R*}} \
++ %{!maout: \
++ -m elf_i386 \
++ %{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:-static}}}"
++ %{rdynamic: -export-dynamic} \
++ %{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \
++ %{static:-Bstatic}}}"
+
+ /* Get perform_* macros to build libgcc.a. */
+
+@@ -204,3 +224,15 @@
+ else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \
+ }
+ #endif
++
++#undef STARTFILE_SPEC
++#define STARTFILE_SPEC "\
++ %{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}}"
++
++#undef ENDFILE_SPEC
++#define ENDFILE_SPEC \
++ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
diff --git a/lang/gcc48/files/patch-ak b/lang/gcc48/files/patch-ak
index 2e54bee..a1c26db 100644
--- a/lang/gcc48/files/patch-ak
+++ b/lang/gcc48/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 Sun Apr 18 02:33:12 1999
++++ gcc/configure Mon Apr 19 15:16:14 1999
+@@ -3022,6 +3022,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,9 +14,9 @@
+ 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"
+@@ -3500,19 +3509,19 @@
# Next line turned off because both 386BSD and BSD/386 use GNU ld.
# use_collect2=yes
;;
@@ -24,26 +24,22 @@
- 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
++ tmake_file=t-freebsd
++ ;;
++ i[34567]86-*-freebsd*)
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ 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
;;
i[34567]86-*-netbsd*)
tm_file=i386/netbsd.h
diff --git a/lang/gcc48/files/patch-al b/lang/gcc48/files/patch-al
index c8a1951..3b9fb19 100644
--- a/lang/gcc48/files/patch-al
+++ b/lang/gcc48/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 Wed Apr 14 18:50:50 1999
++++ gcc/configure.in Mon Apr 19 15:16:14 1999
+@@ -606,6 +606,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,37 @@
+ 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"
+@@ -1117,22 +1126,22 @@
# use_collect2=yes
;;
-- i[[34567]]86-*-freebsdelf*)
+ changequote(,)dnl
+- i[34567]86-*-freebsdelf*)
++ i[34567]86-*-freebsdaout*)
+ changequote([,])dnl
- 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
++ tmake_file=t-freebsd
++ ;;
++changequote(,)dnl
++ i[34567]86-*-freebsd*)
++changequote([,])dnl
++ tm_file="i386/i386.h i386/att.h i386/freebsd.h i386/perform.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"
+ 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*)
+ gas=yes
+ gnu_ld=yes
+ stabs=yes
+- ;;
+-changequote(,)dnl
+- 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
-+ 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
+ changequote(,)dnl
+ i[34567]86-*-netbsd*)
diff --git a/lang/gcc48/files/patch-bc b/lang/gcc48/files/patch-bc
index c6faefa..e0198b2 100644
--- a/lang/gcc48/files/patch-bc
+++ b/lang/gcc48/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 Fri Apr 2 06:17:48 1999
++++ libstdc++/Makefile.in Sun Apr 18 16:57:55 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 = 4
+ INTERFACE = 2
- 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 ; \
+@@ -335,11 +336,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/gcc48/files/patch-fa b/lang/gcc48/files/patch-fa
new file mode 100644
index 0000000..7f5e0e6
--- /dev/null
+++ b/lang/gcc48/files/patch-fa
@@ -0,0 +1,232 @@
+--- 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));
+
+ /* 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;
++ int null_format_ok;
+ enum format_type format_type;
+ tree argument;
+ int arg_num;
+@@ -682,7 +683,7 @@
+
+ if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
+ {
+- error ("unrecognized format specifier");
++ error_with_decl (decl, "unrecognized format specifier");
+ continue;
+ }
+ else
+@@ -690,12 +691,26 @@
+ char *p = IDENTIFIER_POINTER (format_type_id);
+
+ if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
++ {
++ format_type = printf_format_type;
++ null_format_ok = 0;
++ }
++ else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__"))
++ {
+ format_type = printf_format_type;
++ null_format_ok = 1;
++ }
+ else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__"))
++ {
+ format_type = scanf_format_type;
++ null_format_ok = 0;
++ }
+ else if (!strcmp (p, "strftime")
+ || !strcmp (p, "__strftime__"))
++ {
+ format_type = strftime_format_type;
++ null_format_ok = 0;
++ }
+ else
+ {
+ error ("`%s' is an unrecognized format function type", p);
+@@ -766,7 +781,8 @@
+
+ record_function_format (DECL_NAME (decl),
+ DECL_ASSEMBLER_NAME (decl),
+- format_type, format_num, first_arg_num);
++ format_type, null_format_ok, format_num,
++ first_arg_num);
+ break;
+ }
+
+@@ -1010,6 +1026,11 @@
+ } format_char_info;
+
+ static format_char_info print_char_table[] = {
++/* FreeBSD kernel extensions. */
++ { "D", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "b", 1, T_C, T_C, NULL, NULL, NULL, NULL, NULL, "-wp" },
++ { "rz", 0, NULL, T_I, T_I, T_L, NULL, NULL, NULL, "-wp0 +#" },
++#define unextended_print_char_table (print_char_table + 3)
+ { "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" },
+@@ -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.) */
++ int null_format_ok; /* TRUE if the format string may be NULL */
+ int format_num; /* number of format argument */
+ int first_arg_num; /* number of first arg (zero for varargs) */
+ } function_format_info;
+@@ -1102,25 +1124,25 @@
+ init_function_format_info ()
+ {
+ record_function_format (get_identifier ("printf"), NULL_TREE,
+- printf_format_type, 1, 2);
++ printf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sprintf"), NULL_TREE,
+- printf_format_type, 2, 3);
++ printf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("scanf"), NULL_TREE,
+- scanf_format_type, 1, 2);
++ scanf_format_type, 0, 1, 2);
+ record_function_format (get_identifier ("fscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("sscanf"), NULL_TREE,
+- scanf_format_type, 2, 3);
++ scanf_format_type, 0, 2, 3);
+ record_function_format (get_identifier ("vprintf"), NULL_TREE,
+- printf_format_type, 1, 0);
++ printf_format_type, 0, 1, 0);
+ record_function_format (get_identifier ("vfprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("vsprintf"), NULL_TREE,
+- printf_format_type, 2, 0);
++ printf_format_type, 0, 2, 0);
+ record_function_format (get_identifier ("strftime"), NULL_TREE,
+- strftime_format_type, 3, 0);
++ strftime_format_type, 0, 3, 0);
+
+ record_international_format (get_identifier ("gettext"), NULL_TREE, 1);
+ record_international_format (get_identifier ("dgettext"), NULL_TREE, 2);
+@@ -1137,11 +1159,12 @@
+ (e.g. for varargs such as vfprintf). */
+
+ static void
+-record_function_format (name, assembler_name, format_type,
++record_function_format (name, assembler_name, format_type, null_format_ok,
+ format_num, first_arg_num)
+ tree name;
+ tree assembler_name;
+ enum format_type format_type;
++ int null_format_ok;
+ int format_num;
+ int first_arg_num;
+ {
+@@ -1165,6 +1188,7 @@
+ }
+
+ info->format_type = format_type;
++ info->null_format_ok = null_format_ok;
+ info->format_num = format_num;
+ info->first_arg_num = first_arg_num;
+ }
+@@ -1314,7 +1338,8 @@
+
+ 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)
+@@ -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. */
++ /* XXX should we allow unsigned ints here? */
+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != integer_type_node)
+ &&
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+- warning ("field width is not type int (arg %d)", arg_num);
++ warning ("precision is not type int (arg %d)", arg_num);
+ }
+ }
+ else
+@@ -1535,6 +1561,53 @@
+ }
+ }
+ }
++ if (*format_chars == 'b')
++ {
++ /* There should be an int arg to control the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != integer_type_node)
++ &&
++ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
++ != unsigned_type_node))
++ {
++ warning ("bitmap is not type int (arg %d)", arg_num);
++ }
++ }
++ }
++ if (*format_chars == 'D')
++ {
++ /* There should be an unsigned char * arg before the string arg. */
++ if (params == 0)
++ {
++ warning (tfaff);
++ return;
++ }
++ if (info->first_arg_num != 0)
++ {
++ cur_param = TREE_VALUE (params);
++ params = TREE_CHAIN (params);
++ ++arg_num;
++ cur_type = TREE_TYPE (cur_param);
++ if (TREE_CODE (cur_type) != POINTER_TYPE
++ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type))
++ != unsigned_char_type_node)
++ {
++ warning ("ethernet address is not type unsigned char *"
++ " (arg %d)",
++ arg_num);
++ }
++ }
++ }
+
+ aflag = 0;
+
+@@ -1604,7 +1677,8 @@
+ switch (info->format_type)
+ {
+ case printf_format_type:
+- fci = print_char_table;
++ fci = flag_format_extensions ? print_char_table
++ : unextended_print_char_table;
+ break;
+ case scanf_format_type:
+ fci = scan_char_table;
diff --git a/lang/gcc48/files/patch-fb b/lang/gcc48/files/patch-fb
new file mode 100644
index 0000000..dae6d33
--- /dev/null
+++ b/lang/gcc48/files/patch-fb
@@ -0,0 +1,13 @@
+--- 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;
+
++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
++
++extern int flag_format_extensions;
++
+ /* Nonzero if generating code to do profiling. */
+
+ extern int profile_flag;
diff --git a/lang/gcc48/files/patch-fc b/lang/gcc48/files/patch-fc
new file mode 100644
index 0000000..a3f44c5
--- /dev/null
+++ b/lang/gcc48/files/patch-fc
@@ -0,0 +1,21 @@
+--- 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 @@
+
+ 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
+ {
+@@ -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,
+ "Suppress output of instruction numbers and line number notes in debugging dumps"},
+ {"instrument-functions", &flag_instrument_function_entry_exit, 1,
diff --git a/lang/gcc48/files/patch-va b/lang/gcc48/files/patch-va
new file mode 100644
index 0000000..48040ff
--- /dev/null
+++ b/lang/gcc48/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/gcc48/pkg-comment b/lang/gcc48/pkg-comment
index c23b395..e67c9eca 100644
--- a/lang/gcc48/pkg-comment
+++ b/lang/gcc48/pkg-comment
@@ -1 +1 @@
-EGCS enhanced version of the GNU compiler suite
+EGCS enhanced version of the GNU compiler suite (inprogress version)
diff --git a/lang/gcc48/pkg-plist b/lang/gcc48/pkg-plist
index 85e5aea..cee2e1f 100644
--- a/lang/gcc48/pkg-plist
+++ b/lang/gcc48/pkg-plist
@@ -1,17 +1,19 @@
-@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $
-bin/g++filt
-bin/g++
+@comment $Id: PLIST,v 1.19 1998/09/26 18:17:13 obrien Exp $
+bin/chill
+bin/eg++filt
bin/eg++
-bin/g77
-bin/gcc
+bin/eg77
bin/egcc
-bin/gcov
bin/%%GNU_HOST%%-gcc
+bin/gcj
+bin/gcjh
+bin/gcov
+bin/jv-scan
+bin/jcf-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
@@ -152,6 +154,8 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/g++/vector.h
@unexec install-info --delete %D/info/gcc.info %D/info/dir
@unexec install-info --delete %D/info/g77.info %D/info/dir
@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/chill.info %D/info/dir
+info/chill.info
info/cpp.info
info/cpp.info-1
info/cpp.info-2
@@ -200,6 +204,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
@@ -208,13 +213,16 @@ info/gcc.info-7
info/gcc.info-8
info/gcc.info-9
@exec [ -f %D/info/dir ] || sed -ne '1,/Menu:/p' /usr/share/info/dir > %D/info/dir
+@exec install-info %D/info/chill.info %D/info/dir
@exec install-info %D/info/cpp.info %D/info/dir
@exec install-info %D/info/g77.info %D/info/dir
@exec install-info %D/info/gcc.info %D/info/dir
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/SYSCALLS.c.X
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1chill
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/chillrt0.o
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2
@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o
@@ -244,6 +252,9 @@ 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/syslimits.h
lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/typeinfo
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jc1
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/jvgenmain
+lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/libchill.a
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
@@ -253,7 +264,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
OpenPOWER on IntegriCloud