aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lang/gcc-ooo/Makefile81
-rw-r--r--lang/gcc-ooo/distinfo6
-rw-r--r--lang/gcc-ooo/files/patch-fa172
-rw-r--r--lang/gcc-ooo/files/patch-t-freebsd10
-rw-r--r--lang/gcc-ooo/pkg-plist42
-rw-r--r--lang/gcc/Makefile81
-rw-r--r--lang/gcc/distinfo6
-rw-r--r--lang/gcc/files/patch-fa172
-rw-r--r--lang/gcc/files/patch-t-freebsd10
-rw-r--r--lang/gcc/pkg-plist42
-rw-r--r--lang/gcc33/Makefile81
-rw-r--r--lang/gcc33/distinfo6
-rw-r--r--lang/gcc33/files/patch-fa172
-rw-r--r--lang/gcc33/files/patch-t-freebsd10
-rw-r--r--lang/gcc33/pkg-plist42
-rw-r--r--lang/gcc34/Makefile81
-rw-r--r--lang/gcc34/distinfo6
-rw-r--r--lang/gcc34/files/patch-fa172
-rw-r--r--lang/gcc34/files/patch-t-freebsd10
-rw-r--r--lang/gcc34/pkg-plist42
-rw-r--r--lang/gcc35/Makefile81
-rw-r--r--lang/gcc35/distinfo6
-rw-r--r--lang/gcc35/files/patch-fa172
-rw-r--r--lang/gcc35/files/patch-t-freebsd10
-rw-r--r--lang/gcc35/pkg-plist42
-rw-r--r--lang/gcc40/Makefile81
-rw-r--r--lang/gcc40/distinfo6
-rw-r--r--lang/gcc40/files/patch-fa172
-rw-r--r--lang/gcc40/files/patch-t-freebsd10
-rw-r--r--lang/gcc40/pkg-plist42
-rw-r--r--lang/gcc41/Makefile81
-rw-r--r--lang/gcc41/distinfo6
-rw-r--r--lang/gcc41/files/patch-fa172
-rw-r--r--lang/gcc41/files/patch-t-freebsd10
-rw-r--r--lang/gcc41/pkg-plist42
-rw-r--r--lang/gcc42/Makefile81
-rw-r--r--lang/gcc42/distinfo6
-rw-r--r--lang/gcc42/files/patch-fa172
-rw-r--r--lang/gcc42/files/patch-t-freebsd10
-rw-r--r--lang/gcc42/pkg-plist42
-rw-r--r--lang/gcc43/Makefile81
-rw-r--r--lang/gcc43/distinfo6
-rw-r--r--lang/gcc43/files/patch-fa172
-rw-r--r--lang/gcc43/files/patch-t-freebsd10
-rw-r--r--lang/gcc43/pkg-plist42
-rw-r--r--lang/gcc44/Makefile81
-rw-r--r--lang/gcc44/distinfo6
-rw-r--r--lang/gcc44/files/patch-fa172
-rw-r--r--lang/gcc44/files/patch-t-freebsd10
-rw-r--r--lang/gcc44/pkg-plist42
-rw-r--r--lang/gcc45/Makefile81
-rw-r--r--lang/gcc45/distinfo6
-rw-r--r--lang/gcc45/files/patch-fa172
-rw-r--r--lang/gcc45/files/patch-t-freebsd10
-rw-r--r--lang/gcc45/pkg-plist42
-rw-r--r--lang/gcc46/Makefile81
-rw-r--r--lang/gcc46/distinfo6
-rw-r--r--lang/gcc46/files/patch-fa172
-rw-r--r--lang/gcc46/files/patch-t-freebsd10
-rw-r--r--lang/gcc46/pkg-plist42
-rw-r--r--lang/gcc47/Makefile81
-rw-r--r--lang/gcc47/distinfo6
-rw-r--r--lang/gcc47/files/patch-fa172
-rw-r--r--lang/gcc47/files/patch-t-freebsd10
-rw-r--r--lang/gcc47/pkg-plist42
-rw-r--r--lang/gcc48/Makefile81
-rw-r--r--lang/gcc48/distinfo6
-rw-r--r--lang/gcc48/files/patch-fa172
-rw-r--r--lang/gcc48/files/patch-t-freebsd10
-rw-r--r--lang/gcc48/pkg-plist42
70 files changed, 2310 insertions, 2044 deletions
diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc-ooo/Makefile
+++ b/lang/gcc-ooo/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc-ooo/distinfo
+++ b/lang/gcc-ooo/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc-ooo/files/patch-fa b/lang/gcc-ooo/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc-ooo/files/patch-fa
+++ b/lang/gcc-ooo/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc-ooo/files/patch-t-freebsd b/lang/gcc-ooo/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc-ooo/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc-ooo/pkg-plist b/lang/gcc-ooo/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc-ooo/pkg-plist
+++ b/lang/gcc-ooo/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc/Makefile
+++ b/lang/gcc/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc/distinfo
+++ b/lang/gcc/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc/files/patch-fa b/lang/gcc/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc/files/patch-fa
+++ b/lang/gcc/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc/files/patch-t-freebsd b/lang/gcc/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc/pkg-plist b/lang/gcc/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc/pkg-plist
+++ b/lang/gcc/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc33/Makefile b/lang/gcc33/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc33/Makefile
+++ b/lang/gcc33/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc33/distinfo b/lang/gcc33/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc33/distinfo
+++ b/lang/gcc33/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc33/files/patch-fa b/lang/gcc33/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc33/files/patch-fa
+++ b/lang/gcc33/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc33/files/patch-t-freebsd b/lang/gcc33/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc33/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc33/pkg-plist b/lang/gcc33/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc33/pkg-plist
+++ b/lang/gcc33/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc34/Makefile b/lang/gcc34/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc34/Makefile
+++ b/lang/gcc34/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc34/distinfo
+++ b/lang/gcc34/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc34/files/patch-fa b/lang/gcc34/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc34/files/patch-fa
+++ b/lang/gcc34/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc34/files/patch-t-freebsd b/lang/gcc34/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc34/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc34/pkg-plist b/lang/gcc34/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc34/pkg-plist
+++ b/lang/gcc34/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc35/Makefile b/lang/gcc35/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc35/Makefile
+++ b/lang/gcc35/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc35/distinfo b/lang/gcc35/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc35/distinfo
+++ b/lang/gcc35/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc35/files/patch-fa b/lang/gcc35/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc35/files/patch-fa
+++ b/lang/gcc35/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc35/files/patch-t-freebsd b/lang/gcc35/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc35/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc35/pkg-plist b/lang/gcc35/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc35/pkg-plist
+++ b/lang/gcc35/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc40/Makefile b/lang/gcc40/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc40/Makefile
+++ b/lang/gcc40/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc40/distinfo
+++ b/lang/gcc40/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc40/files/patch-fa b/lang/gcc40/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc40/files/patch-fa
+++ b/lang/gcc40/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc40/files/patch-t-freebsd b/lang/gcc40/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc40/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc40/pkg-plist b/lang/gcc40/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc40/pkg-plist
+++ b/lang/gcc40/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc41/Makefile b/lang/gcc41/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc41/Makefile
+++ b/lang/gcc41/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc41/distinfo b/lang/gcc41/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc41/distinfo
+++ b/lang/gcc41/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc41/files/patch-fa b/lang/gcc41/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc41/files/patch-fa
+++ b/lang/gcc41/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc41/files/patch-t-freebsd b/lang/gcc41/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc41/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc41/pkg-plist b/lang/gcc41/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc41/pkg-plist
+++ b/lang/gcc41/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc42/Makefile b/lang/gcc42/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc42/Makefile
+++ b/lang/gcc42/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc42/distinfo
+++ b/lang/gcc42/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc42/files/patch-fa b/lang/gcc42/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc42/files/patch-fa
+++ b/lang/gcc42/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc42/files/patch-t-freebsd b/lang/gcc42/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc42/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc42/pkg-plist b/lang/gcc42/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc42/pkg-plist
+++ b/lang/gcc42/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc43/Makefile b/lang/gcc43/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc43/Makefile
+++ b/lang/gcc43/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc43/distinfo b/lang/gcc43/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc43/distinfo
+++ b/lang/gcc43/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc43/files/patch-fa b/lang/gcc43/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc43/files/patch-fa
+++ b/lang/gcc43/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc43/files/patch-t-freebsd b/lang/gcc43/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc43/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc43/pkg-plist b/lang/gcc43/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc43/pkg-plist
+++ b/lang/gcc43/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc44/Makefile b/lang/gcc44/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc44/Makefile
+++ b/lang/gcc44/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc44/distinfo b/lang/gcc44/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc44/distinfo
+++ b/lang/gcc44/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc44/files/patch-fa b/lang/gcc44/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc44/files/patch-fa
+++ b/lang/gcc44/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc44/files/patch-t-freebsd b/lang/gcc44/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc44/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc44/pkg-plist b/lang/gcc44/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc44/pkg-plist
+++ b/lang/gcc44/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc45/Makefile b/lang/gcc45/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc45/Makefile
+++ b/lang/gcc45/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc45/distinfo
+++ b/lang/gcc45/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc45/files/patch-fa b/lang/gcc45/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc45/files/patch-fa
+++ b/lang/gcc45/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc45/files/patch-t-freebsd b/lang/gcc45/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc45/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc45/pkg-plist b/lang/gcc45/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc45/pkg-plist
+++ b/lang/gcc45/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc46/Makefile b/lang/gcc46/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc46/Makefile
+++ b/lang/gcc46/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc46/distinfo b/lang/gcc46/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc46/distinfo
+++ b/lang/gcc46/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc46/files/patch-fa
+++ b/lang/gcc46/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc46/files/patch-t-freebsd b/lang/gcc46/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc46/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc46/pkg-plist b/lang/gcc46/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc46/pkg-plist
+++ b/lang/gcc46/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc47/Makefile
+++ b/lang/gcc47/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc47/distinfo
+++ b/lang/gcc47/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc47/files/patch-fa b/lang/gcc47/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc47/files/patch-fa
+++ b/lang/gcc47/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc47/files/patch-t-freebsd b/lang/gcc47/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc47/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc47/pkg-plist b/lang/gcc47/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc47/pkg-plist
+++ b/lang/gcc47/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%
diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile
index db9ba71425be..f5eacf810622 100644
--- a/lang/gcc48/Makefile
+++ b/lang/gcc48/Makefile
@@ -6,37 +6,39 @@
# $FreeBSD$
#
-SNAPDATE= 2002-05-18
+SNAPDATE= 2002-10-07
SNAPVER= ${SNAPDATE:S/-//g}
+#CVS_DATE= ${SNAPDATE} 18:53:04 EDT
PORTNAME= gcc
-PORTVERSION= 3.2
+PORTVERSION= 3.3
PORTREVISION= ${SNAPVER}
CATEGORIES= lang java
MASTER_SITES= ${MASTER_SITE_SOURCEWARE} \
- ftp://egcs.cygnus.com/pub/egcs/snapshots/${SNAPDATE}/
+ ftp://gcc.gnu.org/pub/%SUBDIR%/
MASTER_SITE_SUBDIR= gcc/snapshots/${SNAPDATE}
-#DISTFILES= \
-# gcc-core-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-java-${SNAPVER}${EXTRACT_SUFX} \
-# gcc-objc-${SNAPVER}${EXTRACT_SUFX}
-# gcc-ss-3.2-0_${SNAPVER}.src.rpm
+.if !defined(CVS_DATE)
+DISTFILES= \
+ gcc-core-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g++-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-g77-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-java-${SNAPVER}${EXTRACT_SUFX} \
+ gcc-objc-${SNAPVER}${EXTRACT_SUFX}
+.endif
PATCH_SITES= ftp://relay.nuxi.com/obrien/
-PATCHFILES= port_gcc32_${SNAPDATE}.diff
+PATCHFILES= port_gcc33_${SNAPDATE}.diff
MAINTAINER= obrien@FreeBSD.org
NO_CDROM= 'dated material'
-LATEST_LINK= gcc32
+LATEST_LINK= gcc33
USE_BZIP2= yes
-CVS_DATE= ${SNAPDATE} 04:27:07 EDT
PATCH_WRKSRC= ${SRCDIR}
CONFIGURE_SCRIPT= ../${SRCDIR:C/${WRKDIR}//}/configure
+#NOMANCOMPRESS= yes # to hard to deal with differences on 5-cur and releng4
.include <bsd.port.pre.mk>
@@ -47,7 +49,7 @@ CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
#GCC_REV= ${PORTVERSION:C/\.0$//}
-GCC_REV= 3.2
+GCC_REV= 3.3
#SRCDIR= ${WRKDIR}/gcc-${GCC_REV}
SRCDIR= ${WRKDIR}/gcc-${SNAPVER}
WRKSRC= ${WRKDIR}/build
@@ -58,9 +60,13 @@ GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_BISON= yes
CONFIGURE_ARGS= --disable-nls --with-gnu-as --with-gnu-ld \
- --with-gxx-include-dir=${TARGLIB}/include/g++
-#CONFIGURE_ARGS+= --program-prefix=e
+ --with-gxx-include-dir=${TARGLIB}/include/g++-v3
+#CONFIGURE_ARGS+= --program-suffix=33
+# Java
+CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB}
+#CONFIGURE_ARGS+= --disable-libgcj # does not bootstrap now
CONFIGURE_ENV= MAKEINFO="makeinfo --no-split"
+MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
.if defined(WANT_SHAREDLIBS)
CONFIGURE_ARGS+= --enable-shared
.else
@@ -72,11 +78,13 @@ CONFIGURE_ARGS+= --enable-threads
CONFIGURE_ARGS+= --enable-threads=posix
.endif
ALL_TARGET= bootstrap
-#MAN1= cpp32.1 g++32.1 g77-32.1 gcc32.1 gcov32.1
-MAN1= g++32.1
+MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \
+ gcj33.1 gcjh33.1 gij.1 \
+ jcf-dump33.1 jv-scan33.1 jv-convert.1
+MAN7= fsf-funding.7 gfdl.7 gpl.7
pre-fetch:
- @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${ARCH}-portbld-freebsd${OSREL}"
+ @${ECHO} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}"
.if defined(CVS_DATE)
NO_CHECKSUM= yes
@@ -107,7 +115,7 @@ do-fetch:
do-extract:
${MKDIR} ${SRCDIR}
cd ${DISTDIR}/${DIST_SUBDIR}/gcc ; pax -pe -rwt . ${SRCDIR}
-.endif
+.endif # CVS_DATE
pre-configure:
@# Keep from running `autoconf' and `autoheader' since we modified
@@ -125,37 +133,45 @@ pre-install:
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/g77 ${PREFIX}/bin/gcov \
${PREFIX}/bin/${CONFIGURE_TARGET}-gcc \
${TARGLIB}/cc1 ${TARGLIB}/cc1obj ${TARGLIB}/cc1plus \
${TARGLIB}/collect2 ${TARGLIB}/f771 ; \
do \
strip $$prog ; \
done )
-.for file in gcc g++ cpp g++filt gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
- ${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 )
+.for file in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh jv-scan jcf-dump jar grepjar
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}33.1 )
.endfor
.for file in g77
- ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-32
- #${MV} -f ${PREFIX}/man/man1/${file}.1 ${PREFIX}/man/man1/${file}-32.1
+ ${MV} -f ${PREFIX}/bin/${file} ${PREFIX}/bin/${file}-33
+ ( ${TEST} ! -e ${PREFIX}/man/man1/${file}.1 \
+ || ${MV} -f ${PREFIX}/man/man1/${file}.1 \
+ ${PREFIX}/man/man1/${file}-33.1 )
.endfor
- ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${SNAPVER}
+ ${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
${MV} -f ${PREFIX}/lib/${file}.* ${TARGLIB}
.endfor
-${MV} -f ${PREFIX}/lib/ieee ${TARGLIB}
+ # Java
+ -${MV} -f ${PREFIX}/lib/libgcj.* ${TARGLIB}
${RM} -f ${PREFIX}/lib/libiberty.a
${RM} -f ${TARGLIB}/*.la
.for info in cpp cppinternals g77 gcc gcj
install-info ${PREFIX}/info/${info}.info ${PREFIX}/info/dir
.endfor
+# 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
@@ -171,4 +187,9 @@ post-install:
${CP} -p ${TMPPLIST} ${TMPPLIST}.pre-gcc-lib
cd ${WRKDIR} ; ex < ex.script
+cklatest:
+.for SITE in ftp://mirrors.rcn.net/mirrors/sources.redhat.com/gcc/snapshots/ ftp://sources.redhat.com/pub/gcc/snapshots/
+ @-ncftpls ${SITE} | grep LATEST
+.endfor
+
.include <bsd.port.post.mk>
diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo
index e69de29bb2d1..d515efb6a048 100644
--- a/lang/gcc48/distinfo
+++ b/lang/gcc48/distinfo
@@ -0,0 +1,6 @@
+MD5 (gcc-core-20021007.tar.bz2) = 3c8d8adb8745d75406230fb35f37e65f
+MD5 (gcc-g++-20021007.tar.bz2) = e659709e6ab9ba1562a9129fe256bd0d
+MD5 (gcc-g77-20021007.tar.bz2) = 15636b31bb84ff77b22333f084dcce83
+MD5 (gcc-java-20021007.tar.bz2) = 5e312e6f2861b10a1eaa4925125b2457
+MD5 (gcc-objc-20021007.tar.bz2) = d5b24ef596a364f6b87d1c1509ae70c1
+MD5 (port_gcc33_2002-10-07.diff) = 2bd6e3d9332fa135b86f5b62477323c2
diff --git a/lang/gcc48/files/patch-fa b/lang/gcc48/files/patch-fa
index 10385dd3c7b4..064c33a2eb88 100644
--- a/lang/gcc48/files/patch-fa
+++ b/lang/gcc48/files/patch-fa
@@ -1,142 +1,119 @@
---- gcc/c-format.c.orig Sun Nov 25 10:54:11 2001
-+++ gcc/c-format.c Sat Feb 2 19:04:24 2002
-@@ -82,12 +82,15 @@
+--- 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$ */
++
+ #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 */
++ int null_format_ok; /* TRUE if the format string may be NULL */
} function_format_info;
static bool decode_format_attr PARAMS ((tree,
- function_format_info *, int));
- static enum format_type decode_format_type PARAMS ((const char *));
-
-+/* inline static int get_null_fmt_ok PARAMS ((enum format_type)); */
-+
- /* Handle a "format" attribute; arguments as in
- struct attribute_spec.handler. */
- tree
-@@ -97,6 +100,7 @@
- tree args;
- int flags;
- bool *no_add_attrs;
-+ /* int null_format_ok; */
- {
- tree type = *node;
- function_format_info info;
-@@ -257,6 +261,7 @@
- const char *p = IDENTIFIER_POINTER (format_type_id);
-
- info->format_type = decode_format_type (p);
-+ /* info->null_format_ok = get_null_fmt_ok (format_type); */
-
- if (info->format_type == format_type_error)
- {
-@@ -292,6 +297,7 @@
-
- info->format_num = TREE_INT_CST_LOW (format_num_expr);
- info->first_arg_num = TREE_INT_CST_LOW (first_arg_num_expr);
-+ /* info->null_format_ok = TREE_INT_CST_LOW (null_format_ok); */
- if (info->first_arg_num != 0 && info->first_arg_num <= info->format_num)
+@@ -249,7 +253,7 @@
{
if (validated_p)
-@@ -540,6 +546,8 @@
+ 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;
-+ /* Needed for FreeBSD kernel and the printf0() printf-like function. */
-+ /* int null_format_ok; */
++ const int null_format_ok;
} format_kind_info;
-@@ -765,6 +773,20 @@
-
- static const format_char_info print_char_table[] =
- {
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
-+/* 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 ...
+@@ -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, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "c" },
-+ { "b", 1, STD_EXT, { T89_C, T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" },
-+ { "rz", 0, STD_EXT, { BADLEN, T89_I, T89_I, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" },
-+#define unextended_print_char_table (print_char_table + 3)
-+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly.
- /* C89 conversion specifiers. */
- { "di", 0, STD_C89, { T89_I, T99_SC, T89_S, T89_L, T9L_LL, TEX_LL, T99_SST, T99_PD, T99_IM }, "-wp0 +'I", "i" },
- { "oxX", 0, STD_C89, { T89_UI, T99_UC, T89_US, T89_UL, T9L_ULL, TEX_ULL, T99_ST, T99_UPD, T99_UIM }, "-wp0#", "i" },
-@@ -848,23 +870,36 @@
++ { "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
-+ /* ,0 */
+- &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
-+ /* ,0 */
+- 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
-+ /* ,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
-+ /* ,0 */
- }
-+ /*
-+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL,
+- 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
-+ },
-+ */
++ 'w', 0, 'p', 0, 'L',
++ &integer_type_node, &integer_type_node, 1
+ }
};
-
-@@ -917,6 +952,16 @@
+@@ -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 +1520,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). */
-@@ -1710,6 +1755,54 @@
- main_arg_num = opnum + info->first_arg_num - 1;
+@@ -1986,6 +2017,57 @@
}
}
+
+ if (*format_chars == 'b')
+ {
+ /* There should be an int arg to control the string arg. */
@@ -156,7 +133,8 @@
+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param))
+ != unsigned_type_node))
+ {
-+ status_warning (status, "bitmap is not type int (arg %d)", arg_num);
++ status_warning (status, "bitmap is not type int (arg %d)",
++ arg_num);
+ }
+ }
+ }
@@ -171,6 +149,7 @@
+ if (info->first_arg_num != 0)
+ {
+ tree cur_type;
++
+ cur_param = TREE_VALUE (params);
+ params = TREE_CHAIN (params);
+ ++arg_num;
@@ -180,15 +159,16 @@
+ != unsigned_char_type_node)
+ {
+ status_warning (status,
-+ "ethernet address is not type unsigned char * (arg %d)",
-+ arg_num);
++ "ethernet address is not type unsigned char * (arg %d)",
++ arg_num);
+ }
+ }
+ }
-
- /* Read any format flags, but do not yet validate them beyond removing
- duplicates, since in general validation depends on the rest of
-@@ -2113,7 +2206,7 @@
++
+ 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)
diff --git a/lang/gcc48/files/patch-t-freebsd b/lang/gcc48/files/patch-t-freebsd
new file mode 100644
index 000000000000..cdbf61b233fe
--- /dev/null
+++ b/lang/gcc48/files/patch-t-freebsd
@@ -0,0 +1,10 @@
+--- gcc/config/t-freebsd.orig Tue Oct 1 20:37:02 2002
++++ gcc/config/t-freebsd Tue Oct 1 20:36:10 2002
+@@ -2,4 +2,7 @@
+ STMP_FIXPROTO =
+
++# We don't need GCC's own include files.
++USER_H =
++
+ # Compile crtbeginS.o and crtendS.o with pic.
+ CRTSTUFF_T_CFLAGS_S = -fPIC
diff --git a/lang/gcc48/pkg-plist b/lang/gcc48/pkg-plist
index 8be9fd8a3e7a..b404eea24dec 100644
--- a/lang/gcc48/pkg-plist
+++ b/lang/gcc48/pkg-plist
@@ -1,33 +1,35 @@
@comment $FreeBSD$
-bin/g++filt32
-bin/g++32
-bin/g77-32
-bin/gcc32
-bin/gcov32
-bin/%%GNU_HOST%%-gcc32
-bin/%%GNU_HOST%%-g++32
+bin/g++33
+bin/g77-33
+bin/gcc33
+bin/gcov33
+bin/%%GNU_HOST%%-gcc33
+bin/%%GNU_HOST%%-g++33
bin/gccbug-%%SNAPVER%%
-bin/gcj32
-bin/gcjh32
-bin/jv-scan32
-bin/jcf-dump32
-bin/jar32
-bin/grepjar32
+bin/gcj33
+bin/gcjh33
+bin/jv-scan33
+bin/jcf-dump33
+bin/jar33
+bin/grepjar33
@comment not needed post-libstdc++-v3: %%GNU_HOST%%/include/_G_config.h
@comment Insert PLIST.gcc-lib here
@comment -=[ begin PLIST.gcc-lib ]=-
@comment -=[ end PLIST.gcc-lib ]=-
-unexec install-info --delete %D/info/cppinternals.info %D/info/dir
-unexec install-info --delete %D/info/gcc.info %D/info/dir
-unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/cpp.info %D/info/dir
+@unexec install-info --delete %D/info/cppinternals.info %D/info/dir
+@unexec install-info --delete %D/info/g77.info %D/info/dir
+@unexec install-info --delete %D/info/gcc.info %D/info/dir
+@unexec install-info --delete %D/info/gcj.info %D/info/dir
info/cpp.info
info/cppinternals.info
info/g77.info
info/gcc.info
info/gcj.info
-exec install-info %D/info/cppinternals.info %D/info/dir
-exec install-info %D/info/g77.info %D/info/dir
-exec install-info %D/info/gcc.info %D/info/dir
-exec install-info %D/info/gcj.info %D/info/dir
+@exec install-info %D/info/cpp.info %D/info/dir
+@exec install-info %D/info/cppinternals.info %D/info/dir
+@exec install-info %D/info/g77.info %D/info/dir
+@exec install-info %D/info/gcc.info %D/info/dir
+@exec install-info %D/info/gcj.info %D/info/dir
@comment @dirrm %%GNU_HOST%%/include
@comment @dirrm %%GNU_HOST%%