diff options
Diffstat (limited to 'lang')
252 files changed, 9144 insertions, 2628 deletions
diff --git a/lang/gcc-devel/Makefile b/lang/gcc-devel/Makefile index 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 2deaa198743f..2a41e984ec6c 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 55665654d3f3..8dfe86dd8d9e 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 60a1f07b94ba..e6f81cca503a 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 bea070deb344..dcddb18e53b4 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 c1f1ba0e855f..88bf144d3dad 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 2e54beea1a61..a1c26dbc744e 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 c8a195127ed0..3b9fb19a38b1 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 c6faefae79d6..e0198b22cc68 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 000000000000..7f5e0e611ae8 --- /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 000000000000..dae6d331898c --- /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 000000000000..a3f44c5e158b --- /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 000000000000..48040ffa6e96 --- /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 c23b39554386..e67c9eca41ae 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 85e5aea5a688..cee2e1f00000 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 |