1
0
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:
David E. O'Brien 1999-05-24 17:13:07 +00:00
parent 327a8169c1
commit 89227c0f8d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=18978
15 changed files with 808 additions and 78 deletions

View File

@ -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

View File

@ -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
View 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 */

View File

@ -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/"

View File

@ -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
View 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 ();

View File

@ -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
View 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
View 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
View 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
View 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
View 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
View 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
View 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},

View File

@ -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