From 52693c37bd7f3dff52c22362a3128ac2d3372bd9 Mon Sep 17 00:00:00 2001
From: "David E. O'Brien" <obrien@FreeBSD.org>
Date: Tue, 28 Nov 2000 18:55:06 +0000
Subject: Upgrade to the 2000-11-20 GCC 2.97 development snapshot. This one
 should be using libstdc++ v3 and the new 3.0 C++ ABI now.

---
 lang/gcc-ooo/Makefile              |  24 ++++---
 lang/gcc-ooo/distinfo              |  10 +--
 lang/gcc-ooo/files/alpha-freebsd.h | 132 -------------------------------------
 lang/gcc-ooo/files/patch-ad        |  30 ++++-----
 lang/gcc-ooo/files/patch-af        |  25 ++-----
 lang/gcc-ooo/files/patch-ak        |  26 --------
 lang/gcc-ooo/files/patch-al        |  26 --------
 lang/gcc-ooo/files/patch-fa        |  70 ++++++++++----------
 lang/gcc-ooo/files/patch-va        |  20 +++---
 9 files changed, 86 insertions(+), 277 deletions(-)
 delete mode 100644 lang/gcc-ooo/files/alpha-freebsd.h
 delete mode 100644 lang/gcc-ooo/files/patch-ak
 delete mode 100644 lang/gcc-ooo/files/patch-al

(limited to 'lang/gcc-ooo')

diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile
index 2e1cc84f07be..41832fb0d06b 100644
--- a/lang/gcc-ooo/Makefile
+++ b/lang/gcc-ooo/Makefile
@@ -6,7 +6,7 @@
 # $FreeBSD$
 #
 
-SNAPDATE=	2000-10-02
+SNAPDATE=	2000-11-20
 SNAPVER=	${SNAPDATE:S/-//g}
 
 PORTNAME=	gcc-devel
@@ -18,25 +18,30 @@ MASTER_SITES=	ftp://ftp.freesoftware.com/pub/sourceware/gcc/snapshots/${SNAPDATE
 		ftp://ftp.iij.ad.jp/pub/egcs/snapshots/${SNAPDATE}/ \
 		ftp://ftp.yggdrasil.com/mirrors/site/egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/  \
  		ftp://ftp.fu-berlin.de/unix/languages/egcs/snapshots/
-DISTFILES=	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}
+DISTFILES=	gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+		gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+		gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+		gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+		gcc-objc-${SNAPVER}${EXTRACT_SUFX}
 
 MAINTAINER=	obrien@FreeBSD.org
 
 NO_CDROM=	'dated material'
 
+##WRKSRC=		${WRKDIR}/gcc-${SNAPVER}
+##CONFIGURE_WRKSRC=	${WRKDIR}/build
+##BUILD_WRKSRC=		${WRKDIR}/build
+##INSTALL_WRKSRC=		${WRKDIR}/build
+##CONFIGURE_SCRIPT=	${WRKSRC}/configure
 EGCS_REV=	2.97
 LIBSTDCPP_REV=	4
-SRCDIR=		${WRKDIR}/egcs-${SNAPVER}
+SRCDIR=		${WRKDIR}/gcc-${SNAPVER}
 WRKSRC=		${WRKDIR}/build
 PATCH_ARGS=	-d ${SRCDIR} -E ${PATCH_STRIP}
 .if !defined(PATCH_DEBUG)
 PATCH_ARGS+=	--forward --quiet
 .endif
-CONFIGURE_SCRIPT=	../egcs-${SNAPVER}/configure
+CONFIGURE_SCRIPT=	../gcc-${SNAPVER}/configure
 
 .include <bsd.port.pre.mk>
 
@@ -68,9 +73,10 @@ pre-configure:
 	@(MAJ=`sysctl -n kern.osreldate | ${SED} -e '/.....$$/s///'` ; \
 	    ${PERL} -pi.orig -e "s:__FreeBSD__:__FreeBSD__=$${MAJ}:" \
 	    ${SRCDIR}/gcc/config/freebsd.h )
-	@${CP} ${FILESDIR}/alpha-freebsd.h ${SRCDIR}/gcc/config/alpha/freebsd.h
 	@# Keep from running `autoconf' and `autoheader' since we modified
 	@# configure.in by patching it.
+	##@touch ${WRKSRC}/gcc/configure
+	##@touch ${WRKSRC}/gcc/cstamp-h.in
 	@touch ${SRCDIR}/gcc/configure
 	@touch ${SRCDIR}/gcc/cstamp-h.in
 	@${MKDIR} ${CONFIGURE_WRKSRC}
diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo
index ae27d54caced..498df7e96354 100644
--- a/lang/gcc-ooo/distinfo
+++ b/lang/gcc-ooo/distinfo
@@ -1,5 +1,5 @@
-MD5 (egcs-core-20001002.tar.gz) = 5b3bc1987fd61e10062823efe4b613c3
-MD5 (egcs-g++-20001002.tar.gz) = b9b73a770fe644e90d5285bf624b7ac9
-MD5 (egcs-g77-20001002.tar.gz) = cc7e8da8780a05e7f1106e33fa5aa432
-MD5 (egcs-java-20001002.tar.gz) = ddcc506af943d3565ed76ed08dd7ca48
-MD5 (egcs-objc-20001002.tar.gz) = f640a7b059001f215c8ed8bb243e5f73
+MD5 (gcc-core-20001120.tar.gz) = f67efcbeed3992408d30d80bbbc1b6ee
+MD5 (gcc-g++-20001120.tar.gz) = 0054eb67dfd8024d80c260cbdc2ac6fd
+MD5 (gcc-g77-20001120.tar.gz) = 605472386cecfa918b6e15a9ef734ee6
+MD5 (gcc-java-20001120.tar.gz) = 1fd7570d055e62a6cf0eb941e7996190
+MD5 (gcc-objc-20001120.tar.gz) = b056a4a48fadf687138e1b10bd3ce73a
diff --git a/lang/gcc-ooo/files/alpha-freebsd.h b/lang/gcc-ooo/files/alpha-freebsd.h
deleted file mode 100644
index a227b9444b9e..000000000000
--- a/lang/gcc-ooo/files/alpha-freebsd.h
+++ /dev/null
@@ -1,132 +0,0 @@
-/* Definitions for DEC Alpha/AXP running FreeBSD using the ELF format
-   Copyright (C) 2000 Free Software Foundation, Inc.
-   Contributed by BSDi, written by David O'Brien <obrien@FreeBSD.org>
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-
-#undef  CPP_PREDEFINES
-#define CPP_PREDEFINES \
-  "-D__ELF__ -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)"
-
-/* Provide a CPP_SPEC appropriate for FreeBSD/alpha.  Besides the dealing with
-   the GCC option `-posix', and PIC issues as on all FreeBSD platforms, we must
-   deal with the Alpha's FP issues.  */
-
-#undef  CPP_SPEC
-#define CPP_SPEC "%(cpp_cpu)						\
-  %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__}		\
-  %{posix:-D_POSIX_SOURCE}						\
-  %{mieee:-D_IEEE_FP}							\
-  %{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}"
-
-#undef  LINK_SPEC
-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}			\
-  %{p:%e`-p' not supported; use `-pg' and gprof(1)}			\
-  %{Wl,*:%*}								\
-  %{assert*} %{R*} %{rpath*} %{defsym*}					\
-  %{shared:-Bshareable %{h*} %{soname*}}				\
-  %{symbolic:-Bsymbolic}						\
-  %{!shared:								\
-    %{!static:								\
-      %{rdynamic:-export-dynamic}					\
-      %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}}	\
-    %{static:-Bstatic}}"
-
-/* Provide an ASM_SPEC appropriate for a FreeBSD/Alpha target.  This differs
-   from the generic FreeBSD ASM_SPEC in that no special handling of PIC is
-   necessary on the Alpha.  */
-/* Per Richard Henderson <rth@cygnus.com>, it is better to use the `.arch'
-   directive in the assembly file.  alpha/elf.h gives us this in
-   "ASM_FILE_START".
-#undef  ASM_SPEC
-#define ASM_SPEC " %| %{mcpu=*:-m%*}"
-*/
-
-/* XXX, if FreeBSD/Alpha grows a crti.o file, we can use the alpha/elf.h
-   definition.  */
-#undef	STARTFILE_SPEC
-#define STARTFILE_SPEC \
-  "%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}	\
-     %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
-
-/* Provide a ENDFILE_SPEC appropriate for ELF.  Here we tack on the
-   magical crtend.o file which provides part of the support for
-   getting C++ file-scope static object constructed before entering
-   `main'.  */
-/* XXX, if FreeBSD/Alpha grows a crtn.o file, we can use the alpha/elf.h
-   definition.  */
-
-#undef	ENDFILE_SPEC
-#define ENDFILE_SPEC \
-  "%{!shared:crtend.o%s} %{shared:crtendS.o%s}"
-
-
-/************************[  Target stuff  ]***********************************/
-
-/* Define the actual types of some ANSI-mandated types.  
-   Needs to agree with <machine/ansi.h>.  GCC defaults come from c-decl.c,
-   c-common.c, and config/<arch>/<arch>.h.  */
-
-/* alpha.h gets this wrong for FreeBSD.  We use the GCC defaults instead.  */
-#undef WCHAR_TYPE
-
-#undef  WCHAR_UNSIGNED
-#define WCHAR_UNSIGNED 0
-
-#undef  WCHAR_TYPE_SIZE
-#define WCHAR_TYPE_SIZE 32
-
-/* Handle cross-compilation on 32-bits machines (such as i386) for 64-bits
-   machines (Alpha in this case).  */
-
-#if defined(__i386__)
-#undef  HOST_BITS_PER_LONG
-#define HOST_BITS_PER_LONG	32
-#undef  HOST_WIDE_INT
-#define HOST_WIDE_INT		long long
-#undef  HOST_BITS_PER_WIDE_INT
-#define HOST_BITS_PER_WIDE_INT	64
-#endif
-
-#undef  TARGET_VERSION
-#define TARGET_VERSION fprintf (stderr, " (FreeBSD/alpha ELF)");
-
-#define TARGET_ELF		1
-
-#undef  TARGET_DEFAULT
-#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
-
-#undef HAS_INIT_SECTION
-
-/* Output assembler code to FILE to increment profiler label # LABELNO
-   for profiling a function entry.  Under FreeBSD/Alpha, the assembler does
-   nothing special with -pg. */
-
-#undef  FUNCTION_PROFILER
-#define FUNCTION_PROFILER(FILE, LABELNO)				\
-	fputs ("\tjsr $28,_mcount\n", (FILE))
-
-/* Show that we need a GP when profiling.  */
-#undef  TARGET_PROFILING_NEEDS_GP
-#define TARGET_PROFILING_NEEDS_GP 1
-
-/* This is the char to use for continuation (in case we need to turn
-   continuation back on).  */
-
-#undef  DBX_CONTIN_CHAR
-#define DBX_CONTIN_CHAR	'?'
diff --git a/lang/gcc-ooo/files/patch-ad b/lang/gcc-ooo/files/patch-ad
index 53927df88598..d11c865f10fc 100644
--- a/lang/gcc-ooo/files/patch-ad
+++ b/lang/gcc-ooo/files/patch-ad
@@ -1,20 +1,18 @@
---- gcc/config/i386/freebsd-aout.h.orig	Mon Sep 25 06:03:18 2000
-+++ gcc/config/i386/freebsd-aout.h	Tue Sep 26 12:23:26 2000
-@@ -31,12 +31,7 @@
+--- gcc/config/i386/freebsd-aout.h.orig	Thu Nov  2 15:29:09 2000
++++ gcc/config/i386/freebsd-aout.h	Mon Nov 27 01:45:04 2000
+@@ -31,8 +31,11 @@
  
  /* 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)
--
--#undef CPP_PREDEFINES
--#define CPP_PREDEFINES "-Dunix -D__FreeBSD__\
-- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)"
++/*
+ #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 */
  
- /* Like the default, except no -lg.  */
- #define LIB_SPEC "%{!shared:%{!pg:-lc}%{pg:-lc_p}}"
-@@ -84,14 +79,6 @@
+ #undef CPP_PREDEFINES
+ #define CPP_PREDEFINES "-Dunix -D__FreeBSD__\
+@@ -84,14 +87,6 @@
     necessary when compiling PIC code.  */
  
  #define JUMP_TABLES_IN_TEXT_SECTION 1
@@ -29,7 +27,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
-@@ -102,19 +89,18 @@
+@@ -102,19 +97,18 @@
  
  /* Profiling routines, partially copied from i386/osfrose.h.  */
  
@@ -52,7 +50,7 @@
        fprintf (FILE, "\tcall mcount\n");				\
      }									\
  }
-@@ -132,6 +118,7 @@
+@@ -132,6 +126,7 @@
  
  #define TYPE_ASM_OP	"\t.type\t"
  #define SIZE_ASM_OP	"\t.size\t"
@@ -60,7 +58,7 @@
  
  /* The following macro defines the format used to output the second
     operand of the .type assembler directive.  Different svr4 assemblers
-@@ -141,6 +128,12 @@
+@@ -141,6 +136,12 @@
  
  #define TYPE_OPERAND_FMT	"@%s"
  
@@ -73,7 +71,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.  */
-@@ -242,6 +235,8 @@
+@@ -242,6 +243,8 @@
  #define STARTFILE_SPEC  \
    "%{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 f1058d4e21ec..3941ebdce314 100644
--- a/lang/gcc-ooo/files/patch-af
+++ b/lang/gcc-ooo/files/patch-af
@@ -1,26 +1,15 @@
---- gcc/config/i386/freebsd.h.orig	Sun Jan 30 23:28:05 2000
-+++ gcc/config/i386/freebsd.h	Fri Feb  4 05:22:36 2000
-@@ -52,6 +52,10 @@
- #undef DBX_REGISTER_NUMBER
- #define DBX_REGISTER_NUMBER(n)  svr4_dbx_register_map[n]
- 
-+/* Don't use EGCS's normal profiling code -- we have our own fine-grained
-+   basic block profiling.  */
-+#define NO_PROFILE_COUNTERS
-+
- /* Tell final.c that we don't need a label passed to mcount.  */
- 
- #undef FUNCTION_PROFILER
-@@ -73,11 +77,15 @@
+--- gcc/config/i386/freebsd.h.orig	Thu Nov  2 15:29:09 2000
++++ gcc/config/i386/freebsd.h	Mon Nov 27 01:52:39 2000
+@@ -76,11 +76,15 @@
    
  #undef WCHAR_TYPE_SIZE
  #define WCHAR_TYPE_SIZE BITS_PER_WORD
 -    
 -#undef CPP_PREDEFINES
 -#define CPP_PREDEFINES "-Dunix -D__ELF__ -D__FreeBSD__\
-- -Asystem(unix) -Asystem(bsd) -Asystem(FreeBSD)"
+- -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
  
-+#undef CC1_SPEC
++#undef  CC1_SPEC
 +#define CC1_SPEC "\
 +  %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
 +  %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}"
@@ -31,7 +20,7 @@
  /* Provide a STARTFILE_SPEC appropriate for FreeBSD.  Here we add
     the magical crtbegin.o file (see crtstuff.c) which provides part 
  	of the support for getting C++ file-scope static object constructed 
-@@ -85,11 +93,11 @@
+@@ -88,11 +92,11 @@
     
  #undef	STARTFILE_SPEC
  #define STARTFILE_SPEC \
@@ -48,7 +37,7 @@
  
  /* Provide a ENDFILE_SPEC appropriate for FreeBSD.  Here we tack on
     the magical crtend.o file (see crtstuff.c) which provides part of 
-@@ -99,7 +107,7 @@
+@@ -102,7 +106,7 @@
  
  #undef	ENDFILE_SPEC
  #define ENDFILE_SPEC \
diff --git a/lang/gcc-ooo/files/patch-ak b/lang/gcc-ooo/files/patch-ak
deleted file mode 100644
index 98c373d4e980..000000000000
--- a/lang/gcc-ooo/files/patch-ak
+++ /dev/null
@@ -1,26 +0,0 @@
---- gcc/configure.orig	Sun Oct  1 23:50:51 2000
-+++ gcc/configure	Mon Oct  9 18:55:44 2000
-@@ -3910,6 +3910,23 @@
-  			thread_file='posix'
-  		fi
- 		;;
-+	alpha*-*-freebsd*)
-+		tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h"
-+		xm_file="${xm_file} xm-freebsd.h"
-+		target_cpu_default="MASK_GAS"
-+		tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
-+		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-+		xmake_file=none
-+		fixincludes=fixinc.wrap
-+		gas=yes gnu_ld=yes
-+		stabs=yes
-+		case x${enable_threads} in
-+		xyes | xpthreads | xposix)
-+			thread_file='posix'
-+			tmake_file="${tmake_file} t-freebsd-thread"
-+			;;
-+		esac
-+		;;
- 	alpha*-*-netbsd*)
- 		tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
- 		target_cpu_default="MASK_GAS"
diff --git a/lang/gcc-ooo/files/patch-al b/lang/gcc-ooo/files/patch-al
deleted file mode 100644
index e2760943566e..000000000000
--- a/lang/gcc-ooo/files/patch-al
+++ /dev/null
@@ -1,26 +0,0 @@
---- gcc/configure.in.orig	Sun Oct  1 23:50:51 2000
-+++ gcc/configure.in	Mon Oct  9 18:56:34 2000
-@@ -786,6 +786,23 @@
-  		if test x$enable_threads = xyes; then
-  			thread_file='posix'
-  		fi
-+	alpha*-*-freebsd*)
-+		tm_file="${tm_file} freebsd.h alpha/elf.h alpha/freebsd.h"
-+		xm_file="${xm_file} xm-freebsd.h"
-+		target_cpu_default="MASK_GAS"
-+		tmake_file="t-freebsd alpha/t-crtbe alpha/t-alpha alpha/t-ieee"
-+		extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
-+		xmake_file=none
-+		fixincludes=fixinc.wrap
-+		gas=yes gnu_ld=yes
-+		stabs=yes
-+		case x${enable_threads} in
-+		xyes | xpthreads | xposix)
-+			thread_file='posix'
-+			tmake_file="${tmake_file} t-freebsd-thread"
-+			;;
-+		esac
-+		;;
- 		;;
- 	alpha*-*-netbsd*)
- 		tm_file="${tm_file} alpha/elf.h alpha/netbsd.h alpha/netbsd-elf.h"
diff --git a/lang/gcc-ooo/files/patch-fa b/lang/gcc-ooo/files/patch-fa
index d6b90e4ba86c..d04530ab526c 100644
--- a/lang/gcc-ooo/files/patch-fa
+++ b/lang/gcc-ooo/files/patch-fa
@@ -1,6 +1,6 @@
---- gcc/c-common.c.orig	Mon Sep 25 10:04:45 2000
-+++ gcc/c-common.c	Mon Oct  9 02:51:14 2000
-@@ -171,7 +171,7 @@
+--- gcc/c-common.c.orig	Thu Nov 16 22:05:12 2000
++++ gcc/c-common.c	Mon Nov 27 02:25:55 2000
+@@ -193,7 +193,7 @@
  						 int, int, int));
  static void init_attributes		PARAMS ((void));
  static void record_function_format	PARAMS ((tree, tree, enum format_type,
@@ -9,7 +9,7 @@
  static void record_international_format	PARAMS ((tree, tree, int));
  static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree));
  
-@@ -862,6 +862,7 @@
+@@ -888,6 +888,7 @@
  	    enum format_type format_type;
  	    tree argument;
  	    unsigned int arg_num;
@@ -17,7 +17,7 @@
  
  	    if (TREE_CODE (decl) != FUNCTION_DECL)
  	      {
-@@ -872,7 +873,7 @@
+@@ -898,7 +899,7 @@
  
  	    if (TREE_CODE (format_type_id) != IDENTIFIER_NODE)
  	      {
@@ -26,7 +26,7 @@
  		continue;
  	      }
  	    else
-@@ -880,12 +881,26 @@
+@@ -906,12 +907,26 @@
  		const char *p = IDENTIFIER_POINTER (format_type_id);
  
  		if (!strcmp (p, "printf") || !strcmp (p, "__printf__"))
@@ -52,8 +52,8 @@
 +		  }
  		else
  		  {
- 		    status_warning (status, "`%s' is an unrecognized format function type", p);
-@@ -958,7 +973,8 @@
+ 		    warning ("`%s' is an unrecognized format function type", p);
+@@ -990,7 +1005,8 @@
  
  	    record_function_format (DECL_NAME (decl),
  				    DECL_ASSEMBLER_NAME (decl),
@@ -63,7 +63,7 @@
  	    break;
  	  }
  
-@@ -1441,6 +1457,13 @@
+@@ -1654,6 +1670,13 @@
  
  static const format_char_info print_char_table[] =
  {
@@ -75,9 +75,9 @@
 +#define unextended_print_char_table	(print_char_table + 3)
 +#endif
    /* C89 conversion specifiers.  */
-   { "di",  0, STD_C89, { T89_I,   T99_I,   T89_I,   T89_L,   T99_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I", "i" },
-   { "oxX", 0, STD_C89, { T89_UI,  T99_UI,  T89_UI,  T89_UL,  T99_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",    "i" },
-@@ -1526,6 +1549,7 @@
+   { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T99_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I", "i" },
+   { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T99_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",    "i" },
+@@ -1752,6 +1775,7 @@
    enum format_type format_type;	/* type of format (printf, scanf, etc.) */
    int format_num;		/* number of format argument */
    int first_arg_num;		/* number of first arg (zero for varargs) */
@@ -85,7 +85,7 @@
  } function_format_info;
  
  static function_format_info *function_format_list = NULL;
-@@ -1570,42 +1594,42 @@
+@@ -1837,42 +1861,42 @@
      {
        /* Functions from ISO/IEC 9899:1990.  */
        record_function_format (get_identifier ("printf"), NULL_TREE,
@@ -144,7 +144,7 @@
      }
  
    if (flag_hosted && flag_noniso_default_format_attributes)
-@@ -1630,12 +1654,13 @@
+@@ -1895,12 +1919,13 @@
  
  static void
  record_function_format (name, assembler_name, format_type,
@@ -159,7 +159,7 @@
  {
    function_format_info *info;
  
-@@ -1659,6 +1684,7 @@
+@@ -1924,6 +1949,7 @@
    info->format_type = format_type;
    info->format_num = format_num;
    info->first_arg_num = first_arg_num;
@@ -167,17 +167,17 @@
  }
  
  /* Record information for the names of function that modify the format
-@@ -2019,7 +2045,7 @@
- 
-   if (integer_zerop (format_tree))
-     {
+@@ -2415,7 +2441,7 @@
+ 	 specially if info == NULL and add a res->number_null entry for
+ 	 that case, or maybe add a function pointer to be called at
+ 	 the end instead of hardcoding check_format_info_main.  */
 -      status_warning (status, "null format string");
 +      if (!info->null_format_ok) status_warning (status, "null format string");
-       return;
-     }
-   if (TREE_CODE (format_tree) != ADDR_EXPR)
-@@ -2340,6 +2366,54 @@
- 		}
+ 
+       /* Skip to first argument to check, so we can see if this format
+ 	 has any arguments (it shouldn't).  */
+@@ -2611,6 +2637,54 @@
+ 	      main_arg_num = opnum + info->first_arg_num - 1;
  	    }
  	}
 +      if (*format_chars == 'b')
@@ -229,14 +229,14 @@
 +	    }
 +	}
  
-       aflag = 0;
- 
-@@ -2441,7 +2515,7 @@
- 	status_warning (status, "width used with `%c' format", format_char);
-       if (index (fci->flags2, '3') != 0
- 	  || (format_char == 'y' && index (flag_chars, 'E')))
--	status_warning (status, "`%%%c' yields only last 2 digits of year in some locales",
-+	status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems",
- 		 format_char);
-       else if (index (fci->flags2, '2') != 0)
- 	status_warning (status, "`%%%c' yields only last 2 digits of year", format_char);
+       /* Read any format flags, but do not yet validate them beyond removing
+ 	 duplicates, since in general validation depends on the rest of
+@@ -2984,7 +3058,7 @@
+ 	else if (strchr (fci->flags2, '2') != 0)
+ 	  y2k_level = 2;
+ 	if (y2k_level == 3)
+-	  status_warning (status, "`%%%c' yields only last 2 digits of year in some locales",
++	  status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems",
+ 			  format_char);
+ 	else if (y2k_level == 2)
+ 	  status_warning (status, "`%%%c' yields only last 2 digits of year", format_char);
diff --git a/lang/gcc-ooo/files/patch-va b/lang/gcc-ooo/files/patch-va
index 48040ffa6e96..9b046ee019fc 100644
--- a/lang/gcc-ooo/files/patch-va
+++ b/lang/gcc-ooo/files/patch-va
@@ -1,20 +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 @@
+--- gcc/Makefile.in.orig	Sat Nov 18 16:30:05 2000
++++ gcc/Makefile.in	Mon Nov 27 02:29:50 2000
+@@ -863,7 +863,7 @@
  	rm -f config.run
  
  $(srcdir)/configure: $(srcdir)/configure.in
--	cd $(srcdir); autoconf
-+	cd $(srcdir); echo "wants to run autoconf"
+-	(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 @@
+ gccbug:	$(srcdir)/gccbug.in
+ 	CONFIG_FILES=gccbug CONFIG_HEADERS= ./config.status 
+@@ -882,7 +882,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"
+-	(cd $(srcdir) && autoheader)
++	(cd $(srcdir) && echo "wants to run autoheader")
  	@rm -f $(srcdir)/cstamp-h.in
  	echo timestamp > $(srcdir)/cstamp-h.in
  auto-host.h: cstamp-h ; @true
-- 
cgit v1.2.3