diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 1999-05-24 17:13:07 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 1999-05-24 17:13:07 +0000 |
commit | 89227c0f8d217f9f3f3a9f2872886e2cd3bac159 (patch) | |
tree | 6240571a92ddb0c0a0b4993d3c9a620210339559 /lang/pgcc | |
parent | 327a8169c1fb04fe8d8ee0f0898a4697284ca7a5 (diff) | |
download | ports-89227c0f8d217f9f3f3a9f2872886e2cd3bac159.tar.gz ports-89227c0f8d217f9f3f3a9f2872886e2cd3bac159.zip |
Notes
Diffstat (limited to 'lang/pgcc')
-rw-r--r-- | lang/pgcc/Makefile | 97 | ||||
-rw-r--r-- | lang/pgcc/distinfo | 7 | ||||
-rw-r--r-- | lang/pgcc/files/freebsd.h | 120 | ||||
-rw-r--r-- | lang/pgcc/files/patch-ad | 79 | ||||
-rw-r--r-- | lang/pgcc/files/patch-af | 50 | ||||
-rw-r--r-- | lang/pgcc/files/patch-ah | 87 | ||||
-rw-r--r-- | lang/pgcc/files/patch-aj | 19 | ||||
-rw-r--r-- | lang/pgcc/files/patch-ak | 49 | ||||
-rw-r--r-- | lang/pgcc/files/patch-al | 49 | ||||
-rw-r--r-- | lang/pgcc/files/patch-am | 12 | ||||
-rw-r--r-- | lang/pgcc/files/patch-bc | 33 | ||||
-rw-r--r-- | lang/pgcc/files/patch-fa | 232 | ||||
-rw-r--r-- | lang/pgcc/files/patch-fb | 12 | ||||
-rw-r--r-- | lang/pgcc/files/patch-fc | 22 | ||||
-rw-r--r-- | lang/pgcc/pkg-plist | 18 |
15 files changed, 808 insertions, 78 deletions
diff --git a/lang/pgcc/Makefile b/lang/pgcc/Makefile index 7afcc459632b..1aa8e460f886 100644 --- a/lang/pgcc/Makefile +++ b/lang/pgcc/Makefile @@ -4,42 +4,47 @@ # Date created: 10 Dec 1998 # Whom: David O'Brien <obrien@NUXI.com> # -# $Id: Makefile,v 1.14 1999/02/03 11:11:52 asami Exp $ +# $Id: Makefile,v 1.15 1999/03/08 07:28:30 asami Exp $ # -DISTNAME= egcs-1.1.1 -PKGNAME= pgcc-1.1.1 +DISTNAME= egcs-1.1.2 +PKGNAME= pgcc-1.1.3 CATEGORIES= lang -MASTER_SITES= ftp://go.cygnus.com/pub/ftp.cygnus.com/egcs/releases/egcs-1.1.1/ \ - ftp://ftp.funet.fi/mirrors/ftp.cygnus.com/pub/egcs/releases/egcs-1.1.1/ \ - ftp://egcs.cygnus.com/pub/egcs/releases/egcs-1.1.1/ \ - ftp://ftp.fu-berlin.de/unix/languages/egcs/releases/egcs-1.1.1/ \ - ftp://cambridge.cygnus.com/pub/egcs/releases/egcs-1.1.1/ -EXTRACT_SUFX= .tar.bz2 +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} PATCH_SITES= http://www.gcc.ml.org/data/source/ \ ftp://ftp.goof.com/pub/pcg/source/ \ ftp://ftp.hitachi-sk.co.jp/pub/pentium-gcc/source/ \ ftp://ftp.fu-berlin.de/unix/languages/pgcc/source/ -PATCHFILES= egcs-1.1.1-pgcc-1.1.1.diff.gz +PATCHFILES= egcs-1.1.2-pgcc-1.1.3.diff.gz MAINTAINER= obrien@FreeBSD.org +USE_BZIP2= yes + BUILD_DEPENDS= autoconf:${PORTSDIR}/devel/autoconf USE_BZIP2= yes .include <bsd.port.pre.mk> -EGCS_REV= pgcc-2.91.60 +EGCS_REV= pgcc-2.91.66 LIBSTDCPP_REV= 2.9.0 .if ${PORTOBJFORMAT} == "elf" -#GNUHOST= ${ARCH}-unknown-freebsdelf${OSREL} -GNUHOST= ${ARCH}-unknown-freebsdelf +PLIST= ${WRKDIR}/PLIST +CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} .else -#GNUHOST= ${ARCH}-unknown-freebsd${OSREL} -GNUHOST= ${ARCH}-unknown-freebsd +CONFIGURE_TARGET= ${ARCH}-portbld-freebsdaout${OSREL} .endif PATCH_DIST_STRIP?= -p1 @@ -47,44 +52,58 @@ PLIST_SUB= EGCS_REV=${EGCS_REV} GNU_HOST=${GNUHOST} GNU_CONFIGURE= yes USE_GMAKE= yes CONFIGURE_ARGS= --with-gnu-as --with-gnu-ld \ - --with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/include/g++ -CONFIGURE_TARGET= ${GNUHOST} + --with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/include/g++ +.if defined(WANT_SHAREDLIBS) +CONFIGURE_ARGS+= --enable-shared +.endif ALL_TARGET= bootstrap MAN1= cccp.1 g++.1 g77.1 gcc.1 +pre-patch: + @${MV} ${WRKSRC}/gcc/config/i386/t-freebsd ${WRKSRC}/gcc/config/ + @${MV} ${WRKSRC}/gcc/config/i386/freebsd.h ${WRKSRC}/gcc/config/i386/freebsd-aout.h + @${MV} ${WRKSRC}/gcc/config/i386/freebsd-elf.h ${WRKSRC}/gcc/config/i386/freebsd.h + pre-configure: - @(cd ${WRKSRC}/gcc/config/${ARCH}/ ; \ - MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ - ${MV} freebsd.h freebsd.h.in ; \ - ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" freebsd.h.in >freebsd.h ; \ - ${MV} freebsd-elf.h freebsd-elf.h.in ; \ - ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" freebsd-elf.h.in >freebsd-elf.h) + @(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \ + ${SED} -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" ${FILESDIR}/freebsd.h \ + >${WRKSRC}/gcc/config/freebsd.h ) +.if ${PORTOBJFORMAT} == "elf" && ${MACHINE_ARCH} == "i386" + @${SED} -e 's/^@comment ELF-only://' ${PKGDIR}/PLIST >${PLIST} +.endif pre-install: ${MKDIR} ${PREFIX}/info - ${TOUCH} ${PREFIX}/info/dir post-install: @${RM} -f ${PREFIX}/bin/c++ @${MV} -f ${PREFIX}/bin/c++filt ${PREFIX}/bin/g++filt @(for prog in ${PREFIX}/bin/gcc ${PREFIX}/bin/g++ \ - ${PREFIX}/bin/g++filt ${PREFIX}/bin/g77 ${PREFIX}/bin/gcov \ - ${PREFIX}/bin/protoize ${PREFIX}/bin/unprotoize \ - ${PREFIX}/bin/${GNUHOST}-gcc \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/cc1 \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/cc1obj \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/cc1plus \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/cpp \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/collect2 \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/f771 ; \ - do strip $$prog ; \ - done) - ln -f ${PREFIX}/bin/gcc ${PREFIX}/bin/egcc - ln -f ${PREFIX}/bin/g++ ${PREFIX}/bin/eg++ + ${PREFIX}/bin/g++filt ${PREFIX}/bin/g77 ${PREFIX}/bin/gcov \ + ${PREFIX}/bin/protoize ${PREFIX}/bin/unprotoize \ + ${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1 \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1obj \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cc1plus \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/cpp \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/collect2 \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/f771 ; \ + do \ + strip $$prog ; \ + done) + ${MV} ${PREFIX}/bin/gcc ${PREFIX}/bin/pgcc + ${MV} ${PREFIX}/bin/g++ ${PREFIX}/bin/pg++ + ${MV} ${PREFIX}/bin/g77 ${PREFIX}/bin/pg77 + ${MV} ${PREFIX}/bin/gcov ${PREFIX}/bin/pgcov + ${MV} ${PREFIX}/bin/g++filt ${PREFIX}/bin/pg++filt ${MV} ${PREFIX}/lib/libiberty.a \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV} + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV} ${MV} -f ${PREFIX}/lib/libstdc++.a \ - ${PREFIX}/lib/gcc-lib/${GNUHOST}/${EGCS_REV}/libstdc++.a + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/libstdc++.a +.if defined(WANT_SHAREDLIBS) + ${MV} -f ${PREFIX}/lib/libstdc++.so* \ + ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV} +.endif if [ ! -f ${PREFIX}/info/dir ]; then \ ${SED} -ne '1,/Menu:/p' /usr/share/info/dir > ${PREFIX}/info/dir; \ fi diff --git a/lang/pgcc/distinfo b/lang/pgcc/distinfo index ecd2e41b6135..c5d92deb8cc2 100644 --- a/lang/pgcc/distinfo +++ b/lang/pgcc/distinfo @@ -1,2 +1,5 @@ -MD5 (egcs-1.1.1.tar.bz2) = 854ed488f030075e4a4ac1fbedcb27fb -MD5 (egcs-1.1.1-pgcc-1.1.1.diff.gz) = 65b297ce711b7cc403843c4d72e020c1 +MD5 (egcs-core-1.1.2.tar.bz2) = ad12b8eb6014a3f4fd3fe7f9bd6df01d +MD5 (egcs-g++-1.1.2.tar.bz2) = defecf8027a98c18b0ecbff0ab970243 +MD5 (egcs-g77-1.1.2.tar.bz2) = d5e7e645896a549bdbdfebbb01bc3235 +MD5 (egcs-objc-1.1.2.tar.bz2) = 91e12ee2e12fa866aeec41174bcf1dfe +MD5 (egcs-1.1.2-pgcc-1.1.3.diff.gz) = 1b70b8cec9c5588ebd1108f45daebb60 diff --git a/lang/pgcc/files/freebsd.h b/lang/pgcc/files/freebsd.h new file mode 100644 index 000000000000..0ec7426b5f30 --- /dev/null +++ b/lang/pgcc/files/freebsd.h @@ -0,0 +1,120 @@ +/* Base configuration file for all FreeBSD targets. + Copyright (C) 1999 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* Common FreeBSD configuration. + All FreeBSD architectures should include this file, which will specify + their commonalities. + Adapted from /usr/src/contrib/gcc/config/i386/freebsd.h & + egcs/gcc/config/i386/freebsd-elf.h version by David O'Brien */ + + +/* Don't assume anything about the header files. */ +#define NO_IMPLICIT_EXTERN_C + +/* This defines which switch letters take arguments. On svr4, most of + the normal cases (defined in gcc.c) apply, and we also have -h* and + -z* options (for the linker). We have a slightly different mix. We + have -R (alias --rpath), no -z, --soname (-h), --assert etc. */ + +#undef SWITCH_TAKES_ARG +#define SWITCH_TAKES_ARG(CHAR) \ + ( (CHAR) == 'D' \ + || (CHAR) == 'U' \ + || (CHAR) == 'o' \ + || (CHAR) == 'e' \ + || (CHAR) == 'T' \ + || (CHAR) == 'u' \ + || (CHAR) == 'I' \ + || (CHAR) == 'm' \ + || (CHAR) == 'x' \ + || (CHAR) == 'L' \ + || (CHAR) == 'A' \ + || (CHAR) == 'V' \ + || (CHAR) == 'B' \ + || (CHAR) == 'b' \ + || (CHAR) == 'h' \ + || (CHAR) == 'z' /* ignored by ld */ \ + || (CHAR) == 'R') + +#undef WORD_SWITCH_TAKES_ARG +#define WORD_SWITCH_TAKES_ARG(STR) \ + (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \ + || !strcmp (STR, "rpath") || !strcmp (STR, "rpath-link") \ + || !strcmp (STR, "soname") || !strcmp (STR, "defsym") \ + || !strcmp (STR, "assert") || !strcmp (STR, "dynamic-linker")) + + +#define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) " + + +/* Code generation parameters. */ + +/* Don't default to pcc-struct-return, because gcc is the only compiler, and + we want to retain compatibility with older gcc versions. + (even though the svr4 ABI for the i386 says that records and unions are + returned in memory) */ +#define DEFAULT_PCC_STRUCT_RETURN 0 + +/* Ensure we the configuration knows our system correctly so we can link with + libraries compiled with the native cc. */ +#undef NO_DOLLAR_IN_LABEL + + +/* Miscellaneous parameters. */ + +/* Tell libgcc2.c that FreeBSD targets support atexit(3). */ +#define HAVE_ATEXIT + + +/* FREEBSD_NATIVE is defined when gcc is integrated into the FreeBSD + source tree so it can be configured appropriately without using + the GNU configure/build mechanism. */ + +#ifdef FREEBSD_NATIVE + +/* Look for the include files in the system-defined places. */ + +#define GPLUSPLUS_INCLUDE_DIR "/usr/include/g++" +#define GCC_INCLUDE_DIR "/usr/include" + +/* Now that GCC knows what the include path applies to, put the G++ one first. + C++ can now have include files that override the default C ones. */ +#define INCLUDE_DEFAULTS \ + { \ + { GPLUSPLUS_INCLUDE_DIR, "C++", 1, 1 }, \ + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \ + { 0, 0, 0, 0 } \ + } + +/* Under FreeBSD, the normal location of the compiler back ends is the + /usr/libexec directory. */ + +#define STANDARD_EXEC_PREFIX "/usr/libexec/" +#define TOOLDIR_BASE_PREFIX "/usr/libexec/" + +/* Under FreeBSD, the normal location of the various *crt*.o files is the + /usr/lib directory. */ + +#define STANDARD_STARTFILE_PREFIX "/usr/lib/" + +/* FreeBSD is 4.4BSD derived */ +#define bsd4_4 + +#endif /* FREEBSD_NATIVE */ diff --git a/lang/pgcc/files/patch-ad b/lang/pgcc/files/patch-ad index fa80120519f2..bea070deb344 100644 --- a/lang/pgcc/files/patch-ad +++ b/lang/pgcc/files/patch-ad @@ -1,6 +1,41 @@ ---- gcc/config/i386/freebsd.h.orig Tue Jun 30 15:52:18 1998 -+++ gcc/config/i386/freebsd.h Wed Oct 7 17:06:41 1998 -@@ -99,19 +99,18 @@ +--- gcc/config/i386/freebsd-aout.h.orig Mon Mar 1 14:47:33 1999 ++++ gcc/config/i386/freebsd-aout.h Sat Mar 20 00:27:02 1999 +@@ -20,6 +20,10 @@ + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + ++ ++/* 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 */ + +@@ -35,7 +39,7 @@ + #include "i386/perform.h" + + #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 @@ + 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. */ +-#define DEFAULT_PCC_STRUCT_RETURN 0 +- +-/* Ensure we the configuration knows our system correctly so we can link with +- libraries compiled with the native cc. */ +-#undef NO_DOLLAR_IN_LABEL + + /* 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 @@ /* Profiling routines, partially copied from i386/osfrose.h. */ @@ -23,7 +58,7 @@ fprintf (FILE, "\tcall mcount\n"); \ } \ } -@@ -129,6 +128,7 @@ +@@ -133,6 +128,7 @@ #define TYPE_ASM_OP ".type" #define SIZE_ASM_OP ".size" @@ -31,7 +66,7 @@ /* The following macro defines the format used to output the second operand of the .type assembler directive. Different svr4 assemblers -@@ -138,6 +138,12 @@ +@@ -142,6 +138,12 @@ #define TYPE_OPERAND_FMT "@%s" @@ -44,12 +79,34 @@ /* Write the extra assembler code needed to declare a function's result. Most svr4 assemblers don't require any special declaration of the result value, but there are exceptions. */ -@@ -239,6 +245,8 @@ - #define STARTFILE_SPEC \ +@@ -244,29 +246,4 @@ "%{shared:c++rt0.o%s} \ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}" -+ -+#define MD_STARTFILE_PREFIX "/usr/lib/aout/" - /* This is defined when gcc is compiled in the BSD-directory-tree, and must - * make up for the gap to all the stuff done in the GNU-makefiles. +-/* This is defined when gcc is compiled in the BSD-directory-tree, and must +- * make up for the gap to all the stuff done in the GNU-makefiles. +- */ +- +-#ifdef FREEBSD_NATIVE +- +-#define INCLUDE_DEFAULTS { \ +- { "/usr/include", 0, 0, 0 }, \ +- { "/usr/include/g++", "G++", 1, 1 }, \ +- { 0, 0, 0, 0} \ +- } +- +-#undef MD_EXEC_PREFIX +-#define MD_EXEC_PREFIX "/usr/libexec/" +- +-#undef STANDARD_STARTFILE_PREFIX +-#define STANDARD_STARTFILE_PREFIX "/usr/lib" +- +-#if 0 /* This is very wrong!!! */ +-#define DEFAULT_TARGET_MACHINE "i386-unknown-freebsd_1.0" +-#define GPLUSPLUS_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include" +-#define TOOL_INCLUDE_DIR "/usr/local/i386-unknown-freebsd_1.0/include" +-#define GCC_INCLUDE_DIR "/usr/local/lib/gcc-lib/i386-unknown-freebsd_1.0/2.5.8/include" +-#endif +- +-#endif /* FREEBSD_NATIVE */ ++#define MD_STARTFILE_PREFIX "/usr/lib/aout/" diff --git a/lang/pgcc/files/patch-af b/lang/pgcc/files/patch-af index ccd446725773..c1f1ba0e855f 100644 --- a/lang/pgcc/files/patch-af +++ b/lang/pgcc/files/patch-af @@ -1,6 +1,30 @@ ---- gcc/config/i386/freebsd-elf.h.orig Mon Jul 13 15:38:36 1998 -+++ gcc/config/i386/freebsd-elf.h Wed Oct 7 22:18:02 1998 -@@ -108,22 +108,19 @@ +--- gcc/config/i386/freebsd.h.orig Mon Mar 1 14:47:32 1999 ++++ gcc/config/i386/freebsd.h Sun Mar 21 16:58:39 1999 +@@ -21,19 +21,13 @@ + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + ++ ++/* Get generic FreeBSD definitions. */ ++#include <freebsd.h> ++ + #undef TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (i386 FreeBSD/ELF)"); + +-/* The svr4 ABI for the i386 says that records and unions are returned +- in memory. */ +-/* On FreeBSD, we do not. */ +-#undef DEFAULT_PCC_STRUCT_RETURN +-#define DEFAULT_PCC_STRUCT_RETURN 0 +- +-/* This gets defined in tm.h->linux.h->svr4.h, and keeps us from using +- libraries compiled with the native cc, so undef it. */ +-#undef NO_DOLLAR_IN_LABEL +- + /* This is how to output an element of a case-vector that is relative. + This is only used for PIC code. See comments by the `casesi' insn in + i386.md for an explanation of the expression this outputs. */ +@@ -113,22 +107,19 @@ : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n)+3 \ : (-1)) @@ -27,8 +51,18 @@ } \ } -@@ -146,20 +143,8 @@ - #define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}" +@@ -145,26 +136,16 @@ + #define WCHAR_TYPE_SIZE BITS_PER_WORD + + #undef CPP_PREDEFINES +-#define CPP_PREDEFINES "-Di386 -Dunix -D__ELF__ -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) -Acpu(i386) -Amachine(i386)" ++#define CPP_PREDEFINES "-Di386 -D__ELF__ -Acpu(i386) -Amachine(i386)" CPP_FBSD_PREDEFINES + + #undef CPP_SPEC +-#define CPP_SPEC "%(cpp_cpu) %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} %{posix:-D_POSIX_SOURCE}" ++#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 -#if 1 @@ -36,16 +70,16 @@ - * want to profile or debug the C library, please add - * -lc_p or -ggdb to LDFLAGS at the link time, respectively. - */ - #define LIB_SPEC \ +-#define LIB_SPEC \ - "%{!shared: %{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} \ - %{!ggdb:-lc} %{ggdb:-lg}}" -#else --#define LIB_SPEC \ + #define LIB_SPEC \ - "%{!shared: \ - %{mieee-fp:-lieee} %{p:-lgmon -lc_p} %{pg:-lgmon -lc_p} \ - %{!p:%{!pg:%{!g*:-lc} %{g*:-lg}}}}" -#endif -+ "%{!shared: %{p:-lc_p} %{pg:-lc_p} %{!p:%{!pg:-lc}}}" ++ "%{!shared:%{!pg:%{!pthread:%{!kthread:-lc}%{kthread:-lpthread -lc}}%{pthread:-lc_r}}%{pg:%{!pthread:%{!kthread:-lc_p}%{kthread:-lpthread_p -lc_p}}%{pthread:-lc_r_p}}}" /* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support for the special GCC options -static and -shared, which allow us to diff --git a/lang/pgcc/files/patch-ah b/lang/pgcc/files/patch-ah new file mode 100644 index 000000000000..8aa3792b1950 --- /dev/null +++ b/lang/pgcc/files/patch-ah @@ -0,0 +1,87 @@ +--- gcc/config/i386/i386.c.orig Wed May 12 17:51:23 1999 ++++ gcc/config/i386/i386.c Wed May 12 17:54:30 1999 +@@ -54,6 +54,11 @@ + #define CHECK_STACK_LIMIT -1 + #endif + ++#define PIC_REG_USED \ ++ (flag_pic && (current_function_uses_pic_offset_table \ ++ || current_function_uses_const_pool \ ++ || profile_flag || profile_block_flag)) ++ + /* Type of an operand for ix86_{binary,unary}_operator_ok */ + enum reg_mem + { +@@ -1987,13 +1992,11 @@ + char *name ATTRIBUTE_UNUSED; + { + rtx xops[2]; +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); + xops[0] = pic_offset_table_rtx; + xops[1] = stack_pointer_rtx; + + /* Deep branch prediction favors having a return for every call. */ +- if (pic_reg_used && TARGET_DEEP_BRANCH_PREDICTION) ++ if (PIC_REG_USED && TARGET_DEEP_BRANCH_PREDICTION) + { + tree prologue_node; + +@@ -2123,8 +2126,7 @@ + register int regno; + int limit; + rtx xops[4]; +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); ++ int pic_reg_used = PIC_REG_USED; + long tsize = ix86_frame_size (); + rtx insn; + int cfa_offset = INCOMING_FRAME_SP_OFFSET, cfa_store_offset = cfa_offset; +@@ -2290,8 +2292,6 @@ + int nregs = 0; + int reglimit = (frame_pointer_needed + ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); + + #ifdef NON_SAVING_SETJMP + if (NON_SAVING_SETJMP && current_function_calls_setjmp) +@@ -2303,7 +2303,7 @@ + + for (regno = reglimit - 1; regno >= 0; regno--) + if ((regs_ever_live[regno] && ! call_used_regs[regno]) +- || (regno == PIC_OFFSET_TABLE_REGNUM && pic_reg_used)) ++ || (regno == PIC_OFFSET_TABLE_REGNUM && PIC_REG_USED)) + nregs++; + + return nregs == 0 || ! frame_pointer_needed; +@@ -2337,8 +2337,7 @@ + register int nregs, limit; + int offset; + rtx xops[3]; +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); ++ int pic_reg_used = PIC_REG_USED; + long tsize = ix86_frame_size (); + + /* Compute the number of registers to pop */ +@@ -5714,8 +5713,7 @@ + { + int regno; + int offset = 0; +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); ++ int pic_reg_used = PIC_REG_USED; + int tsize = get_frame_size (); + + for (regno = 0; regno < STACK_POINTER_REGNUM; regno++) +@@ -5741,8 +5739,7 @@ + { + int regno; + int offset = 0; +- int pic_reg_used = flag_pic && (current_function_uses_pic_offset_table +- || current_function_uses_const_pool); ++ int pic_reg_used = PIC_REG_USED; + int limit = (frame_pointer_needed ? FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); + int tsize = get_frame_size (); + diff --git a/lang/pgcc/files/patch-aj b/lang/pgcc/files/patch-aj index 4f4d9f994ec7..035627fc0908 100644 --- a/lang/pgcc/files/patch-aj +++ b/lang/pgcc/files/patch-aj @@ -1,15 +1,14 @@ ---- config.guess.orig Fri Oct 23 14:26:33 1998 -+++ config.guess Thu Dec 3 20:56:57 1998 -@@ -474,7 +474,11 @@ - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} +--- config.guess.orig Mon Mar 1 14:37:59 1999 ++++ config.guess Sat Mar 13 19:28:44 1999 +@@ -478,9 +478,9 @@ exit 0 ;; *:FreeBSD:*:*) -- echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then -+ echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then +- echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` +- else + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + else -+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` -+ fi ++ echo ${UNAME_MACHINE}-unknown-freebsdaout`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + fi exit 0 ;; *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` diff --git a/lang/pgcc/files/patch-ak b/lang/pgcc/files/patch-ak new file mode 100644 index 000000000000..2e54beea1a61 --- /dev/null +++ b/lang/pgcc/files/patch-ak @@ -0,0 +1,49 @@ +--- gcc/configure.orig Sun Mar 14 02:59:02 1999 ++++ gcc/configure Sat Mar 20 00:40:05 1999 +@@ -2395,6 +2395,15 @@ + thread_file='posix' + fi + ;; ++ alpha*-*-freebsd*) ++ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h" ++ xm_file="${xm_file} xm-freebsd.h" ++ target_cpu_default="MASK_GAS" ++ tmake_file="t-freebsd alpha/t-crtbe" ++ xmake_file=none ++ fixincludes=fixinc.wrap ++ 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 @@ + # Next line turned off because both 386BSD and BSD/386 use GNU ld. + # use_collect2=yes + ;; +- i[34567]86-*-freebsdelf*) +- tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h" ++ i[34567]86-*-freebsdaout*) ++ tm_file=i386/freebsd-aout.h + # On FreeBSD, the headers are already ok, except for math.h. + fixincludes=fixinc.wrap +- extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" +- tmake_file=i386/t-freebsd +- gas=yes +- gnu_ld=yes +- stabs=yes ++ tmake_file=t-freebsd + ;; + i[34567]86-*-freebsd*) +- 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/pgcc/files/patch-al b/lang/pgcc/files/patch-al new file mode 100644 index 000000000000..c8a195127ed0 --- /dev/null +++ b/lang/pgcc/files/patch-al @@ -0,0 +1,49 @@ +--- gcc/configure.in.orig Sun Mar 7 16:22:22 1999 ++++ gcc/configure.in Sat Mar 20 00:40:58 1999 +@@ -416,6 +416,15 @@ + thread_file='posix' + fi + ;; ++ alpha*-*-freebsd*) ++ tm_file="${tm_file} freebsd.h alpha/freebsd.h alpha/freebsd-elf.h" ++ xm_file="${xm_file} xm-freebsd.h" ++ target_cpu_default="MASK_GAS" ++ tmake_file="t-freebsd alpha/t-crtbe" ++ xmake_file=none ++ fixincludes=fixinc.wrap ++ 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. + # use_collect2=yes + ;; +- i[[34567]]86-*-freebsdelf*) +- tm_file="i386/i386.h i386/att.h linux.h i386/freebsd-elf.h i386/perform.h" ++ i[[34567]]86-*-freebsdaout*) ++ tm_file=i386/freebsd-aout.h + # On FreeBSD, the headers are already ok, except for math.h. + fixincludes=fixinc.wrap +- 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*) +- 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/pgcc/files/patch-am b/lang/pgcc/files/patch-am new file mode 100644 index 000000000000..f69f6ffa7798 --- /dev/null +++ b/lang/pgcc/files/patch-am @@ -0,0 +1,12 @@ +--- libstdc++/stl/stl_rope.h.orig Fri Feb 20 03:13:44 1998 ++++ libstdc++/stl/stl_rope.h Sun Feb 28 03:50:24 1999 +@@ -702,7 +702,8 @@ + __rope_iterator_base<charT,Alloc>(r.tree_ptr, pos) {} + __rope_const_iterator& operator= (const __rope_const_iterator & x) { + if (0 != x.buf_ptr) { +- *this = x; ++ *(static_cast<__rope_iterator_base<charT,Alloc>*>(this)) = x; ++ // bugfix by Kevin Atkinosn (kevina@clark.net) was *this = x; + } else { + current_pos = x.current_pos; + root = x.root; diff --git a/lang/pgcc/files/patch-bc b/lang/pgcc/files/patch-bc new file mode 100644 index 000000000000..c6faefae79d6 --- /dev/null +++ b/lang/pgcc/files/patch-bc @@ -0,0 +1,33 @@ +--- libstdc++/Makefile.in.orig Sat Jul 11 19:20:49 1998 ++++ libstdc++/Makefile.in Sun Mar 14 21:48:39 1999 +@@ -14,7 +14,7 @@ + # along with this library; see the file COPYING. If not, write to the Free + # Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +-VERSION = 2.9.0 ++VERSION = 3 + + OBJS = cstringi.o stdexcepti.o cstdlibi.o cmathi.o stlinst.o + SUBLIBS = $(STAMP)-string $(STAMP)-complx +@@ -98,7 +98,8 @@ + ln -f -s $(SHLIB) $(SHLINK) + + mshlink: +- @$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)" ++ #@$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)" ++ @true + + $(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 ; \ + elif [ $$FILE = mshlink ]; then \ +- for FILE in $(MSHLINK) ; do \ +- rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \ +- ln -f -s $(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. ;\ diff --git a/lang/pgcc/files/patch-fa b/lang/pgcc/files/patch-fa new file mode 100644 index 000000000000..7f5e0e611ae8 --- /dev/null +++ b/lang/pgcc/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/pgcc/files/patch-fb b/lang/pgcc/files/patch-fb new file mode 100644 index 000000000000..b86da95cfa90 --- /dev/null +++ b/lang/pgcc/files/patch-fb @@ -0,0 +1,12 @@ +--- gcc/flags.h.orig Sat Feb 27 10:33:03 1999 ++++ gcc/flags.h Tue Mar 30 03:36:49 1999 +@@ -449,6 +449,9 @@ + + /* Do the full regmove optimization pass. */ + extern int flag_regmove; ++ ++/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ ++extern int flag_format_extensions; + + /* Other basic status info about current function. */ + diff --git a/lang/pgcc/files/patch-fc b/lang/pgcc/files/patch-fc new file mode 100644 index 000000000000..456579bf4366 --- /dev/null +++ b/lang/pgcc/files/patch-fc @@ -0,0 +1,22 @@ +--- gcc/toplev.c.orig Wed May 12 17:57:09 1999 ++++ gcc/toplev.c Wed May 12 17:58:25 1999 +@@ -764,6 +764,10 @@ + + extern int flag_dump_unnumbered; + ++/* Nonzero means that -Wformat accepts certain system-dependent formats. */ ++ ++int flag_format_extensions = 0; ++ + + /* Table of supported debugging formats. */ + static struct +@@ -951,6 +955,8 @@ + "Generate code to check every memory access" }, + {"prefix-function-name", &flag_prefix_function_name, 1, + "Add a prefix to all function names" }, ++ {"format-extensions", &flag_format_extensions, 1, ++ "-Wformat accepts certain FreeBSD system-dependent formats" }, + {"dump-unnumbered", &flag_dump_unnumbered, 1}, + /* intel1 */ + {"compare-elim", &flag_compare_elim, 1}, diff --git a/lang/pgcc/pkg-plist b/lang/pgcc/pkg-plist index 28e2d8664227..6060cf2adf99 100644 --- a/lang/pgcc/pkg-plist +++ b/lang/pgcc/pkg-plist @@ -1,11 +1,9 @@ -@comment $Id: PLIST,v 1.20 1998/12/02 09:41:28 obrien Exp $ -bin/g++filt -bin/g++ -bin/eg++ -bin/g77 -bin/gcc -bin/egcc -bin/gcov +@comment $Id: PLIST,v 1.6 1998/12/13 09:40:49 obrien Exp $ +bin/pg++filt +bin/pg++ +bin/pg77 +bin/pgcc +bin/pgcov bin/%%GNU_HOST%%-gcc bin/protoize bin/unprotoize @@ -217,6 +215,10 @@ lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1obj lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cc1plus lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/cpp lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/collect2 +@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbegin.o +@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtbeginS.o +@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtend.o +@comment ELF-only:lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/crtendS.o lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/f771 lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/README lib/gcc-lib/%%GNU_HOST%%/%%EGCS_REV%%/include/assert.h |