aboutsummaryrefslogtreecommitdiff
path: root/lang/gcc46
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2000-11-28 18:55:06 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2000-11-28 18:55:06 +0000
commit52693c37bd7f3dff52c22362a3128ac2d3372bd9 (patch)
tree65caab24ab24d45580e483aced9afbbe3a5b4db7 /lang/gcc46
parente97432d2b838b10514829e0cb1cf5ceed8443bd0 (diff)
downloadports-52693c37bd7f3dff52c22362a3128ac2d3372bd9.tar.gz
ports-52693c37bd7f3dff52c22362a3128ac2d3372bd9.zip
Notes
Diffstat (limited to 'lang/gcc46')
-rw-r--r--lang/gcc46/Makefile24
-rw-r--r--lang/gcc46/distinfo10
-rw-r--r--lang/gcc46/files/alpha-freebsd.h132
-rw-r--r--lang/gcc46/files/patch-ad30
-rw-r--r--lang/gcc46/files/patch-af25
-rw-r--r--lang/gcc46/files/patch-ak26
-rw-r--r--lang/gcc46/files/patch-al26
-rw-r--r--lang/gcc46/files/patch-fa70
-rw-r--r--lang/gcc46/files/patch-va20
9 files changed, 86 insertions, 277 deletions
diff --git a/lang/gcc46/Makefile b/lang/gcc46/Makefile
index 2e1cc84f07be..41832fb0d06b 100644
--- a/lang/gcc46/Makefile
+++ b/lang/gcc46/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/gcc46/distinfo b/lang/gcc46/distinfo
index ae27d54caced..498df7e96354 100644
--- a/lang/gcc46/distinfo
+++ b/lang/gcc46/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/gcc46/files/alpha-freebsd.h b/lang/gcc46/files/alpha-freebsd.h
deleted file mode 100644
index a227b9444b9e..000000000000
--- a/lang/gcc46/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/gcc46/files/patch-ad b/lang/gcc46/files/patch-ad
index 53927df88598..d11c865f10fc 100644
--- a/lang/gcc46/files/patch-ad
+++ b/lang/gcc46/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/gcc46/files/patch-af b/lang/gcc46/files/patch-af
index f1058d4e21ec..3941ebdce314 100644
--- a/lang/gcc46/files/patch-af
+++ b/lang/gcc46/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/gcc46/files/patch-ak b/lang/gcc46/files/patch-ak
deleted file mode 100644
index 98c373d4e980..000000000000
--- a/lang/gcc46/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/gcc46/files/patch-al b/lang/gcc46/files/patch-al
deleted file mode 100644
index e2760943566e..000000000000
--- a/lang/gcc46/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/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa
index d6b90e4ba86c..d04530ab526c 100644
--- a/lang/gcc46/files/patch-fa
+++ b/lang/gcc46/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/gcc46/files/patch-va b/lang/gcc46/files/patch-va
index 48040ffa6e96..9b046ee019fc 100644
--- a/lang/gcc46/files/patch-va
+++ b/lang/gcc46/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