From b69afd1b7424590038ddf27d3ac77ea551dc8106 Mon Sep 17 00:00:00 2001 From: obrien Date: Thu, 10 Oct 2002 23:19:05 +0000 Subject: Upgrade to a 7-Oct-2002 GCC 3.3 in-development checkout. --- lang/gcc-ooo/Makefile | 81 ++++++++++------- lang/gcc-ooo/distinfo | 6 ++ lang/gcc-ooo/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc-ooo/files/patch-t-freebsd | 10 +++ lang/gcc-ooo/pkg-plist | 42 ++++----- lang/gcc/Makefile | 81 ++++++++++------- lang/gcc/distinfo | 6 ++ lang/gcc/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc/files/patch-t-freebsd | 10 +++ lang/gcc/pkg-plist | 42 ++++----- lang/gcc33/Makefile | 81 ++++++++++------- lang/gcc33/distinfo | 6 ++ lang/gcc33/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc33/files/patch-t-freebsd | 10 +++ lang/gcc33/pkg-plist | 42 ++++----- lang/gcc34/Makefile | 81 ++++++++++------- lang/gcc34/distinfo | 6 ++ lang/gcc34/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc34/files/patch-t-freebsd | 10 +++ lang/gcc34/pkg-plist | 42 ++++----- lang/gcc35/Makefile | 81 ++++++++++------- lang/gcc35/distinfo | 6 ++ lang/gcc35/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc35/files/patch-t-freebsd | 10 +++ lang/gcc35/pkg-plist | 42 ++++----- lang/gcc40/Makefile | 81 ++++++++++------- lang/gcc40/distinfo | 6 ++ lang/gcc40/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc40/files/patch-t-freebsd | 10 +++ lang/gcc40/pkg-plist | 42 ++++----- lang/gcc41/Makefile | 81 ++++++++++------- lang/gcc41/distinfo | 6 ++ lang/gcc41/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc41/files/patch-t-freebsd | 10 +++ lang/gcc41/pkg-plist | 42 ++++----- lang/gcc42/Makefile | 81 ++++++++++------- lang/gcc42/distinfo | 6 ++ lang/gcc42/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc42/files/patch-t-freebsd | 10 +++ lang/gcc42/pkg-plist | 42 ++++----- lang/gcc43/Makefile | 81 ++++++++++------- lang/gcc43/distinfo | 6 ++ lang/gcc43/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc43/files/patch-t-freebsd | 10 +++ lang/gcc43/pkg-plist | 42 ++++----- lang/gcc44/Makefile | 81 ++++++++++------- lang/gcc44/distinfo | 6 ++ lang/gcc44/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc44/files/patch-t-freebsd | 10 +++ lang/gcc44/pkg-plist | 42 ++++----- lang/gcc45/Makefile | 81 ++++++++++------- lang/gcc45/distinfo | 6 ++ lang/gcc45/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc45/files/patch-t-freebsd | 10 +++ lang/gcc45/pkg-plist | 42 ++++----- lang/gcc46/Makefile | 81 ++++++++++------- lang/gcc46/distinfo | 6 ++ lang/gcc46/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc46/files/patch-t-freebsd | 10 +++ lang/gcc46/pkg-plist | 42 ++++----- lang/gcc47/Makefile | 81 ++++++++++------- lang/gcc47/distinfo | 6 ++ lang/gcc47/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc47/files/patch-t-freebsd | 10 +++ lang/gcc47/pkg-plist | 42 ++++----- lang/gcc48/Makefile | 81 ++++++++++------- lang/gcc48/distinfo | 6 ++ lang/gcc48/files/patch-fa | 172 ++++++++++++++++--------------------- lang/gcc48/files/patch-t-freebsd | 10 +++ lang/gcc48/pkg-plist | 42 ++++----- 70 files changed, 2310 insertions(+), 2044 deletions(-) create mode 100644 lang/gcc-ooo/files/patch-t-freebsd create mode 100644 lang/gcc/files/patch-t-freebsd create mode 100644 lang/gcc33/files/patch-t-freebsd create mode 100644 lang/gcc34/files/patch-t-freebsd create mode 100644 lang/gcc35/files/patch-t-freebsd create mode 100644 lang/gcc40/files/patch-t-freebsd create mode 100644 lang/gcc41/files/patch-t-freebsd create mode 100644 lang/gcc42/files/patch-t-freebsd create mode 100644 lang/gcc43/files/patch-t-freebsd create mode 100644 lang/gcc44/files/patch-t-freebsd create mode 100644 lang/gcc45/files/patch-t-freebsd create mode 100644 lang/gcc46/files/patch-t-freebsd create mode 100644 lang/gcc47/files/patch-t-freebsd create mode 100644 lang/gcc48/files/patch-t-freebsd diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile index db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc33/distinfo b/lang/gcc33/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc35/distinfo b/lang/gcc35/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc41/distinfo b/lang/gcc41/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc43/distinfo b/lang/gcc43/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc44/distinfo b/lang/gcc44/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc46/distinfo b/lang/gcc46/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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 db9ba71..f5eacf8 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 @@ -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 diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo index e69de29..d515efb 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 10385dd..064c33a 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, "*"); -+ which produces: reg=3 -+ 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, "*"); ++ which produces: reg=3 ++ 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 0000000..cdbf61b --- /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 8be9fd8..b404eea 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%% -- cgit v1.1