diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 2001-02-14 20:52:39 +0000 | 
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 2001-02-14 20:52:39 +0000 | 
| commit | aa33b0f3373339b8101fcf47b62073cc21b14b9f (patch) | |
| tree | faa790bacfa96d7f9db8a6e61b96cbc1085a32f9 /lang/gcc42 | |
| parent | Fix a pathname typo in RUN_DEPENDS. (diff) | |
Upgrade to the 5-Feb-2001 edition GCC 2.97 development snapshot.
Notes
Notes:
    svn path=/head/; revision=38345
Diffstat (limited to 'lang/gcc42')
| -rw-r--r-- | lang/gcc42/Makefile | 7 | ||||
| -rw-r--r-- | lang/gcc42/distinfo | 10 | ||||
| -rw-r--r-- | lang/gcc42/files/patch-bc | 34 | ||||
| -rw-r--r-- | lang/gcc42/files/patch-fa | 236 | 
4 files changed, 157 insertions, 130 deletions
diff --git a/lang/gcc42/Makefile b/lang/gcc42/Makefile index bd769c07cb52..563f511f9edb 100644 --- a/lang/gcc42/Makefile +++ b/lang/gcc42/Makefile @@ -6,7 +6,7 @@  # $FreeBSD$  # -SNAPDATE=	2000-12-25 +SNAPDATE=	2001-02-05  SNAPVER=	${SNAPDATE:S/-//g}  PORTNAME=	gcc-devel @@ -57,7 +57,8 @@ GNU_CONFIGURE=	yes  USE_GMAKE=	yes  USE_BISON=	yes  CONFIGURE_ARGS=	--disable-nls --with-gnu-as --with-gnu-ld \ -		--with-gxx-include-dir=${PREFIX}/lib/gcc-lib/${CONFIGURE_TARGET}/${EGCS_REV}/include/g++ +		--with-gxx-include-dir=${TARGLIB}/include/g++ +#CONFIGURE_ARGS+=	--program-prefix=e  .if defined(WANT_SHAREDLIBS)  CONFIGURE_ARGS+= --enable-shared  .else @@ -82,7 +83,7 @@ pre-configure:  	@touch ${SRCDIR}/gcc/configure  	@touch ${SRCDIR}/gcc/cstamp-h.in  	@${MKDIR} ${CONFIGURE_WRKSRC} -	${RM} -rf ${SRCDIR}/libjava +	#${RM} -rf ${SRCDIR}/libjava  pre-build:  	cd ${SRCDIR} ; contrib/gcc_update --touch diff --git a/lang/gcc42/distinfo b/lang/gcc42/distinfo index e8c2530a3d48..249442334a3d 100644 --- a/lang/gcc42/distinfo +++ b/lang/gcc42/distinfo @@ -1,5 +1,5 @@ -MD5 (gcc-core-20001225.tar.gz) = 8dc67cd8b59608cc8e69ad8f1d0fdb0f -MD5 (gcc-g++-20001225.tar.gz) = 1600483599aa8807ee27a09390a94097 -MD5 (gcc-g77-20001225.tar.gz) = 06c41859fd2d72bda5519879d56628ad -MD5 (gcc-java-20001225.tar.gz) = 82863182a5c58f0b955d28e64ede2df5 -MD5 (gcc-objc-20001225.tar.gz) = 548dce8caa003553e7b3f472d0437db5 +MD5 (gcc-core-20010205.tar.gz) = ed425846dd35763121013c20e81ae8f6 +MD5 (gcc-g++-20010205.tar.gz) = dfdff6b737308cda3822e2db094f2986 +MD5 (gcc-g77-20010205.tar.gz) = def721940678eaf9c4eb8f0281a94c3b +MD5 (gcc-java-20010205.tar.gz) = 7d033d862f728b5d9e2edcdc05b8b680 +MD5 (gcc-objc-20010205.tar.gz) = 098ce93f41ccd6f8ce8adc319baad234 diff --git a/lang/gcc42/files/patch-bc b/lang/gcc42/files/patch-bc deleted file mode 100644 index 4776146dd5b9..000000000000 --- a/lang/gcc42/files/patch-bc +++ /dev/null @@ -1,34 +0,0 @@ ---- libstdc++/Makefile.in.orig	Sat Jul 17 22:50:47 1999 -+++ libstdc++/Makefile.in	Tue Jul 20 07:56:00 1999 -@@ -14,7 +14,7 @@ - # along with this library; see the file COPYING.  If not, write to the Free - # Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. -  --VERSION = 2.10.0 -+VERSION = 2100 - INTERFACE = 3 -  - gxx_include_dir=${includedir}/g++ -@@ -111,7 +111,8 @@ - 	$(LN_S) $(SHLIB) $(SHLINK) || cp $(ARLIB) $(ARLINK) -  - mshlink: --	@$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)" -+	#@$(MAKE) $(MSHLINK) "SHLINK=$(MSHLINK)" -+	@true -  - $(IO_DIR)/iostream.list: force - 	cd $(IO_DIR) ; $(MAKE) $(FLAGS_TO_PASS) iostream.list -@@ -336,11 +337,7 @@ - 		|| cp $${RELINSTALLDIR}$(ARLIB) $${INSTALLLINKDIR}$(MULTISUBDIR)/$$FILE ; \ - 	    fi; \ - 	  elif [ $$FILE = mshlink ]; then \ --	    for FILE in $(MSHLINK) ; do \ --	      rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \ --	      $(LN_S) $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE \ --		|| cp $(SHLIB) $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \ --	    done; \ -+	    true; \ - 	  elif [ $$FILE = marlink ]; then \ - 	    for FILE in $(MARLINK) ; do \ - 	      rm -f $${INSTALLDIR}$(MULTISUBDIR)/$$FILE ; \ diff --git a/lang/gcc42/files/patch-fa b/lang/gcc42/files/patch-fa index d671513e47bd..350959df8e89 100644 --- a/lang/gcc42/files/patch-fa +++ b/lang/gcc42/files/patch-fa @@ -1,90 +1,59 @@ ---- gcc/c-common.c.orig	Sat Dec  2 19:46:03 2000 -+++ gcc/c-common.c	Mon Dec 11 12:11:16 2000 -@@ -232,7 +232,7 @@ - 						 int, int, int)); - static void init_attributes		PARAMS ((void)); +--- gcc/c-format.c.orig	Sat Jan 13 15:29:57 2001 ++++ gcc/c-format.c	Wed Feb 14 03:47:34 2001 +@@ -75,13 +75,16 @@ +    last.  */ + enum format_type { printf_format_type, scanf_format_type, + 		   strftime_format_type, strfmon_format_type, ++		   printf0_format_type, + 		   format_type_error }; +  + static enum format_type decode_format_type	PARAMS ((const char *));   static void record_function_format	PARAMS ((tree, tree, enum format_type,  -						 int, int));  +						 int, int, int));   static void record_international_format	PARAMS ((tree, tree, int)); - static int default_valid_lang_attribute PARAMS ((tree, tree, tree, tree)); -  -@@ -927,6 +927,7 @@ - 	    enum format_type format_type; - 	    tree argument; - 	    unsigned int arg_num; -+	    int null_format_ok; -  - 	    if (TREE_CODE (decl) != FUNCTION_DECL) - 	      { -@@ -937,7 +938,7 @@ -  - 	    if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) - 	      { --		error ("unrecognized format specifier"); -+		error_with_decl (decl, "unrecognized format specifier"); - 		continue; - 	      } - 	    else -@@ -945,12 +946,26 @@ - 		const char *p = IDENTIFIER_POINTER (format_type_id); -  - 		if (!strcmp (p, "printf") || !strcmp (p, "__printf__")) -+		  { -+		  format_type = printf_format_type; -+		  null_format_ok = 0; -+		  } -+		else if (!strcmp (p, "printf0") || !strcmp (p, "__printf0__")) -+		  { - 		  format_type = printf_format_type; -+		  null_format_ok = 1; -+		  } - 		else if (!strcmp (p, "scanf") || !strcmp (p, "__scanf__")) -+		  { - 		  format_type = scanf_format_type; -+		  null_format_ok = 0; -+		  } - 		else if (!strcmp (p, "strftime") - 			 || !strcmp (p, "__strftime__")) -+		  { - 		  format_type = strftime_format_type; -+		  null_format_ok = 0; -+		  } - 		else - 		  { - 		    warning ("`%s' is an unrecognized format function type", p); -@@ -1029,7 +1044,8 @@ -  - 	    record_function_format (DECL_NAME (decl), - 				    DECL_ASSEMBLER_NAME (decl), --				    format_type, format_num, first_arg_num); -+				    format_type, format_num, first_arg_num, -+				    null_format_ok); - 	    break; - 	  } -  -@@ -1693,6 +1709,20 @@ - static const format_char_info print_char_table[] = - { -+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly. -+/* FreeBSD kernel extensions (src/sys/kern/subr_prf.c).  */ -+/* The format %b is supported to decode error registers. -+   Its usage is:	printf("reg=%b\n", regval, "<base><arg>*"); -+   which produces:	reg=3<BITTWO,BITONE> -+   The format %D provides a hexdump given a pointer and separator string: -+   ("%6D", ptr, ":")		-> XX:XX:XX:XX:XX:XX -+   ("%*D", len, ptr, " ")	-> XX XX XX XX ... -+   */ -+  { "D",   1, STD_EXT, { T89_C,   T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp"       "c" }, -+  { "b",   1, STD_EXT, { T89_C,   T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp"       "" }, -+  { "rz",  0, STD_EXT, { BADLEN,  T89_I,   T89_I,   T89_L,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#"   "i" }, -+#define unextended_print_char_table	(print_char_table + 3) -+#warning The FreeBSD kernel extensions in print_char_table might not be done correctly. -   /* C89 conversion specifiers.  */ -   { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T99_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I", "i" }, -   { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T99_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",    "i" }, -@@ -1791,6 +1821,7 @@ ++inline static int get_null_fmt_ok	PARAMS ((enum format_type)); ++ + /* Handle the format attribute (with arguments ARGS) attached to the decl +    DECL.  It is already verified that DECL is a decl and ARGS contains +    exactly three arguments.  */ +@@ -99,6 +102,7 @@ +   enum format_type format_type; +   tree argument; +   unsigned int arg_num; ++  int null_format_ok; +  +   if (TREE_CODE (decl) != FUNCTION_DECL) +     { +@@ -109,7 +113,7 @@ +  +   if (TREE_CODE (format_type_id) != IDENTIFIER_NODE) +     { +-      error ("unrecognized format specifier"); ++      error_with_decl (decl, "unrecognized format specifier"); +       return; +     } +   else +@@ -117,6 +121,7 @@ +       const char *p = IDENTIFIER_POINTER (format_type_id); +  +       format_type = decode_format_type (p); ++      null_format_ok = get_null_fmt_ok (format_type); +  +       if (format_type == format_type_error) + 	{ +@@ -195,7 +200,8 @@ +     } +  +   record_function_format (DECL_NAME (decl), DECL_ASSEMBLER_NAME (decl), +-			  format_type, format_num, first_arg_num); ++			  format_type, format_num, first_arg_num, ++			  null_format_ok); + } +  +  +@@ -276,6 +282,7 @@     enum format_type format_type;	/* type of format (printf, scanf, etc.) */     int format_num;		/* number of format argument */     int first_arg_num;		/* number of first arg (zero for varargs) */ @@ -92,7 +61,7 @@   } function_format_info;   static function_format_info *function_format_list = NULL; -@@ -1876,42 +1907,42 @@ +@@ -309,44 +316,44 @@       {         /* Functions from ISO/IEC 9899:1990.  */         record_function_format (get_identifier ("printf"), NULL_TREE, @@ -104,6 +73,9 @@         record_function_format (get_identifier ("fprintf"), NULL_TREE,  -			      printf_format_type, 2, 3);  +			      printf_format_type, 2, 3, 0); +       record_function_format (get_identifier ("__builtin_fprintf"), NULL_TREE, +-			      printf_format_type, 2, 3); ++			      printf_format_type, 2, 3, 0);         record_function_format (get_identifier ("sprintf"), NULL_TREE,  -			      printf_format_type, 2, 3);  +			      printf_format_type, 2, 3, 0); @@ -151,7 +123,16 @@       }     if (flag_hosted && flag_noniso_default_format_attributes) -@@ -1934,12 +1965,13 @@ +@@ -357,7 +364,7 @@ +       record_international_format (get_identifier ("dcgettext"), NULL_TREE, 2); +       /* X/Open strfmon function.  */ +       record_function_format (get_identifier ("strfmon"), NULL_TREE, +-			      strfmon_format_type, 3, 4); ++			      strfmon_format_type, 3, 4, 0); +     } + } +  +@@ -372,12 +379,13 @@   static void   record_function_format (name, assembler_name, format_type, @@ -166,7 +147,7 @@   {     function_format_info *info; -@@ -1963,6 +1995,7 @@ +@@ -401,6 +409,7 @@     info->format_type = format_type;     info->format_num = format_num;     info->first_arg_num = first_arg_num; @@ -174,7 +155,86 @@   }   /* Record information for the names of function that modify the format -@@ -2454,7 +2487,7 @@ +@@ -677,6 +686,8 @@ +   /* Pointer to type of argument expected if '*' is used for a precision, +      or NULL if '*' not used for precisions.  */ +   tree *precision_type; ++  /* Needed for FreeBSD kernel and the printf0() printf-like function.  */ ++  int null_format_ok; + } format_kind_info; +  +  +@@ -902,6 +913,20 @@ +  + static const format_char_info print_char_table[] = + { ++#warning The FreeBSD kernel extensions in print_char_table might not be done correctly. ++/* FreeBSD kernel extensions (src/sys/kern/subr_prf.c).  */ ++/* The format %b is supported to decode error registers. ++   Its usage is:	printf("reg=%b\n", regval, "<base><arg>*"); ++   which produces:	reg=3<BITTWO,BITONE> ++   The format %D provides a hexdump given a pointer and separator string: ++   ("%6D", ptr, ":")		-> XX:XX:XX:XX:XX:XX ++   ("%*D", len, ptr, " ")	-> XX XX XX XX ... ++   */ ++  { "D",   1, STD_EXT, { T89_C,   T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",      "c" }, ++  { "b",   1, STD_EXT, { T89_C,   T89_C,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp",      "" }, ++  { "rz",  0, STD_EXT, { BADLEN,  T89_I,   T89_I,   T89_L,   BADLEN,  BADLEN,  BADLEN,  BADLEN,  BADLEN  }, "-wp0 +#",  "i" }, ++#define unextended_print_char_table	(print_char_table + 3) ++#warning The FreeBSD kernel extensions in print_char_table might not be done correctly. +   /* C89 conversion specifiers.  */ +   { "di",  0, STD_C89, { T89_I,   T99_SC,  T89_S,   T89_L,   T9L_LL,  TEX_LL,  T99_SST, T99_PD,  T99_IM  }, "-wp0 +'I", "i"  }, +   { "oxX", 0, STD_C89, { T89_UI,  T99_UC,  T89_US,  T89_UL,  T9L_ULL, TEX_ULL, T99_ST,  T99_UPD, T99_UIM }, "-wp0#",    "i"  }, +@@ -985,22 +1010,33 @@ +     FMT_FLAG_ARG_CONVERT|FMT_FLAG_DOLLAR_MULTIPLE|FMT_FLAG_USE_DOLLAR|FMT_FLAG_EMPTY_PREC_OK, +     'w', 0, 'p', 0, 'L', +     &integer_type_node, &integer_type_node ++    ,0 +   }, +   { "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, +     'w', 0, 0, '*', 'L', +     NULL, NULL ++    ,0 +   }, +   { "strftime", NULL,                 time_char_table,  "_-0^#", "EO", +     strftime_flag_specs, strftime_flag_pairs, +     FMT_FLAG_FANCY_PERCENT_OK, 'w', 0, 0, 0, 0, +     NULL, NULL ++    ,0 +   }, +   { "strfmon",  strfmon_length_specs, monetary_char_table, "=^+(!-", NULL,  +     strfmon_flag_specs, strfmon_flag_pairs, +     FMT_FLAG_ARG_CONVERT, 'w', '#', 'p', 0, 'L', +     NULL, NULL ++    ,0 ++  }, ++  { "printf0",   printf_length_specs,  print_char_table, " +#0-'I", NULL,  ++    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 +   } + }; +  +@@ -1053,6 +1089,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.  */ +@@ -1568,7 +1612,7 @@   	 specially if info == NULL and add a res->number_null entry for   	 that case, or maybe add a function pointer to be called at   	 the end instead of hardcoding check_format_info_main.  */ @@ -183,7 +243,7 @@         /* Skip to first argument to check, so we can see if this format   	 has any arguments (it shouldn't).  */ -@@ -2650,6 +2683,54 @@ +@@ -1764,6 +1808,54 @@   	      main_arg_num = opnum + info->first_arg_num - 1;   	    }   	} @@ -238,7 +298,7 @@         /* Read any format flags, but do not yet validate them beyond removing   	 duplicates, since in general validation depends on the rest of -@@ -3024,7 +3105,7 @@ +@@ -2166,7 +2258,7 @@   	  else if (strchr (fci->flags2, '2') != 0)   	    y2k_level = 2;   	  if (y2k_level == 3)  | 
