diff options
author | gerald <gerald@FreeBSD.org> | 2003-11-15 06:01:13 +0800 |
---|---|---|
committer | gerald <gerald@FreeBSD.org> | 2003-11-15 06:01:13 +0800 |
commit | 4050f8d3a976b78ed2e7f032a944cef3e4d4f27e (patch) | |
tree | f876c66720ec8ebf891d2d232bc6bc3e6301d740 | |
parent | 1a07c94319d4dcf12169e93fcaeeb491062c19a6 (diff) | |
download | freebsd-ports-gnome-4050f8d3a976b78ed2e7f032a944cef3e4d4f27e.tar.gz freebsd-ports-gnome-4050f8d3a976b78ed2e7f032a944cef3e4d4f27e.tar.zst freebsd-ports-gnome-4050f8d3a976b78ed2e7f032a944cef3e4d4f27e.zip |
Update from repo-copy of lang/gcc33 to the 2003-11-12 snapshot of GCC 3.4.
There is no bounds-checking patch for GCC 3.4 yet, extended printf format
checking for FreeBSD has not been ported yet, and the port is BROKEN due
to weird libjava build failures which occur if and only if building from
within the FreeBSD ports system.
104 files changed, 585 insertions, 3835 deletions
diff --git a/lang/gcc-ooo/Makefile b/lang/gcc-ooo/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc-ooo/Makefile +++ b/lang/gcc-ooo/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc-ooo/distinfo b/lang/gcc-ooo/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc-ooo/distinfo +++ b/lang/gcc-ooo/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc-ooo/files/opt.patch-bc b/lang/gcc-ooo/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc-ooo/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc-ooo/files/patch-fa b/lang/gcc-ooo/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc-ooo/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc-ooo/files/patch-fb b/lang/gcc-ooo/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc-ooo/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc-ooo/files/patch-fc b/lang/gcc-ooo/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc-ooo/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc-ooo/pkg-descr b/lang/gcc-ooo/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc-ooo/pkg-descr +++ b/lang/gcc-ooo/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc-ooo/pkg-plist b/lang/gcc-ooo/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc-ooo/pkg-plist +++ b/lang/gcc-ooo/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc/Makefile b/lang/gcc/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc/Makefile +++ b/lang/gcc/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc/distinfo b/lang/gcc/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc/distinfo +++ b/lang/gcc/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc/files/opt.patch-bc b/lang/gcc/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc/files/patch-fa b/lang/gcc/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc/files/patch-fb b/lang/gcc/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc/files/patch-fc b/lang/gcc/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc/pkg-descr b/lang/gcc/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc/pkg-descr +++ b/lang/gcc/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc/pkg-plist b/lang/gcc/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc/pkg-plist +++ b/lang/gcc/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc34/Makefile b/lang/gcc34/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc34/Makefile +++ b/lang/gcc34/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc34/distinfo b/lang/gcc34/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc34/distinfo +++ b/lang/gcc34/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc34/files/opt.patch-bc b/lang/gcc34/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc34/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc34/files/patch-fa b/lang/gcc34/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc34/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc34/files/patch-fb b/lang/gcc34/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc34/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc34/files/patch-fc b/lang/gcc34/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc34/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc34/pkg-descr b/lang/gcc34/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc34/pkg-descr +++ b/lang/gcc34/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc34/pkg-plist b/lang/gcc34/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc34/pkg-plist +++ b/lang/gcc34/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc35/Makefile b/lang/gcc35/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc35/Makefile +++ b/lang/gcc35/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc35/distinfo b/lang/gcc35/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc35/distinfo +++ b/lang/gcc35/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc35/files/opt.patch-bc b/lang/gcc35/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc35/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc35/files/patch-fa b/lang/gcc35/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc35/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc35/files/patch-fb b/lang/gcc35/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc35/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc35/files/patch-fc b/lang/gcc35/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc35/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc35/pkg-descr b/lang/gcc35/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc35/pkg-descr +++ b/lang/gcc35/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc35/pkg-plist b/lang/gcc35/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc35/pkg-plist +++ b/lang/gcc35/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc40/Makefile b/lang/gcc40/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc40/Makefile +++ b/lang/gcc40/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc40/distinfo b/lang/gcc40/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc40/distinfo +++ b/lang/gcc40/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc40/files/opt.patch-bc b/lang/gcc40/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc40/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc40/files/patch-fa b/lang/gcc40/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc40/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc40/files/patch-fb b/lang/gcc40/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc40/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc40/files/patch-fc b/lang/gcc40/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc40/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc40/pkg-descr b/lang/gcc40/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc40/pkg-descr +++ b/lang/gcc40/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc40/pkg-plist b/lang/gcc40/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc40/pkg-plist +++ b/lang/gcc40/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc41/Makefile b/lang/gcc41/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc41/Makefile +++ b/lang/gcc41/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc41/distinfo b/lang/gcc41/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc41/distinfo +++ b/lang/gcc41/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc41/files/opt.patch-bc b/lang/gcc41/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc41/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc41/files/patch-fa b/lang/gcc41/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc41/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc41/files/patch-fb b/lang/gcc41/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc41/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc41/files/patch-fc b/lang/gcc41/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc41/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc41/pkg-descr b/lang/gcc41/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc41/pkg-descr +++ b/lang/gcc41/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc41/pkg-plist b/lang/gcc41/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc41/pkg-plist +++ b/lang/gcc41/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc42/Makefile b/lang/gcc42/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc42/Makefile +++ b/lang/gcc42/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc42/distinfo +++ b/lang/gcc42/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc42/files/opt.patch-bc b/lang/gcc42/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc42/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc42/files/patch-fa b/lang/gcc42/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc42/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc42/files/patch-fb b/lang/gcc42/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc42/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc42/files/patch-fc b/lang/gcc42/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc42/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc42/pkg-descr b/lang/gcc42/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc42/pkg-descr +++ b/lang/gcc42/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc42/pkg-plist b/lang/gcc42/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc42/pkg-plist +++ b/lang/gcc42/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc43/Makefile b/lang/gcc43/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc43/Makefile +++ b/lang/gcc43/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc43/distinfo b/lang/gcc43/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc43/distinfo +++ b/lang/gcc43/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc43/files/opt.patch-bc b/lang/gcc43/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc43/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc43/files/patch-fa b/lang/gcc43/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc43/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc43/files/patch-fb b/lang/gcc43/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc43/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc43/files/patch-fc b/lang/gcc43/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc43/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc43/pkg-descr b/lang/gcc43/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc43/pkg-descr +++ b/lang/gcc43/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc43/pkg-plist b/lang/gcc43/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc43/pkg-plist +++ b/lang/gcc43/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc44/Makefile b/lang/gcc44/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc44/Makefile +++ b/lang/gcc44/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc44/distinfo b/lang/gcc44/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc44/distinfo +++ b/lang/gcc44/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc44/files/opt.patch-bc b/lang/gcc44/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc44/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc44/files/patch-fa b/lang/gcc44/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc44/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc44/files/patch-fb b/lang/gcc44/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc44/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc44/files/patch-fc b/lang/gcc44/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc44/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc44/pkg-descr b/lang/gcc44/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc44/pkg-descr +++ b/lang/gcc44/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc44/pkg-plist b/lang/gcc44/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc44/pkg-plist +++ b/lang/gcc44/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc45/Makefile b/lang/gcc45/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc45/Makefile +++ b/lang/gcc45/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc45/distinfo b/lang/gcc45/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc45/distinfo +++ b/lang/gcc45/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc45/files/opt.patch-bc b/lang/gcc45/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc45/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc45/files/patch-fa b/lang/gcc45/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc45/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc45/files/patch-fb b/lang/gcc45/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc45/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc45/files/patch-fc b/lang/gcc45/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc45/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc45/pkg-descr b/lang/gcc45/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc45/pkg-descr +++ b/lang/gcc45/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc45/pkg-plist b/lang/gcc45/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc45/pkg-plist +++ b/lang/gcc45/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc46/Makefile b/lang/gcc46/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc46/Makefile +++ b/lang/gcc46/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc46/distinfo b/lang/gcc46/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc46/distinfo +++ b/lang/gcc46/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc46/files/opt.patch-bc b/lang/gcc46/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc46/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc46/files/patch-fa b/lang/gcc46/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc46/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc46/files/patch-fb b/lang/gcc46/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc46/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc46/files/patch-fc b/lang/gcc46/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc46/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc46/pkg-descr b/lang/gcc46/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc46/pkg-descr +++ b/lang/gcc46/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc46/pkg-plist b/lang/gcc46/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc46/pkg-plist +++ b/lang/gcc46/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc47/Makefile b/lang/gcc47/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc47/Makefile +++ b/lang/gcc47/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc47/distinfo b/lang/gcc47/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc47/distinfo +++ b/lang/gcc47/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc47/files/opt.patch-bc b/lang/gcc47/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc47/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc47/files/patch-fa b/lang/gcc47/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc47/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc47/files/patch-fb b/lang/gcc47/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc47/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc47/files/patch-fc b/lang/gcc47/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc47/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc47/pkg-descr b/lang/gcc47/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc47/pkg-descr +++ b/lang/gcc47/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc47/pkg-plist b/lang/gcc47/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc47/pkg-plist +++ b/lang/gcc47/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h diff --git a/lang/gcc48/Makefile b/lang/gcc48/Makefile index bd9b1f99c339..2dd6f40715ba 100644 --- a/lang/gcc48/Makefile +++ b/lang/gcc48/Makefile @@ -6,17 +6,16 @@ # $FreeBSD$ # -SNAPDATE= 2003-07-07 +SNAPDATE= 2003-11-12 #CVS_DATE= ${SNAPDATE} 18:53:04 EDT PORTNAME= gcc -PORTVERSION= 3.3.1 +PORTVERSION= 3.4 PORTREVISION= ${SNAPDATE:S/-//g} CATEGORIES= lang java -VERSIONSTRING= ${PORTREVISION} -MASTER_SITES= ${MASTER_SITE_GCC} \ - http://web.inter.NL.net/hcc/Haj.Ten.Brugge/:bc -MASTER_SITE_SUBDIR= snapshots/3.3-${PORTREVISION} +VERSIONSTRING= ${PORTVERSION}-${PORTREVISION} +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING} .if !defined(CVS_DATE) DISTFILES= \ gcc-core-${VERSIONSTRING}${EXTRACT_SUFX} \ @@ -28,17 +27,9 @@ DISTFILES= \ .endif MAINTAINER?= ports@FreeBSD.org -COMMENT?= GNU Compiler Collection 3.3 - -.if defined (WITH_BOUNDSCHECKING) -# Fetch another file, but don't extract it. Also add another patchfile. -BCPATCH= bounds-checking-gcc-3.3-1.00.patch.bz2 -DISTFILES+= ${BCPATCH}:bc -EXTRACT_ONLY= ${DISTFILES:S/${BCPATCH}:bc//} -EXTRA_PATCHES= ${FILESDIR}/opt.patch-bc -.endif +COMMENT?= GNU Compiler Collection 3.4 -LATEST_LINK?= gcc33${PKGNAMESUFFIX} +LATEST_LINK?= gcc34${PKGNAMESUFFIX} USE_BZIP2= yes USE_REINPLACE= yes @@ -50,6 +41,8 @@ NOMANCOMPRESS= yes # too hard to deal with differences on 5-cur and releng4 .include <bsd.port.pre.mk> +BROKEN= "Building libjava causes an Internal Compiler Error iff built within the ports tree" + CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL} GCC_VER= ${PORTVERSION:C/\.0$//} @@ -66,7 +59,7 @@ USE_GMAKE= yes USE_BISON= yes CONFIGURE_ARGS= --disable-nls \ --with-gxx-include-dir=${TARGLIB}/include/c++/${GCC_REV} -#CONFIGURE_ARGS+= --program-suffix=33 +#CONFIGURE_ARGS+= --program-suffix=34 # Java CONFIGURE_ARGS+= --with-system-zlib #--includedir=${TARGLIB}/include/Java -libdir=${TARGLIB} MAKE_ARGS+= MAKEINFOFLAGS="--no-split" @@ -83,21 +76,13 @@ CONFIGURE_ARGS+= --enable-threads # ?is this an ObjC only thing? CONFIGURE_ARGS+= --enable-threads=posix .endif -ALL_TARGET= bootstrap -MAN1= cpp33.1 g++33.1 g77-33.1 gcc33.1 gcov33.1 \ - gcj33.1 gcjh33.1 gij33.1 grepjar33.1 jar33.1 \ - jcf-dump33.1 jv-scan33.1 jv-convert33.1 \ - rmic33.1 rmiregistry33.1 +ALL_TARGET= bootstrap-lean +MAN1= cpp34.1 g++34.1 g77-34.1 gcc34.1 gcov34.1 \ + gcj34.1 gcjh34.1 gij34.1 grepjar34.1 jar34.1 \ + jcf-dump34.1 jv-scan34.1 jv-convert34.1 \ + rmic34.1 rmiregistry34.1 MAN7= fsf-funding.7 gfdl.7 gpl.7 -pre-everything:: - @${ECHO_MSG} "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} ${OSREL} ${PORTOBJFORMAT} target ${CONFIGURE_TARGET}" -.if !defined(WITH_BOUNDSCHECKING) - @${ECHO_MSG} "You can enable fine-grained bounds-checking support for compiled C programs" - @${ECHO_MSG} "by defining WITH_BOUNDSCHECKING. Compile and link with \"-fbounds-checking\"" - @${ECHO_MSG} "to use." -.endif - .if defined(CVS_DATE) NO_CHECKSUM= yes DIST_SUBDIR= ${PKGNAME} @@ -126,15 +111,6 @@ do-extract: cd ${DISTDIR}/${DIST_SUBDIR}/${DIST_SUBDIR ; pax -pe -rwt . ${SRCDIR} .endif # CVS_DATE -.if defined(WITH_BOUNDSCHECKING) -# Extract bounds-checking patch, removing the ada parts of the patch with sed. -pre-patch: - cd ${_DISTDIR} ; \ - ${BZCAT} ${BCPATCH} | \ - ${SED} -e '/^--- .*ada/,/^diff/d' | \ - ${PATCH} -d ${PATCH_WRKSRC} -E -p1 --quiet -.endif - post-patch: @${REINPLACE_CMD} -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \ ${SRCDIR}/gcc/version.c @@ -165,16 +141,16 @@ post-install: done ) .for f in gcc g++ cpp gcov ${CONFIGURE_TARGET}-gcc ${CONFIGURE_TARGET}-g++ gcj gcjh gij jv-scan jcf-dump jv-convert jar grepjar rmic rmiregistry ${STRIP_CMD} ${PREFIX}/bin/${f} - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}33.1 ) + ${PREFIX}/man/man1/${f}34.1 ) .endfor .for f in g77 - ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-33 + ${MV} -f ${PREFIX}/bin/${f} ${PREFIX}/bin/${f}-34 ( ${TEST} ! -e ${PREFIX}/man/man1/${f}.1 \ || ${MV} -f ${PREFIX}/man/man1/${f}.1 \ - ${PREFIX}/man/man1/${f}-33.1 ) + ${PREFIX}/man/man1/${f}-34.1 ) .endfor ${MV} -f ${PREFIX}/bin/gccbug ${PREFIX}/bin/gccbug-${PORTVERSION} # These 3 libraries are moved from PREFIX/lib to avoid conflicts diff --git a/lang/gcc48/distinfo b/lang/gcc48/distinfo index bf88314c11db..46072eb180db 100644 --- a/lang/gcc48/distinfo +++ b/lang/gcc48/distinfo @@ -1,7 +1,6 @@ -MD5 (gcc-core-20030707.tar.bz2) = 3df86998f88c234a3896abd4ba8ffd75 -MD5 (gcc-g++-20030707.tar.bz2) = 64f8b0be34d67daf7e5b078b1b1aa015 -MD5 (gcc-g77-20030707.tar.bz2) = 5fe94c84234c624267acdc4bfdc2f407 -MD5 (gcc-java-20030707.tar.bz2) = 6aa26adb77f607e8d7daeba19b0cd96e -MD5 (gcc-objc-20030707.tar.bz2) = 0dfe91ca18dc14c28be450965c9c9201 -MD5 (gcc-testsuite-20030707.tar.bz2) = 3f3e2c3ba9b252b95c60342f7ac49f86 -MD5 (bounds-checking-gcc-3.3-1.00.patch.bz2) = b3ac2dbb902f78ffd3db3e38cab9762b +MD5 (gcc-core-3.4-20031112.tar.bz2) = ddd2582e1e36ae595141359da14a7e01 +MD5 (gcc-g++-3.4-20031112.tar.bz2) = 033b1c1ba2999734f8d958470ad5ae2a +MD5 (gcc-g77-3.4-20031112.tar.bz2) = 90800cc1f0906a3a21c6fb9592f76c9e +MD5 (gcc-java-3.4-20031112.tar.bz2) = 21ef7cb3c30c01c38f126d4876c9b21f +MD5 (gcc-objc-3.4-20031112.tar.bz2) = fa16e047ddd27f31ecd1cd207da0b912 +MD5 (gcc-testsuite-3.4-20031112.tar.bz2) = 35ac46dfff547e03c4bbe8c9091fcc6e diff --git a/lang/gcc48/files/opt.patch-bc b/lang/gcc48/files/opt.patch-bc deleted file mode 100644 index 024997f4c17c..000000000000 --- a/lang/gcc48/files/opt.patch-bc +++ /dev/null @@ -1,11 +0,0 @@ ---- gcc/bounds/lib/Makefile.orig Tue May 20 16:35:05 2003 -+++ gcc/bounds/lib/Makefile Tue May 20 16:35:19 2003 -@@ -14,7 +14,7 @@ - SUBDIR_INCLUDES = -I../.. -I$(srcdir)/bounds/lib -I$(srcdir) -I$(srcdir)/config -I$(srcdir)/../include - - # Use this on System V. --CPPFLAGS = -DUSG -+CPPFLAGS = -DBSD4_2 - - .c.o: - $(GCC_FOR_TARGET) -Wall $(OPTIMIZE) $(CPPFLAGS) \ diff --git a/lang/gcc48/files/patch-fa b/lang/gcc48/files/patch-fa deleted file mode 100644 index 064c33a2eb88..000000000000 --- a/lang/gcc48/files/patch-fa +++ /dev/null @@ -1,179 +0,0 @@ ---- gcc/c-format.c.orig Wed Feb 20 14:54:32 2002 -+++ gcc/c-format.c Mon May 27 20:42:37 2002 -@@ -19,6 +19,8 @@ - Software Foundation, 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - -+/* $FreeBSD$ */ -+ - #include "config.h" - #include "system.h" - #include "tree.h" -@@ -75,6 +77,7 @@ - last. */ - enum format_type { printf_format_type, scanf_format_type, - strftime_format_type, strfmon_format_type, -+ printf0_format_type, - format_type_error }; - - typedef struct function_format_info -@@ -82,6 +85,7 @@ - enum format_type format_type; /* type of format (printf, scanf, etc.) */ - unsigned HOST_WIDE_INT format_num; /* number of format argument */ - unsigned HOST_WIDE_INT first_arg_num; /* number of first arg (zero for varargs) */ -+ int null_format_ok; /* TRUE if the format string may be NULL */ - } function_format_info; - - static bool decode_format_attr PARAMS ((tree, -@@ -249,7 +253,7 @@ - { - if (validated_p) - abort (); -- error ("unrecognized format specifier"); -+ error_with_decl (getdecls (), "unrecognized format specifier"); - return false; - } - else -@@ -540,6 +544,7 @@ - /* Pointer to type of argument expected if '*' is used for a precision, - or NULL if '*' not used for precisions. */ - tree *const precision_type; -+ const int null_format_ok; - } format_kind_info; - - -@@ -783,6 +788,18 @@ - { "S", 1, STD_EXT, { TEX_W, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "R" }, - /* GNU conversion specifiers. */ - { "m", 0, STD_EXT, { T89_V, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ /* BSD conversion specifiers. */ -+ /* FreeBSD kernel extensions (src/sys/kern/subr_prf.c). -+ The format %b is supported to decode error registers. -+ Its usage is: printf("reg=%b\n", regval, "<base><arg>*"); -+ which produces: reg=3<BITTWO,BITONE> -+ The format %D provides a hexdump given a pointer and separator string: -+ ("%6D", ptr, ":") -> XX:XX:XX:XX:XX:XX -+ ("%*D", len, ptr, " ") -> XX XX XX XX ... -+ */ -+ { "D", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "cR" }, -+ { "b", 1, STD_EXT, { T89_C, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp", "" }, -+ { "rz", 0, STD_EXT, { T89_I, BADLEN, BADLEN, T89_L, BADLEN, BADLEN, BADLEN, BADLEN, BADLEN }, "-wp0 +#", "i" }, - { NULL, 0, 0, NOLENGTHS, NULL, NULL } - }; - -@@ -847,23 +864,29 @@ - printf_flag_specs, printf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, - 'w', 0, 'p', 0, 'L', -- &integer_type_node, &integer_type_node -+ &integer_type_node, &integer_type_node, 0 - }, - { "scanf", scanf_length_specs, scan_char_table, "*'I", NULL, - scanf_flag_specs, scanf_flag_pairs, - FMT_FLAG_ARG_CONVERT|FMT_FLAG_SCANF_A_KLUDGE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_ZERO_WIDTH_BAD|FMT_FLAG_DOLLAR_GAP_POINTER_OK, - 'w', 0, 0, '*', 'L', -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strftime", NULL, time_char_table, "_-0^#", "EO", - strftime_flag_specs, strftime_flag_pairs, - FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, -- NULL, NULL -+ NULL, NULL, 0 - }, - { "strfmon", strfmon_length_specs, monetary_char_table, "=^+(!-", NULL, - strfmon_flag_specs, strfmon_flag_pairs, - FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', -- NULL, NULL -+ NULL, NULL, 0 -+ }, -+ { "printf0", printf_length_specs, print_char_table, " +#0-'I", NULL, -+ printf_flag_specs, printf_flag_pairs, -+ FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, -+ 'w', 0, 'p', 0, 'L', -+ &integer_type_node, &integer_type_node, 1 - } - }; - -@@ -917,6 +940,14 @@ - - static void check_format_types PARAMS ((int *, format_wanted_type *)); - -+ -+inline static int get_null_fmt_ok (fmttype) -+ enum format_type fmttype; -+{ -+ return format_types[(int)fmttype].null_format_ok; -+} -+ -+ - /* Decode a format type from a string, returning the type, or - format_type_error if not valid, in which case the caller should print an - error message. */ -@@ -1986,6 +2017,57 @@ - } - } - -+ if (*format_chars == 'b') -+ { -+ /* There should be an int arg to control the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ if ((TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != integer_type_node) -+ && -+ (TYPE_MAIN_VARIANT (TREE_TYPE (cur_param)) -+ != unsigned_type_node)) -+ { -+ status_warning (status, "bitmap is not type int (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ if (*format_chars == 'D') -+ { -+ /* There should be an unsigned char * arg before the string arg. */ -+ if (params == 0) -+ { -+ status_warning (status, "too few arguments for format"); -+ return; -+ } -+ if (info->first_arg_num != 0) -+ { -+ tree cur_type; -+ -+ cur_param = TREE_VALUE (params); -+ params = TREE_CHAIN (params); -+ ++arg_num; -+ cur_type = TREE_TYPE (cur_param); -+ if (TREE_CODE (cur_type) != POINTER_TYPE -+ || TYPE_MAIN_VARIANT (TREE_TYPE (cur_type)) -+ != unsigned_char_type_node) -+ { -+ status_warning (status, -+ "ethernet address is not type unsigned char * (arg %d)", -+ arg_num); -+ } -+ } -+ } -+ - format_char = *format_chars; - if (format_char == 0 - || (!(fki->flags & (int) FMT_FLAG_FANCY_PERCENT_OK) -@@ -2112,7 +2194,7 @@ - else if (strchr (fci->flags2, '2') != 0) - y2k_level = 2; - if (y2k_level == 3) -- status_warning (status, "`%%%c' yields only last 2 digits of year in some locales", -+ status_warning (status, "`%%%c' yields only last 2 digits of year in some locales on non-BSD systems", - format_char); - else if (y2k_level == 2) - status_warning (status, "`%%%c' yields only last 2 digits of year", format_char); diff --git a/lang/gcc48/files/patch-fb b/lang/gcc48/files/patch-fb deleted file mode 100644 index dae6d331898c..000000000000 --- a/lang/gcc48/files/patch-fb +++ /dev/null @@ -1,13 +0,0 @@ ---- gcc/flags.h.orig Sun Jan 31 09:46:18 1999 -+++ gcc/flags.h Tue Mar 30 13:17:11 1999 -@@ -137,6 +137,10 @@ - - extern int warn_aggregate_return; - -+/* Nonzero means that -Wformat accepts certain non-ANSI formats. */ -+ -+extern int flag_format_extensions; -+ - /* Nonzero if generating code to do profiling. */ - - extern int profile_flag; diff --git a/lang/gcc48/files/patch-fc b/lang/gcc48/files/patch-fc deleted file mode 100644 index 628048a209e7..000000000000 --- a/lang/gcc48/files/patch-fc +++ /dev/null @@ -1,21 +0,0 @@ ---- gcc/toplev.c.orig Tue Jun 6 13:11:39 2000 -+++ gcc/toplev.c Mon Jun 26 20:19:31 2000 -@@ -787,6 +787,9 @@ - /* Tag all structures with __attribute__(packed) */ - int flag_pack_struct = 0; - -+/* Nonzero means that -Wformat accepts certain system-dependent formats. */ -+int flag_format_extensions = 0; -+ - /* Emit code to check for stack overflow; also may cause large objects - to be allocated dynamically. */ - int flag_stack_check; -@@ -1064,6 +1067,8 @@ - "Do the full regmove optimization pass"}, - {"pack-struct", &flag_pack_struct, 1, - N_("Pack structure members together without holes") }, -+ {"format-extensions", &flag_format_extensions, 1, -+ N_("-Wformat accepts certain FreeBSD system-dependent formats") }, - {"stack-check", &flag_stack_check, 1, - N_("Insert stack checking code into the program") }, - {"argument-alias", &flag_argument_noalias, 0, diff --git a/lang/gcc48/pkg-descr b/lang/gcc48/pkg-descr index c2c52fc7e3f0..709e1bdbcd1e 100644 --- a/lang/gcc48/pkg-descr +++ b/lang/gcc48/pkg-descr @@ -1,7 +1,6 @@ -GCC, the GNU Compiler Collection includes gcc, g++, g77, and gcj. +GCC, the GNU Compiler Collection includes gcc, g++, gcj, and g77. -Beware: This port installs new versions of "gcc", "g++", "c++" and -so forth into the "${PREFIX}/bin" directory. Mind your PATHs if you -don't want to use this compiler by default. +This port installs the various front ends as gcc34, g++34, gcj34, +and g77-34 into the ${PREFIX}/bin directory. WWW: http://gcc.gnu.org/ diff --git a/lang/gcc48/pkg-plist b/lang/gcc48/pkg-plist index 98c6cf89c8e6..fcf222a09837 100644 --- a/lang/gcc48/pkg-plist +++ b/lang/gcc48/pkg-plist @@ -1,24 +1,24 @@ @comment $FreeBSD$ -bin/cpp33 -bin/g++33 -bin/g77-33 -bin/gcc33 -bin/gcov33 +bin/cpp34 +bin/g++34 +bin/g77-34 +bin/gcc34 +bin/gcov34 bin/%%GNU_HOST%%-gcc-%%GCC_VER%% -bin/%%GNU_HOST%%-gcc33 -bin/%%GNU_HOST%%-g++33 +bin/%%GNU_HOST%%-gcc34 +bin/%%GNU_HOST%%-g++34 bin/%%GNU_HOST%%-gcj bin/gccbug-%%GCC_VER%% -bin/gcj33 -bin/gcjh33 -bin/gij33 -bin/jv-scan33 -bin/jcf-dump33 -bin/jv-convert33 -bin/jar33 -bin/grepjar33 -bin/rmic33 -bin/rmiregistry33 +bin/gcj34 +bin/gcjh34 +bin/gij34 +bin/jv-scan34 +bin/jcf-dump34 +bin/jv-convert34 +bin/jar34 +bin/grepjar34 +bin/rmic34 +bin/rmiregistry34 bin/addr2name.awk include/fficonfig.h include/ffi.h |