mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-15 03:14:23 +00:00
Remove lang/gcc32 (GCC 3.2) which is no longer used by any other ports and
does not support amd64, for example.
This commit is contained in:
parent
b7b604d523
commit
661f403226
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=219035
@ -77,7 +77,6 @@
|
||||
SUBDIR += gcc-ooo
|
||||
SUBDIR += gcc28
|
||||
SUBDIR += gcc295
|
||||
SUBDIR += gcc32
|
||||
SUBDIR += gcc33
|
||||
SUBDIR += gcc34
|
||||
SUBDIR += gcc41
|
||||
|
@ -1,145 +0,0 @@
|
||||
# ex:ts=8
|
||||
# Ports collection makefile for: egcs
|
||||
# Date created: 9 Jan 1998
|
||||
# Whom: John Polstra <jdp@polstra.com>
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
PORTNAME= gcc
|
||||
PORTVERSION= 3.2.3
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= lang
|
||||
MASTER_SITES= ${MASTER_SITE_GCC} \
|
||||
http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc
|
||||
MASTER_SITE_SUBDIR= releases/gcc-${PORTVERSION}
|
||||
DISTFILES= gcc-core-${PORTVERSION}${EXTRACT_SUFX} \
|
||||
gcc-g++-${PORTVERSION}${EXTRACT_SUFX} \
|
||||
gcc-g77-${PORTVERSION}${EXTRACT_SUFX} \
|
||||
gcc-objc-${PORTVERSION}${EXTRACT_SUFX}
|
||||
|
||||
MAINTAINER?= ports@FreeBSD.org
|
||||
COMMENT?= GNU Compiler Collection 3.2.3
|
||||
|
||||
NOT_FOR_ARCHS= amd64
|
||||
|
||||
LATEST_LINK?= gcc32${PKGNAMESUFFIX}
|
||||
|
||||
USE_BZIP2= yes
|
||||
INFO= cpp cppinternals g77 gcc gccint
|
||||
|
||||
PATCH_WRKSRC= ${SRCDIR}
|
||||
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
|
||||
# Do not let USE_GCC be set here. We can't hardcode that gcc32 should require
|
||||
# gcc32 in order to build. Setting USE_GCC at all here causes recursion errors
|
||||
# when it clobbers the USE_GCC defined by other ports.
|
||||
.undef USE_GCC
|
||||
NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4
|
||||
|
||||
.include <bsd.port.pre.mk>
|
||||
|
||||
.if ${ARCH} == "amd64"
|
||||
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
|
||||
.else
|
||||
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
|
||||
.endif
|
||||
|
||||
WITHOUT_CPU_CFLAGS=true
|
||||
GCC_REV= ${PORTVERSION:C/\.0$//}
|
||||
SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
|
||||
WRKSRC= ${WRKDIR}/build
|
||||
TARGLIB= ${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${GCC_REV}
|
||||
PLIST_SUB= GCC_REV=${GCC_REV} GNU_HOST=${CONFIGURE_TARGET} \
|
||||
PORTVERSION=${PORTVERSION}
|
||||
GNU_CONFIGURE= yes
|
||||
USE_GMAKE= yes
|
||||
CONFIGURE_ARGS+= --disable-nls \
|
||||
--with-gxx-include-dir=${TARGLIB}/include/g++-v3
|
||||
#CONFIGURE_ARGS+= --program-suffix=32
|
||||
CONFIGURE_ARGS+= --with-system-zlib --includedir=${TARGLIB}/include/Java
|
||||
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
|
||||
.if defined(WANT_SHAREDLIBS)
|
||||
CONFIGURE_ARGS+= --enable-shared
|
||||
LDCONFIG_DIRS= %%PREFIX%%/lib ${TARGLIB}
|
||||
EXTRA_SHLIB= libgcc_s
|
||||
USE_LDCONFIG= ${TARGLIB}
|
||||
.else
|
||||
CONFIGURE_ARGS+= --disable-shared
|
||||
.endif
|
||||
.if defined(WANT_THREADS_SUPPORT)
|
||||
CONFIGURE_ARGS+= --enable-threads
|
||||
# ?is this an ObjC only thing?
|
||||
CONFIGURE_ARGS+= --enable-threads=posix
|
||||
.endif
|
||||
|
||||
ALL_TARGET= bootstrap
|
||||
MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
|
||||
MAN7= fsf-funding.7 gfdl.7 gpl.7
|
||||
|
||||
pre-configure:
|
||||
cd ${SRCDIR} ; contrib/gcc_update --touch
|
||||
@${LN} -sf ${FILESDIR}/freebsd7.h ${SRCDIR}/gcc/config
|
||||
@${RM} -f ${SRCDIR}/gcc/*/*.info*
|
||||
@${MKDIR} ${CONFIGURE_WRKSRC}
|
||||
@${REINPLACE_CMD} -e 's/elf_x86_64/elf_x86_64_fbsd/g' \
|
||||
${SRCDIR}/gcc/config/i386/freebsd64.h
|
||||
|
||||
pre-install:
|
||||
${MKDIR} ${PREFIX}/info
|
||||
.if defined(WANT_SHAREDLIBS)
|
||||
-@${MKDIR} ${PREFIX}/libdata/ldconfig
|
||||
.endif
|
||||
|
||||
post-install:
|
||||
@${RM} -f ${PREFIX}/bin/c++ ${PREFIX}/bin/${CONFIGURE_TARGET}-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/${CONFIGURE_TARGET}-gcc \
|
||||
${TARGLIB}/cpp0 ${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
|
||||
do \
|
||||
${STRIP_CMD} $$prog ; \
|
||||
done )
|
||||
.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++
|
||||
${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}32
|
||||
( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
|
||||
|| ${MV} -f ${PREFIX}/man/man1/${file}.1 \
|
||||
${PREFIX}/man/man1/${file}32.1 )
|
||||
.endfor
|
||||
.for file in g77
|
||||
${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
|
||||
( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
|
||||
|| ${MV} -f ${PREFIX}/man/man1/${file}.1 \
|
||||
${PREFIX}/man/man1/${file}-32.1 )
|
||||
.endfor
|
||||
${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION}
|
||||
# These 3 libraries are moved from PREFIX/lib to avoid conflicts
|
||||
# with the stock compiler.
|
||||
.for file in libstdc++ libsupc++ libg2c libfrtbegin libobjc ${EXTRA_SHLIB}
|
||||
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
|
||||
.endfor
|
||||
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
|
||||
${RM} -f ${PREFIX}/lib/libiberty.a
|
||||
${RM} -f ${TARGLIB}/*.la
|
||||
# I am sick and tired of the anonyance that man pages can only be generated if
|
||||
# perl 5.6 is installed. This is becoming a royal PITA on non-5-CURRENT systems
|
||||
.for mp in ${_MANPAGES}
|
||||
( ${TEST} -e ${mp} && ${TOUCH} ${TOUCH_FLAGS} ${mp} )
|
||||
.endfor
|
||||
cd ${PREFIX} ;\
|
||||
${FIND} ${TARGLIB:S/^${PREFIX}\///} -type f -o -type l \
|
||||
>${WRKDIR}/PLIST.gcc-lib
|
||||
cd ${PREFIX} ;\
|
||||
${FIND} ${TARGLIB:S/^${PREFIX}\///} -type d \
|
||||
| ${SORT} -r | ${SED} -e 's/^/@dirrm /g' \
|
||||
>>${WRKDIR}/PLIST.gcc-lib
|
||||
(${ECHO_CMD} "@unexec rmdir %D/lib/gcc-lib/${CONFIGURE_TARGET} 2>&1 || true" ; ${ECHO_CMD} "@unexec rmdir %D/lib/gcc-lib 2>&1 || true") >> ${WRKDIR}/PLIST.gcc-lib
|
||||
${ECHO_CMD} "r ${TMPPLIST}" > ${WRKDIR}/ex.script
|
||||
${ECHO_CMD} "/Insert PLIST.gcc-lib" >> ${WRKDIR}/ex.script
|
||||
${ECHO_CMD} "d" >> ${WRKDIR}/ex.script
|
||||
${ECHO_CMD} "r ${WRKDIR}/PLIST.gcc-lib" >> ${WRKDIR}/ex.script
|
||||
${ECHO_CMD} "x!" >> ${WRKDIR}/ex.script
|
||||
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
|
||||
cd ${WRKDIR} ; ex < ex.script
|
||||
|
||||
.include <bsd.port.post.mk>
|
@ -1,12 +0,0 @@
|
||||
MD5 (gcc-core-3.2.3.tar.bz2) = 66664a84b383ba8d68612cd89b9478b2
|
||||
SHA256 (gcc-core-3.2.3.tar.bz2) = fb320c4351a35dc0d99cf764a27d52dd51d1822f022e876cd826e94253412c58
|
||||
SIZE (gcc-core-3.2.3.tar.bz2) = 10324429
|
||||
MD5 (gcc-g++-3.2.3.tar.bz2) = ebb7932d0dc526b10c222a22cc02f180
|
||||
SHA256 (gcc-g++-3.2.3.tar.bz2) = 170dd3e43cc80e8d6074ec0e28dc3ae5a31ebfd3852510d2d621527bba5ff965
|
||||
SIZE (gcc-g++-3.2.3.tar.bz2) = 1947960
|
||||
MD5 (gcc-g77-3.2.3.tar.bz2) = 8bea8cf9734995738552d90cf3f80b62
|
||||
SHA256 (gcc-g77-3.2.3.tar.bz2) = 335880339fb6ca685f71a80fa2cb5c8dc943e0ff8366df1087363516bb6e733c
|
||||
SIZE (gcc-g77-3.2.3.tar.bz2) = 1144165
|
||||
MD5 (gcc-objc-3.2.3.tar.bz2) = eaca8b22d4ef2b42b84b877edbdf896b
|
||||
SHA256 (gcc-objc-3.2.3.tar.bz2) = b8f3aa06893a74919e35c1a460f2cfb2803a62bf72bfaf56d4e3f985db818b97
|
||||
SIZE (gcc-objc-3.2.3.tar.bz2) = 204251
|
@ -1,24 +0,0 @@
|
||||
/* FreeBSD version number setting for FreeBSD 6.x systems.
|
||||
Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
|
||||
|
||||
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. */
|
||||
|
||||
#define FBSD_MAJOR 7
|
||||
|
||||
/* $FreeBSD$ */
|
@ -1,11 +0,0 @@
|
||||
--- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003
|
||||
+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003
|
||||
@@ -14,7 +14,7 @@
|
||||
SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include
|
||||
|
||||
# Use this on System V.
|
||||
-CPPFLAGS = -DUSG
|
||||
+CPPFLAGS = -DBSD4_2
|
||||
|
||||
.c.o:
|
||||
$(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \
|
@ -1,70 +0,0 @@
|
||||
--- gcc/config/i386/freebsd-aout.h.orig Tue Jan 22 16:56:28 2002
|
||||
+++ gcc/config/i386/freebsd-aout.h Sat Feb 2 13:30:32 2002
|
||||
@@ -76,14 +76,6 @@
|
||||
/* FreeBSD using a.out does not support DWARF2 unwinding mechanisms. */
|
||||
#define DWARF2_UNWIND_INFO 0
|
||||
|
||||
-/* Don't default to pcc-struct-return, because in FreeBSD we prefer the
|
||||
- superior nature of the older gcc way. */
|
||||
-#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
-
|
||||
-/* Ensure we the configuration knows our system correctly so we can link with
|
||||
- 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
|
||||
segment. */
|
||||
@@ -93,19 +85,18 @@
|
||||
|
||||
/* Profiling routines, partially copied from i386/osfrose.h. */
|
||||
|
||||
-/* Redefine this to use %eax instead of %edx. */
|
||||
+/* Tell final.c that we don't need a label passed to mcount. */
|
||||
+#define NO_PROFILE_DATA
|
||||
+
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
{ \
|
||||
if (flag_pic) \
|
||||
{ \
|
||||
- fprintf (FILE, "\tleal %sP%d@GOTOFF(%%ebx),%%eax\n", \
|
||||
- LPREFIX, (LABELNO)); \
|
||||
fprintf (FILE, "\tcall *mcount@GOT(%%ebx)\n"); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
- fprintf (FILE, "\tmovl $%sP%d,%%eax\n", LPREFIX, (LABELNO)); \
|
||||
fprintf (FILE, "\tcall mcount\n"); \
|
||||
} \
|
||||
}
|
||||
@@ -123,6 +114,7 @@
|
||||
|
||||
#define TYPE_ASM_OP "\t.type\t"
|
||||
#define SIZE_ASM_OP "\t.size\t"
|
||||
+#define SET_ASM_OP "\t.set\t"
|
||||
|
||||
/* The following macro defines the format used to output the second
|
||||
operand of the .type assembler directive. Different svr4 assemblers
|
||||
@@ -132,6 +124,12 @@
|
||||
|
||||
#define TYPE_OPERAND_FMT "@%s"
|
||||
|
||||
+#define HANDLE_SYSV_PRAGMA 1
|
||||
+
|
||||
+#define ASM_WEAKEN_LABEL(FILE,NAME) \
|
||||
+ do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \
|
||||
+ fputc ('\n', FILE); } while (0)
|
||||
+
|
||||
/* 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. */
|
||||
@@ -233,6 +231,8 @@
|
||||
#define STARTFILE_SPEC \
|
||||
"%{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/"
|
||||
|
||||
/* Define this so we can compile MS code for use with WINE. */
|
||||
#define HANDLE_PRAGMA_PACK_PUSH_POP
|
@ -1,50 +0,0 @@
|
||||
--- gcc/config/i386/freebsd.h.orig Wed May 30 16:05:31 2001
|
||||
+++ gcc/config/i386/freebsd.h Mon Jun 18 17:47:30 2001
|
||||
@@ -76,6 +76,14 @@
|
||||
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
+
|
||||
+#undef CC1_SPEC
|
||||
+#define CC1_SPEC "\
|
||||
+ %{gline:%{!g:%{!g0:%{!g1:%{!g2: -g1}}}}} \
|
||||
+ %{maout: %{!mno-underscores: %{!munderscores: -munderscores }}}"
|
||||
+
|
||||
+#undef ASM_SPEC
|
||||
+#define ASM_SPEC "%{v*: -v} %{maout: %{fpic:-k} %{fPIC:-k}}"
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
|
||||
the magical crtbegin.o file (see crtstuff.c) which provides part
|
||||
@@ -84,11 +92,18 @@
|
||||
|
||||
#undef STARTFILE_SPEC
|
||||
#define STARTFILE_SPEC \
|
||||
- "%{!shared: \
|
||||
- %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \
|
||||
- %{!p:%{profile:gcrt1.o%s} \
|
||||
- %{!profile:crt1.o%s}}}} \
|
||||
- crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
|
||||
+ "%{maout: %{shared:c++rt0.o%s} \
|
||||
+ %{!shared:%{pg:gcrt0.o%s}%{!pg:%{static:scrt0.o%s}%{!static:crt0.o%s}}}} \
|
||||
+ %{!maout: \
|
||||
+ %{!shared: \
|
||||
+ %{pg:gcrt1.o%s} \
|
||||
+ %{!pg:%{p:gcrt1.o%s} \
|
||||
+ %{!p:%{profile:gcrt1.o%s} \
|
||||
+ %{!profile:crt1.o%s}}}} \
|
||||
+ crti.o%s \
|
||||
+ %{!shared:crtbegin.o%s} \
|
||||
+ %{shared:crtbeginS.o%s} \
|
||||
+ }"
|
||||
|
||||
/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on
|
||||
the magical crtend.o file (see crtstuff.c) which provides part of
|
||||
@@ -98,7 +113,7 @@
|
||||
|
||||
#undef ENDFILE_SPEC
|
||||
#define ENDFILE_SPEC \
|
||||
- "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
|
||||
+ "%{!maout: %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s}"
|
||||
|
||||
/* Provide a LINK_SPEC appropriate for FreeBSD. Here we provide support
|
||||
for the special GCC options -static and -shared, which allow us to
|
@ -1,14 +0,0 @@
|
||||
--- gcc/config/freebsd-spec.h.orig Tue Nov 20 18:06:45 2001
|
||||
+++ gcc/config/freebsd-spec.h Sat Feb 2 13:37:38 2002
|
||||
@@ -79,7 +82,10 @@
|
||||
#define FBSD_CPP_SPEC " \
|
||||
%(cpp_cpu) \
|
||||
%{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \
|
||||
- %{posix:-D_POSIX_SOURCE}"
|
||||
+ %{posix:-D_POSIX_SOURCE} \
|
||||
+ %{!maout: -D__ELF__} \
|
||||
+ %{munderscores: -D__UNDERSCORES__} \
|
||||
+ %{maout: %{!mno-underscores: -D__UNDERSCORES__}}"
|
||||
|
||||
/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add
|
||||
the magical crtbegin.o file (see crtstuff.c) which provides part
|
@ -1,188 +0,0 @@
|
||||
--- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002
|
||||
+++ gcc/c-format.c Mon May 27 20:42:37 2002
|
||||
@@ -19,6 +19,8 @@
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
+/* $FreeBSD: /tmp/pcvs/ports/lang/gcc32/files/Attic/patch-fa,v 1.11 2002-05-28 03:43:59 obrien Exp $ */
|
||||
+
|
||||
#include "config.h"
|
||||
#include "system.h"
|
||||
#include "tree.h"
|
||||
@@ -75,6 +77,7 @@
|
||||
last. */
|
||||
enum format_type { printf_format_type, scanf_format_type,
|
||||
strftime_format_type, strfmon_format_type,
|
||||
+ printf0_format_type,
|
||||
format_type_error };
|
||||
|
||||
typedef struct function_format_info
|
||||
@@ -82,6 +85,7 @@
|
||||
enum format_type format_type; /* type of format (printf, scanf, etc.) */
|
||||
unsigned HOST_WIDE_INT format_num; /* number of format argument */
|
||||
unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */
|
||||
+ int null_format_ok; /* TRUE if the format string may be NULL */
|
||||
} function_format_info;
|
||||
|
||||
static bool decode_format_attr PARAMS ((tree,
|
||||
@@ -249,7 +253,7 @@
|
||||
{
|
||||
if (validated_p)
|
||||
abort ();
|
||||
- error ("unrecognized format specifier");
|
||||
+ error_with_decl (getdecls (), "unrecognized format specifier");
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@@ -540,6 +544,7 @@
|
||||
/* Pointer to type of argument expected if '*' is used for a precision,
|
||||
or NULL if '*' not used for precisions. */
|
||||
tree *const precision_type;
|
||||
+ const int null_format_ok;
|
||||
} format_kind_info;
|
||||
|
||||
|
||||
@@ -783,6 +788,18 @@
|
||||
{ "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" },
|
||||
/* GNU conversion specifiers. */
|
||||
{ "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
|
||||
+ /* BSD conversion specifiers. */
|
||||
+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c).
|
||||
+ The format %b is supported to decode error registers.
|
||||
+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*");
|
||||
+ which produces: reg=3<BITTWO,BITONE>
|
||||
+ The format %D provides a hexdump given a pointer and separator string:
|
||||
+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX
|
||||
+ ("%*D", len, ptr, " ") -> XX XX XX XX ...
|
||||
+ */
|
||||
+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" },
|
||||
+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
|
||||
+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
|
||||
{ NULL, 0, 0, NOLENGTHS, NULL, NULL }
|
||||
};
|
||||
|
||||
@@ -847,23 +864,29 @@
|
||||
printf_flag_specs, printf_flag_pairs,
|
||||
FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
|
||||
'w', 0, 'p', 0, 'L',
|
||||
- &integer_type_node, &integer_type_node
|
||||
+ &integer_type_node, &integer_type_node, 0
|
||||
},
|
||||
{ "scanf", scanf_length_specs, scan_char_table, "*'I", NULL,
|
||||
scanf_flag_specs, scanf_flag_pairs,
|
||||
FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK,
|
||||
'w', 0, 0, '*', 'L',
|
||||
- NULL, NULL
|
||||
+ NULL, NULL, 0
|
||||
},
|
||||
{ "strftime", NULL, time_char_table, "_-0^#", "EO",
|
||||
strftime_flag_specs, strftime_flag_pairs,
|
||||
FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0,
|
||||
- NULL, NULL
|
||||
+ NULL, NULL, 0
|
||||
},
|
||||
{ "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL,
|
||||
strfmon_flag_specs, strfmon_flag_pairs,
|
||||
FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L',
|
||||
- NULL, NULL
|
||||
+ NULL, NULL, 0
|
||||
+ },
|
||||
+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
|
||||
+ printf_flag_specs, printf_flag_pairs,
|
||||
+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK,
|
||||
+ 'w', 0, 'p', 0, 'L',
|
||||
+ &integer_type_node, &integer_type_node, 1
|
||||
}
|
||||
};
|
||||
|
||||
@@ -917,6 +940,14 @@
|
||||
|
||||
static void check_format_types PARAMS ((int *, format_wanted_type *));
|
||||
|
||||
+
|
||||
+inline static int get_null_fmt_ok (fmttype)
|
||||
+ enum format_type fmttype;
|
||||
+{
|
||||
+ return format_types[(int)fmttype].null_format_ok;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/* Decode a format type from a string, returning the type, or
|
||||
format_type_error if not valid, in which case the caller should print an
|
||||
error message. */
|
||||
@@ -1475,7 +1506,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");
|
||||
|
||||
/* Skip to first argument to check, so we can see if this format
|
||||
has any arguments (it shouldn't). */
|
||||
@@ -1986,6 +2017,57 @@
|
||||
}
|
||||
}
|
||||
|
||||
+ if (*format_chars == 'b')
|
||||
+ {
|
||||
+ /* There should be an int arg to control the string arg. */
|
||||
+ if (params == 0)
|
||||
+ {
|
||||
+ status_warning (status, "too few arguments for format");
|
||||
+ 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))
|
||||
+ {
|
||||
+ status_warning (status, "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)
|
||||
+ {
|
||||
+ status_warning (status, "too few arguments for format");
|
||||
+ return;
|
||||
+ }
|
||||
+ if (info->first_arg_num != 0)
|
||||
+ {
|
||||
+ tree cur_type;
|
||||
+
|
||||
+ 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)
|
||||
+ {
|
||||
+ status_warning (status,
|
||||
+ "ethernet address is not type unsigned char * (arg %d)",
|
||||
+ arg_num);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
format_char = *format_chars;
|
||||
if (format_char == 0
|
||||
|| (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK)
|
||||
@@ -2112,7 +2194,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);
|
@ -1,13 +0,0 @@
|
||||
--- gcc/flags.h.orig Sun Jan 31 09:46:18 1999
|
||||
+++ gcc/flags.h Tue Mar 30 13:17:11 1999
|
||||
@@ -137,6 +137,10 @@
|
||||
|
||||
extern int warn_aggregate_return;
|
||||
|
||||
+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */
|
||||
+
|
||||
+extern int flag_format_extensions;
|
||||
+
|
||||
/* Nonzero if generating code to do profiling. */
|
||||
|
||||
extern int profile_flag;
|
@ -1,21 +0,0 @@
|
||||
--- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000
|
||||
+++ gcc/toplev.c Mon Jun 26 20:19:31 2000
|
||||
@@ -787,6 +787,9 @@
|
||||
/* Tag all structures with __attribute__(packed) */
|
||||
int flag_pack_struct = 0;
|
||||
|
||||
+/* Nonzero means that -Wformat accepts certain system-dependent formats. */
|
||||
+int flag_format_extensions = 0;
|
||||
+
|
||||
/* Emit code to check for stack overflow; also may cause large objects
|
||||
to be allocated dynamically. */
|
||||
int flag_stack_check;
|
||||
@@ -1064,6 +1067,8 @@
|
||||
"Do the full regmove optimization pass"},
|
||||
{"pack-struct", &flag_pack_struct, 1,
|
||||
N_("Pack structure members together without holes") },
|
||||
+ {"format-extensions", &flag_format_extensions, 1,
|
||||
+ N_("-Wformat accepts certain FreeBSD system-dependent formats") },
|
||||
{"stack-check", &flag_stack_check, 1,
|
||||
N_("Insert stack checking code into the program") },
|
||||
{"argument-alias", &flag_argument_noalias, 0,
|
@ -1,14 +0,0 @@
|
||||
--- gcc/config/freebsd-spec.h.org Sat Aug 13 10:18:00 2005
|
||||
+++ gcc/config/freebsd-spec.h Sat Aug 13 18:40:03 2005
|
||||
@@ -48,6 +48,11 @@
|
||||
|| !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \
|
||||
|| !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker"))
|
||||
|
||||
+#if FBSD_MAJOR == 7
|
||||
+#define FBSD_CPP_PREDEFINES \
|
||||
+ "-D__FreeBSD__=7 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
|
||||
+#endif
|
||||
+
|
||||
#if FBSD_MAJOR == 6
|
||||
#define FBSD_CPP_PREDEFINES \
|
||||
"-D__FreeBSD__=6 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD"
|
@ -1,10 +0,0 @@
|
||||
--- gcc/config.gcc.org Sat Mar 1 03:38:19 2003
|
||||
+++ gcc/config.gcc Sat Aug 13 10:11:06 2005
|
||||
@@ -445,6 +445,7 @@
|
||||
*-*-freebsd4 | *-*-freebsd[4].*) fbsd_tm_file="freebsd4.h";;
|
||||
*-*-freebsd5 | *-*-freebsd[5].*) fbsd_tm_file="freebsd5.h";;
|
||||
*-*-freebsd6 | *-*-freebsd[6].*) fbsd_tm_file="freebsd6.h";;
|
||||
+ *-*-freebsd7 | *-*-freebsd[7].*) fbsd_tm_file="freebsd7.h";;
|
||||
*) echo 'Please update *-*-freebsd* in gcc/config.gcc'; exit 1;;
|
||||
esac
|
||||
tmake_file="t-slibgcc-elf-ver t-freebsd"
|
@ -1,23 +0,0 @@
|
||||
--- gcc/config/freebsd-spec.h.orig Tue Mar 2 14:34:55 2004
|
||||
+++ gcc/config/freebsd-spec.h Fri Dec 17 11:22:26 2004
|
||||
@@ -130,11 +130,20 @@
|
||||
}"
|
||||
#else
|
||||
#if FBSD_MAJOR >= 5
|
||||
+#include <sys/param.h>
|
||||
+#if __FreeBSD_version < 502102 /* upto FreeBSD 5.2.1 */
|
||||
#define FBSD_LIB_SPEC " \
|
||||
%{!shared: \
|
||||
%{!pg: %{pthread:-lc_r} -lc} \
|
||||
%{pg: %{pthread:-lc_r_p} -lc_p} \
|
||||
}"
|
||||
+#else
|
||||
+#define FBSD_LIB_SPEC " \
|
||||
+ %{!shared: \
|
||||
+ %{!pg: %{pthread:-lpthread} -lc} \
|
||||
+ %{pg: %{pthread:-lpthread_p} -lc_p} \
|
||||
+ }"
|
||||
+#endif /* deal with FreeBSD 5.0 - 5.2.1 */
|
||||
#else
|
||||
#define FBSD_LIB_SPEC " \
|
||||
%{!shared: \
|
@ -1,52 +0,0 @@
|
||||
$FreeBSD$
|
||||
|
||||
http://gcc.gnu.org/ml/gcc-patches/2003-05/msg00629.html
|
||||
Date: Wed, 7 May 2003 17:52:21 -0700
|
||||
From: Richard Henderson <rth@redhat.com>
|
||||
Subject: fix amd64 xfmode splits
|
||||
Message-ID: <20030508005221.GX27351@redhat.com>
|
||||
|
||||
Test case for this is FreeBSD vfprintf.c (i.e. a tad big) and
|
||||
I wasn't able to reduce the test. The cause is evident though:
|
||||
the second part of a 12-byte quantity is SImode, not DImode,
|
||||
and so is invalid as a base address.
|
||||
|
||||
r~
|
||||
|
||||
* config/i386/i386.c (ix86_split_long_move): Fix base register
|
||||
mode for XFmode splits for TARGET_64BIT.
|
||||
|
||||
--- gcc/config/i386/i386.c.orig Wed Mar 12 01:04:01 2003
|
||||
+++ gcc/config/i386/i386.c Sun Dec 19 10:39:53 2004
|
||||
@@ -8828,15 +8828,24 @@
|
||||
Do an lea to the last part and use only one colliding move. */
|
||||
else if (collisions > 1)
|
||||
{
|
||||
+ rtx base;
|
||||
+
|
||||
collisions = 1;
|
||||
- emit_insn (gen_rtx_SET (VOIDmode, part[0][nparts - 1],
|
||||
- XEXP (part[1][0], 0)));
|
||||
- part[1][0] = change_address (part[1][0],
|
||||
- TARGET_64BIT ? DImode : SImode,
|
||||
- part[0][nparts - 1]);
|
||||
- part[1][1] = adjust_address (part[1][0], VOIDmode, UNITS_PER_WORD);
|
||||
+
|
||||
+ base = part[0][nparts - 1];
|
||||
+
|
||||
+ /* Handle the case when the last part isn't valid for lea.
|
||||
+ Happens in 64-bit mode storing the 12-byte XFmode. */
|
||||
+ if (GET_MODE (base) != Pmode)
|
||||
+ base = gen_rtx_REG (Pmode, REGNO (base));
|
||||
+
|
||||
+ emit_insn (gen_rtx_SET (VOIDmode, base, XEXP (part[1][0], 0)));
|
||||
+ part[1][0] = replace_equiv_address (part[1][0], base);
|
||||
+ part[1][1] = replace_equiv_address (part[1][1],
|
||||
+ plus_constant (base, UNITS_PER_WORD));
|
||||
if (nparts == 3)
|
||||
- part[1][2] = adjust_address (part[1][0], VOIDmode, 8);
|
||||
+ part[1][2] = replace_equiv_address (part[1][2],
|
||||
+ plus_constant (base, 8));
|
||||
}
|
||||
}
|
||||
|
@ -1,99 +0,0 @@
|
||||
--- llvm-gcc/include/obstack.h:1.1.1.1 Thu Jan 8 15:59:16 2004
|
||||
+++ include/obstack.h Fri Jun 18 12:52:45 2004
|
||||
@@ -343,7 +343,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
-#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = achar)
|
||||
+#define obstack_1grow_fast(h,achar) (*((h)->next_free)++ = (achar))
|
||||
|
||||
#define obstack_blank_fast(h,n) ((h)->next_free += (n))
|
||||
|
||||
@@ -411,7 +411,7 @@
|
||||
({ struct obstack *__o = (OBSTACK); \
|
||||
if (__o->next_free + 1 > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, 1); \
|
||||
- *(__o->next_free)++ = (datum); \
|
||||
+ obstack_1grow_fast (__o, datum); \
|
||||
(void) 0; })
|
||||
|
||||
/* These assume that the obstack alignment is good enough for pointers or ints,
|
||||
@@ -423,19 +423,28 @@
|
||||
({ struct obstack *__o = (OBSTACK); \
|
||||
if (__o->next_free + sizeof (void *) > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, sizeof (void *)); \
|
||||
- *((void **)__o->next_free)++ = ((void *)datum); \
|
||||
- (void) 0; })
|
||||
+ obstack_ptr_grow_fast (__o, datum); })
|
||||
|
||||
# define obstack_int_grow(OBSTACK,datum) \
|
||||
__extension__ \
|
||||
({ struct obstack *__o = (OBSTACK); \
|
||||
if (__o->next_free + sizeof (int) > __o->chunk_limit) \
|
||||
_obstack_newchunk (__o, sizeof (int)); \
|
||||
- *((int *)__o->next_free)++ = ((int)datum); \
|
||||
+ obstack_int_grow_fast (__o, datum); })
|
||||
+
|
||||
+# define obstack_ptr_grow_fast(OBSTACK,aptr) \
|
||||
+__extension__ \
|
||||
+({ struct obstack *__o1 = (OBSTACK); \
|
||||
+ *(const void **) __o1->next_free = (aptr); \
|
||||
+ __o1->next_free += sizeof (const void *); \
|
||||
(void) 0; })
|
||||
|
||||
-# define obstack_ptr_grow_fast(h,aptr) (*((void **) (h)->next_free)++ = (void *)aptr)
|
||||
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
|
||||
+# define obstack_int_grow_fast(OBSTACK,aint) \
|
||||
+__extension__ \
|
||||
+({ struct obstack *__o1 = (OBSTACK); \
|
||||
+ *(int *) __o1->next_free = (aint); \
|
||||
+ __o1->next_free += sizeof (int); \
|
||||
+ (void) 0; })
|
||||
|
||||
# define obstack_blank(OBSTACK,length) \
|
||||
__extension__ \
|
||||
@@ -443,7 +452,7 @@
|
||||
int __len = (length); \
|
||||
if (__o->chunk_limit - __o->next_free < __len) \
|
||||
_obstack_newchunk (__o, __len); \
|
||||
- __o->next_free += __len; \
|
||||
+ obstack_blank_fast (__o, __len); \
|
||||
(void) 0; })
|
||||
|
||||
# define obstack_alloc(OBSTACK,length) \
|
||||
@@ -530,26 +539,29 @@
|
||||
# define obstack_1grow(h,datum) \
|
||||
( (((h)->next_free + 1 > (h)->chunk_limit) \
|
||||
? (_obstack_newchunk ((h), 1), 0) : 0), \
|
||||
- (*((h)->next_free)++ = (datum)))
|
||||
+ obstack_1grow_fast (h, datum))
|
||||
|
||||
# define obstack_ptr_grow(h,datum) \
|
||||
( (((h)->next_free + sizeof (char *) > (h)->chunk_limit) \
|
||||
? (_obstack_newchunk ((h), sizeof (char *)), 0) : 0), \
|
||||
- (*((char **) (((h)->next_free+=sizeof(char *))-sizeof(char *))) = ((char *) datum)))
|
||||
+ obstack_ptr_grow_fast (h, datum))
|
||||
|
||||
# define obstack_int_grow(h,datum) \
|
||||
( (((h)->next_free + sizeof (int) > (h)->chunk_limit) \
|
||||
? (_obstack_newchunk ((h), sizeof (int)), 0) : 0), \
|
||||
- (*((int *) (((h)->next_free+=sizeof(int))-sizeof(int))) = ((int) datum)))
|
||||
+ obstack_int_grow_fast (h, datum))
|
||||
+
|
||||
+# define obstack_ptr_grow_fast(h,aptr) \
|
||||
+ (((const void **) ((h)->next_free += sizeof (void *)))[-1] = (aptr))
|
||||
|
||||
-# define obstack_ptr_grow_fast(h,aptr) (*((char **) (h)->next_free)++ = (char *) aptr)
|
||||
-# define obstack_int_grow_fast(h,aint) (*((int *) (h)->next_free)++ = (int) aint)
|
||||
+# define obstack_int_grow_fast(h,aint) \
|
||||
+ (((int *) ((h)->next_free += sizeof (int)))[-1] = (aptr))
|
||||
|
||||
# define obstack_blank(h,length) \
|
||||
( (h)->temp = (length), \
|
||||
(((h)->chunk_limit - (h)->next_free < (h)->temp) \
|
||||
? (_obstack_newchunk ((h), (h)->temp), 0) : 0), \
|
||||
- ((h)->next_free += (h)->temp))
|
||||
+ obstack_blank_fast (h, (h)->temp))
|
||||
|
||||
# define obstack_alloc(h,length) \
|
||||
(obstack_blank ((h), (length)), obstack_finish ((h)))
|
@ -1,11 +0,0 @@
|
||||
--- Makefile.in.orig Mon Oct 7 13:47:05 2002
|
||||
+++ Makefile.in Fri Nov 22 14:23:28 2002
|
||||
@@ -154,7 +154,7 @@
|
||||
then echo $$r/texinfo/makeinfo/makeinfo ; \
|
||||
else if (makeinfo --version \
|
||||
| egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \
|
||||
- then echo makeinfo; else echo $$s/missing makeinfo; fi; fi`
|
||||
+ then echo makeinfo --no-split ; else echo $$s/missing makeinfo; fi; fi`
|
||||
|
||||
# This just becomes part of the MAKEINFO definition passed down to
|
||||
# sub-makes. It lets flags be given on the command line while still
|
@ -1,9 +0,0 @@
|
||||
GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77.
|
||||
|
||||
This port installs the various front ends as gcc32, g++32, gcj32,
|
||||
and g77-32 into the ${PREFIX}/bin directory.
|
||||
|
||||
WWW: http://gcc.gnu.org/
|
||||
|
||||
- Gerald Pfeifer
|
||||
gerald@FreeBSD.org
|
@ -1,13 +0,0 @@
|
||||
@comment $FreeBSD$
|
||||
bin/cpp32
|
||||
bin/g++filt32
|
||||
bin/g++32
|
||||
bin/g77-32
|
||||
bin/gcc32
|
||||
bin/gcov32
|
||||
bin/%%GNU_HOST%%-gcc32
|
||||
bin/%%GNU_HOST%%-g++32
|
||||
bin/gccbug-%%PORTVERSION%%
|
||||
@comment Insert PLIST.gcc-lib here
|
||||
@comment -=[ begin PLIST.gcc-lib ]=-
|
||||
@comment -=[ end PLIST.gcc-lib ]=-
|
Loading…
Reference in New Issue
Block a user