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