add gcc-4.5.0 preliminary support
SVN-Revision: 21033
This commit is contained in:
		| @@ -42,6 +42,9 @@ if !LINUX_2_4 | |||||||
| 	config GCC_VERSION_4_4_3 | 	config GCC_VERSION_4_4_3 | ||||||
| 		bool "gcc 4.4.3" | 		bool "gcc 4.4.3" | ||||||
|  |  | ||||||
|  | 	config GCC_VERSION_4_5_0 | ||||||
|  | 		bool "gcc 4.5.0" | ||||||
|  |  | ||||||
| 	config GCC_VERSION_LLVM | 	config GCC_VERSION_LLVM | ||||||
| 		bool "llvm-gcc 4.2" | 		bool "llvm-gcc 4.2" | ||||||
| 		depends BROKEN | 		depends BROKEN | ||||||
|   | |||||||
| @@ -10,6 +10,7 @@ config GCC_VERSION | |||||||
| 	default "4.4.1+cs"  if GCC_VERSION_4_4_1_CS | 	default "4.4.1+cs"  if GCC_VERSION_4_4_1_CS | ||||||
| 	default "4.4.2"	    if GCC_VERSION_4_4_2 | 	default "4.4.2"	    if GCC_VERSION_4_4_2 | ||||||
| 	default "4.4.3"	    if GCC_VERSION_4_4_3 | 	default "4.4.3"	    if GCC_VERSION_4_4_3 | ||||||
|  | 	default "4.5.0"	    if GCC_VERSION_4_5_0 | ||||||
| 	default "4.4.3+cs"  if GCC_VERSION_4_4_3_CS | 	default "4.4.3+cs"  if GCC_VERSION_4_4_3_CS | ||||||
| 	default "llvm"	    if GCC_VERSION_LLVM | 	default "llvm"	    if GCC_VERSION_LLVM | ||||||
| 	default "4.1.2" | 	default "4.1.2" | ||||||
| @@ -30,6 +31,7 @@ config GCC_VERSION_4 | |||||||
| 	default y	if GCC_VERSION_4_2 | 	default y	if GCC_VERSION_4_2 | ||||||
| 	default y	if GCC_VERSION_4_3 | 	default y	if GCC_VERSION_4_3 | ||||||
| 	default y	if GCC_VERSION_4_4 | 	default y	if GCC_VERSION_4_4 | ||||||
|  | 	default y	if GCC_VERSION_4_5 | ||||||
|  |  | ||||||
| config GCC_VERSION_4_1 | config GCC_VERSION_4_1 | ||||||
| 	bool | 	bool | ||||||
| @@ -54,6 +56,10 @@ config GCC_VERSION_4_4 | |||||||
| 	default y	if GCC_VERSION_4_4_3 | 	default y	if GCC_VERSION_4_4_3 | ||||||
| 	default y	if GCC_VERSION_4_4_3_CS | 	default y	if GCC_VERSION_4_4_3_CS | ||||||
|  |  | ||||||
|  | config GCC_VERSION_4_5 | ||||||
|  | 	bool | ||||||
|  | 	default y       if GCC_VERSION_4_5_0 | ||||||
|  |  | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if !TOOLCHAINOPTS | if !TOOLCHAINOPTS | ||||||
|   | |||||||
| @@ -63,6 +63,9 @@ else | |||||||
|   ifeq ($(PKG_VERSION),4.4.3) |   ifeq ($(PKG_VERSION),4.4.3) | ||||||
|     PKG_MD5SUM:=fe1ca818fc6d2caeffc9051fe67ff103 |     PKG_MD5SUM:=fe1ca818fc6d2caeffc9051fe67ff103 | ||||||
|   endif |   endif | ||||||
|  |   ifeq ($(PKG_VERSION),4.5.0) | ||||||
|  |   PKG_MD5SUM:=ff27b7c4a5d5060c8a8543a44abca31f | ||||||
|  |   endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| PATCH_DIR=./patches/$(GCC_VERSION) | PATCH_DIR=./patches/$(GCC_VERSION) | ||||||
| @@ -108,6 +111,15 @@ ifneq ($(CONFIG_GCC_VERSION_4_3)$(CONFIG_GCC_VERSION_4_4),) | |||||||
| 		--disable-decimal-float | 		--disable-decimal-float | ||||||
| endif | endif | ||||||
|  |  | ||||||
|  | ifneq ($(CONFIG_GCC_VERSION_4_5),) | ||||||
|  |   GCC_BUILD_TARGET_LIBGCC:=y | ||||||
|  |   GCC_CONFIGURE+= \ | ||||||
|  |                 --with-gmp=$(TOPDIR)/staging_dir/host \ | ||||||
|  |                 --with-mpc=$(TOPDIR)/staging_dir/host \ | ||||||
|  |                 --with-mpfr=$(TOPDIR)/staging_dir/host \ | ||||||
|  |                 --disable-decimal-float | ||||||
|  | endif | ||||||
|  |  | ||||||
| ifneq ($(CONFIG_SSP_SUPPORT),) | ifneq ($(CONFIG_SSP_SUPPORT),) | ||||||
|   GCC_CONFIGURE+= \ |   GCC_CONFIGURE+= \ | ||||||
| 		--enable-libssp | 		--enable-libssp | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								toolchain/gcc/patches/4.5.0/100-uclibc-conf.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								toolchain/gcc/patches/4.5.0/100-uclibc-conf.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | --- a/contrib/regression/objs-gcc.sh | ||||||
|  | +++ b/contrib/regression/objs-gcc.sh | ||||||
|  | @@ -106,6 +106,10 @@ | ||||||
|  |   then | ||||||
|  |    make all-gdb all-dejagnu all-ld || exit 1 | ||||||
|  |    make install-gdb install-dejagnu install-ld || exit 1 | ||||||
|  | +elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ] | ||||||
|  | + then | ||||||
|  | +  make all-gdb all-dejagnu all-ld || exit 1 | ||||||
|  | +  make install-gdb install-dejagnu install-ld || exit 1 | ||||||
|  |  elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then | ||||||
|  |    make bootstrap || exit 1 | ||||||
|  |    make install || exit 1 | ||||||
|  | --- a/libjava/classpath/ltconfig | ||||||
|  | +++ b/libjava/classpath/ltconfig | ||||||
|  | @@ -603,7 +603,7 @@ | ||||||
|  |   | ||||||
|  |  # Transform linux* to *-*-linux-gnu*, to support old configure scripts. | ||||||
|  |  case $host_os in | ||||||
|  | -linux-gnu*) ;; | ||||||
|  | +linux-gnu*|linux-uclibc*) ;; | ||||||
|  |  linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` | ||||||
|  |  esac | ||||||
|  |   | ||||||
|  | @@ -1251,7 +1251,7 @@ | ||||||
|  |    ;; | ||||||
|  |   | ||||||
|  |  # This must be Linux ELF. | ||||||
|  | -linux-gnu*) | ||||||
|  | +linux*) | ||||||
|  |    version_type=linux | ||||||
|  |    need_lib_prefix=no | ||||||
|  |    need_version=no | ||||||
							
								
								
									
										11
									
								
								toolchain/gcc/patches/4.5.0/301-missing-execinfo_h.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/gcc/patches/4.5.0/301-missing-execinfo_h.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | --- a/boehm-gc/include/gc.h | ||||||
|  | +++ b/boehm-gc/include/gc.h | ||||||
|  | @@ -503,7 +503,7 @@ | ||||||
|  |  #if defined(__linux__) || defined(__GLIBC__) | ||||||
|  |  # include <features.h> | ||||||
|  |  # if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1 || __GLIBC__ > 2) \ | ||||||
|  | -     && !defined(__ia64__) | ||||||
|  | +     && !defined(__ia64__) && !defined(__UCLIBC__) | ||||||
|  |  #   ifndef GC_HAVE_BUILTIN_BACKTRACE | ||||||
|  |  #     define GC_HAVE_BUILTIN_BACKTRACE | ||||||
|  |  #   endif | ||||||
							
								
								
									
										11
									
								
								toolchain/gcc/patches/4.5.0/302-c99-snprintf.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								toolchain/gcc/patches/4.5.0/302-c99-snprintf.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | --- a/libstdc++-v3/include/c_global/cstdio | ||||||
|  | +++ b/libstdc++-v3/include/c_global/cstdio | ||||||
|  | @@ -139,7 +139,7 @@ | ||||||
|  |   | ||||||
|  |  _GLIBCXX_END_NAMESPACE | ||||||
|  |   | ||||||
|  | -#if _GLIBCXX_USE_C99 | ||||||
|  | +#if _GLIBCXX_USE_C99 || defined __UCLIBC__ | ||||||
|  |   | ||||||
|  |  #undef snprintf | ||||||
|  |  #undef vfscanf | ||||||
| @@ -0,0 +1,47 @@ | |||||||
|  | --- a/libmudflap/mf-hooks2.c | ||||||
|  | +++ b/libmudflap/mf-hooks2.c | ||||||
|  | @@ -421,7 +421,7 @@ | ||||||
|  |  { | ||||||
|  |    TRACE ("%s\n", __PRETTY_FUNCTION__); | ||||||
|  |    MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); | ||||||
|  | -  bzero (s, n); | ||||||
|  | +  memset (s, 0, n); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |   | ||||||
|  | @@ -431,7 +431,7 @@ | ||||||
|  |    TRACE ("%s\n", __PRETTY_FUNCTION__); | ||||||
|  |    MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src"); | ||||||
|  |    MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest"); | ||||||
|  | -  bcopy (src, dest, n); | ||||||
|  | +  memmove (dest, src, n); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |   | ||||||
|  | @@ -441,7 +441,7 @@ | ||||||
|  |    TRACE ("%s\n", __PRETTY_FUNCTION__); | ||||||
|  |    MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg"); | ||||||
|  |    MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg"); | ||||||
|  | -  return bcmp (s1, s2, n); | ||||||
|  | +  return n == 0 ? 0 : memcmp (s1, s2, n); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |   | ||||||
|  | @@ -450,7 +450,7 @@ | ||||||
|  |    size_t n = strlen (s); | ||||||
|  |    TRACE ("%s\n", __PRETTY_FUNCTION__); | ||||||
|  |    MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region"); | ||||||
|  | -  return index (s, c); | ||||||
|  | +  return strchr (s, c); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |   | ||||||
|  | @@ -459,7 +459,7 @@ | ||||||
|  |    size_t n = strlen (s); | ||||||
|  |    TRACE ("%s\n", __PRETTY_FUNCTION__); | ||||||
|  |    MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region"); | ||||||
|  | -  return rindex (s, c); | ||||||
|  | +  return strrchr (s, c); | ||||||
|  |  } | ||||||
|  |   | ||||||
|  |  /* XXX:  stpcpy, memccpy */ | ||||||
							
								
								
									
										9368
									
								
								toolchain/gcc/patches/4.5.0/600-ubicom_support.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9368
									
								
								toolchain/gcc/patches/4.5.0/600-ubicom_support.patch
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										25
									
								
								toolchain/gcc/patches/4.5.0/810-arm-softfloat-libgcc.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								toolchain/gcc/patches/4.5.0/810-arm-softfloat-libgcc.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | --- a/gcc/config/arm/linux-elf.h | ||||||
|  | +++ b/gcc/config/arm/linux-elf.h | ||||||
|  | @@ -60,7 +60,7 @@ | ||||||
|  |     %{shared:-lc} \ | ||||||
|  |     %{!shared:%{profile:-lc_p}%{!profile:-lc}}" | ||||||
|  |   | ||||||
|  | -#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" | ||||||
|  | +#define LIBGCC_SPEC "-lgcc" | ||||||
|  |   | ||||||
|  |  #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" | ||||||
|  |   | ||||||
|  | --- a/gcc/config/arm/t-linux | ||||||
|  | +++ b/gcc/config/arm/t-linux | ||||||
|  | @@ -4,7 +4,10 @@ | ||||||
|  |   | ||||||
|  |  LIB1ASMSRC = arm/lib1funcs.asm | ||||||
|  |  LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx _clzsi2 _clzdi2 \ | ||||||
|  | -	_arm_addsubdf3 _arm_addsubsf3 | ||||||
|  | +	_arm_addsubdf3 _arm_addsubsf3 \ | ||||||
|  | +	_negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ | ||||||
|  | +	_truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ | ||||||
|  | +	_fixsfsi _fixunssfsi _floatdidf _floatundidf _floatdisf _floatundisf | ||||||
|  |   | ||||||
|  |  # MULTILIB_OPTIONS = mhard-float/msoft-float | ||||||
|  |  # MULTILIB_DIRNAMES = hard-float soft-float | ||||||
							
								
								
									
										36
									
								
								toolchain/gcc/patches/4.5.0/820-libgcc_pic.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								toolchain/gcc/patches/4.5.0/820-libgcc_pic.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | |||||||
|  | --- a/libgcc/Makefile.in | ||||||
|  | +++ b/libgcc/Makefile.in | ||||||
|  | @@ -729,11 +729,12 @@ $(libgcov-objects): %$(objext): $(gcc_sr | ||||||
|  |   | ||||||
|  |  # Static libraries. | ||||||
|  |  libgcc.a: $(libgcc-objects) | ||||||
|  | +libgcc_pic.a: $(libgcc-s-objects) | ||||||
|  |  libgcov.a: $(libgcov-objects) | ||||||
|  |  libunwind.a: $(libunwind-objects) | ||||||
|  |  libgcc_eh.a: $(libgcc-eh-objects) | ||||||
|  |   | ||||||
|  | -libgcc.a libgcov.a libunwind.a libgcc_eh.a: | ||||||
|  | +libgcc.a libgcov.a libunwind.a libgcc_eh.a libgcc_pic.a: | ||||||
|  |  	-rm -f $@ | ||||||
|  |   | ||||||
|  |  	objects="$(objects)";					\ | ||||||
|  | @@ -755,7 +756,7 @@ libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_E | ||||||
|  |  endif | ||||||
|  |   | ||||||
|  |  ifeq ($(enable_shared),yes) | ||||||
|  | -all: libgcc_eh.a libgcc_s$(SHLIB_EXT) | ||||||
|  | +all: libgcc_eh.a libgcc_pic.a libgcc_s$(SHLIB_EXT) | ||||||
|  |  ifneq ($(LIBUNWIND),) | ||||||
|  |  all: libunwind$(SHLIB_EXT) | ||||||
|  |  endif | ||||||
|  | @@ -928,6 +929,10 @@ install-shared: | ||||||
|  |  	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_eh.a | ||||||
|  |  	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_eh.a | ||||||
|  |   | ||||||
|  | +	$(INSTALL_DATA) libgcc_pic.a $(mapfile) $(DESTDIR)$(inst_libdir)/ | ||||||
|  | +	chmod 644 $(DESTDIR)$(inst_libdir)/libgcc_pic.a | ||||||
|  | +	$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcc_pic.a | ||||||
|  | + | ||||||
|  |  	$(subst @multilib_dir@,$(MULTIDIR),$(subst \ | ||||||
|  |  		@shlib_base_name@,libgcc_s,$(subst \ | ||||||
|  |  		@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL)))) | ||||||
							
								
								
									
										253
									
								
								toolchain/gcc/patches/4.5.0/910-mbsd_multi.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										253
									
								
								toolchain/gcc/patches/4.5.0/910-mbsd_multi.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,253 @@ | |||||||
|  |  | ||||||
|  | 	This patch brings over a few features from MirBSD: | ||||||
|  | 	* -fhonour-copts | ||||||
|  | 	  If this option is not given, it's warned (depending | ||||||
|  | 	  on environment variables). This is to catch errors | ||||||
|  | 	  of misbuilt packages which override CFLAGS themselves. | ||||||
|  | 	* -Werror-maybe-reset | ||||||
|  | 	  Has the effect of -Wno-error if GCC_NO_WERROR is | ||||||
|  | 	  set and not '0', a no-operation otherwise. This is | ||||||
|  | 	  to be able to use -Werror in "make" but prevent | ||||||
|  | 	  GNU autoconf generated configure scripts from | ||||||
|  | 	  freaking out. | ||||||
|  | 	* Make -fno-strict-aliasing and -fno-delete-null-pointer-checks | ||||||
|  | 	  the default for -O2/-Os, because they trigger gcc bugs | ||||||
|  | 	  and can delete code with security implications. | ||||||
|  |  | ||||||
|  | 	This patch was authored by Thorsten Glaser <tg at mirbsd.de> | ||||||
|  | 	with copyright assignment to the FSF in effect. | ||||||
|  |  | ||||||
|  | --- a/gcc/c-opts.c | ||||||
|  | +++ b/gcc/c-opts.c | ||||||
|  | @@ -105,6 +105,9 @@ | ||||||
|  |  /* Number of deferred options scanned for -include.  */ | ||||||
|  |  static size_t include_cursor; | ||||||
|  |   | ||||||
|  | +/* Check if a port honours COPTS.  */ | ||||||
|  | +static int honour_copts = 0; | ||||||
|  | + | ||||||
|  |  static void set_Wimplicit (int); | ||||||
|  |  static void handle_OPT_d (const char *); | ||||||
|  |  static void set_std_cxx98 (int); | ||||||
|  | @@ -690,6 +701,12 @@ | ||||||
|  |        flag_exceptions = value; | ||||||
|  |        break; | ||||||
|  |   | ||||||
|  | +    case OPT_fhonour_copts: | ||||||
|  | +      if (c_language == clk_c) { | ||||||
|  | +	honour_copts++; | ||||||
|  | +      } | ||||||
|  | +      break; | ||||||
|  | + | ||||||
|  |      case OPT_fimplement_inlines: | ||||||
|  |        flag_implement_inlines = value; | ||||||
|  |        break; | ||||||
|  | @@ -1209,6 +1226,47 @@ | ||||||
|  |        return false; | ||||||
|  |      } | ||||||
|  |   | ||||||
|  | +  if (c_language == clk_c) { | ||||||
|  | +    char *ev = getenv ("GCC_HONOUR_COPTS"); | ||||||
|  | +    int evv; | ||||||
|  | +    if (ev == NULL) | ||||||
|  | +      evv = -1; | ||||||
|  | +    else if ((*ev == '0') || (*ev == '\0')) | ||||||
|  | +      evv = 0; | ||||||
|  | +    else if (*ev == '1') | ||||||
|  | +      evv = 1; | ||||||
|  | +    else if (*ev == '2') | ||||||
|  | +      evv = 2; | ||||||
|  | +    else if (*ev == 's') | ||||||
|  | +      evv = -1; | ||||||
|  | +    else { | ||||||
|  | +      warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1"); | ||||||
|  | +      evv = 1; /* maybe depend this on something like MIRBSD_NATIVE?  */ | ||||||
|  | +    } | ||||||
|  | +    if (evv == 1) { | ||||||
|  | +      if (honour_copts == 0) { | ||||||
|  | +	error ("someone does not honour COPTS at all in lenient mode"); | ||||||
|  | +	return false; | ||||||
|  | +      } else if (honour_copts != 1) { | ||||||
|  | +	warning (0, "someone does not honour COPTS correctly, passed %d times", | ||||||
|  | +	 honour_copts); | ||||||
|  | +      } | ||||||
|  | +    } else if (evv == 2) { | ||||||
|  | +      if (honour_copts == 0) { | ||||||
|  | +	error ("someone does not honour COPTS at all in strict mode"); | ||||||
|  | +	return false; | ||||||
|  | +      } else if (honour_copts != 1) { | ||||||
|  | +	error ("someone does not honour COPTS correctly, passed %d times", | ||||||
|  | +	 honour_copts); | ||||||
|  | +	return false; | ||||||
|  | +      } | ||||||
|  | +    } else if (evv == 0) { | ||||||
|  | +      if (honour_copts != 1) | ||||||
|  | +	inform (0, "someone does not honour COPTS correctly, passed %d times", | ||||||
|  | +	 honour_copts); | ||||||
|  | +    } | ||||||
|  | +  } | ||||||
|  | + | ||||||
|  |    return true; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | --- a/gcc/c.opt | ||||||
|  | +++ b/gcc/c.opt | ||||||
|  | @@ -215,6 +215,10 @@ | ||||||
|  |  C ObjC RejectNegative Warning | ||||||
|  |  This switch is deprecated; use -Werror=implicit-function-declaration instead | ||||||
|  |   | ||||||
|  | +Werror-maybe-reset | ||||||
|  | +C ObjC C++ ObjC++ | ||||||
|  | +; Documented in common.opt | ||||||
|  | + | ||||||
|  |  Wfloat-equal | ||||||
|  |  C ObjC C++ ObjC++ Var(warn_float_equal) Warning | ||||||
|  |  Warn if testing floating point numbers for equality | ||||||
|  | @@ -609,6 +613,9 @@ | ||||||
|  |  fhonor-std | ||||||
|  |  C++ ObjC++ | ||||||
|  |   | ||||||
|  | +fhonour-copts | ||||||
|  | +C ObjC C++ ObjC++ RejectNegative | ||||||
|  | + | ||||||
|  |  fhosted | ||||||
|  |  C ObjC | ||||||
|  |  Assume normal C execution environment | ||||||
|  | --- a/gcc/common.opt | ||||||
|  | +++ b/gcc/common.opt | ||||||
|  | @@ -102,6 +102,10 @@ | ||||||
|  |  Common Joined | ||||||
|  |  Treat specified warning as error | ||||||
|  |   | ||||||
|  | +Werror-maybe-reset | ||||||
|  | +Common | ||||||
|  | +If environment variable GCC_NO_WERROR is set, act as -Wno-error | ||||||
|  | + | ||||||
|  |  Wextra | ||||||
|  |  Common Warning | ||||||
|  |  Print extra (possibly unwanted) warnings | ||||||
|  | @@ -573,6 +577,9 @@ | ||||||
|  |  Common Report Var(flag_guess_branch_prob) Optimization | ||||||
|  |  Enable guessing of branch probabilities | ||||||
|  |   | ||||||
|  | +fhonour-copts | ||||||
|  | +Common RejectNegative | ||||||
|  | + | ||||||
|  |  ; Nonzero means ignore `#ident' directives.  0 means handle them. | ||||||
|  |  ; Generate position-independent code for executables if possible | ||||||
|  |  ; On SVR4 targets, it also controls whether or not to emit a | ||||||
|  | --- a/gcc/opts.c | ||||||
|  | +++ b/gcc/opts.c | ||||||
|  | @@ -891,8 +891,6 @@ | ||||||
|  |    flag_schedule_insns_after_reload = opt2; | ||||||
|  |  #endif | ||||||
|  |    flag_regmove = opt2; | ||||||
|  | -  flag_strict_aliasing = opt2; | ||||||
|  | -  flag_strict_overflow = opt2; | ||||||
|  |    flag_reorder_blocks = opt2; | ||||||
|  |    flag_reorder_functions = opt2; | ||||||
|  |    flag_tree_vrp = opt2; | ||||||
|  | @@ -912,6 +910,9 @@ | ||||||
|  |   | ||||||
|  |    /* -O3 optimizations.  */ | ||||||
|  |    opt3 = (optimize >= 3); | ||||||
|  | +  flag_strict_aliasing = opt3; | ||||||
|  | +  flag_strict_overflow = opt3; | ||||||
|  | +  flag_delete_null_pointer_checks = opt3; | ||||||
|  |    flag_predictive_commoning = opt3; | ||||||
|  |    flag_inline_functions = opt3; | ||||||
|  |    flag_unswitch_loops = opt3; | ||||||
|  | @@ -1638,6 +1639,17 @@ | ||||||
|  |        enable_warning_as_error (arg, value, lang_mask); | ||||||
|  |        break; | ||||||
|  |   | ||||||
|  | +    case OPT_Werror_maybe_reset: | ||||||
|  | +      { | ||||||
|  | +       char *ev = getenv ("GCC_NO_WERROR"); | ||||||
|  | +       if ((ev != NULL) && (*ev != '0')) | ||||||
|  | +         warnings_are_errors = 0; | ||||||
|  | +      } | ||||||
|  | +      break; | ||||||
|  | + | ||||||
|  | +    case OPT_fhonour_copts: | ||||||
|  | +      break; | ||||||
|  | + | ||||||
|  |      case OPT_Wlarger_than_: | ||||||
|  |        /* This form corresponds to -Wlarger-than-. | ||||||
|  |  	 Kept for backward compatibility. | ||||||
|  | --- a/gcc/doc/cppopts.texi | ||||||
|  | +++ b/gcc/doc/cppopts.texi | ||||||
|  | @@ -164,6 +164,11 @@ | ||||||
|  |  Make all warnings into hard errors.  Source code which triggers warnings | ||||||
|  |  will be rejected. | ||||||
|  |   | ||||||
|  | + at item -Werror-maybe-reset | ||||||
|  | + at opindex Werror-maybe-reset | ||||||
|  | +Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment | ||||||
|  | +variable is set to anything other than 0 or empty. | ||||||
|  | + | ||||||
|  |  @item -Wsystem-headers | ||||||
|  |  @opindex Wsystem-headers | ||||||
|  |  Issue warnings for code in system headers.  These are normally unhelpful | ||||||
|  | --- a/gcc/doc/invoke.texi | ||||||
|  | +++ b/gcc/doc/invoke.texi | ||||||
|  | @@ -234,7 +234,7 @@ | ||||||
|  |  -Wconversion  -Wcoverage-mismatch  -Wno-deprecated  @gol | ||||||
|  |  -Wno-deprecated-declarations -Wdisabled-optimization  @gol | ||||||
|  |  -Wno-div-by-zero -Wempty-body  -Wenum-compare -Wno-endif-labels @gol | ||||||
|  | --Werror  -Werror=* @gol | ||||||
|  | +-Werror  -Werror=* -Werror-maybe-reset @gol | ||||||
|  |  -Wfatal-errors  -Wfloat-equal  -Wformat  -Wformat=2 @gol | ||||||
|  |  -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol | ||||||
|  |  -Wformat-security  -Wformat-y2k @gol | ||||||
|  | @@ -4161,6 +4161,22 @@ | ||||||
|  |  @option{-Wall} and by @option{-pedantic}, which can be disabled with | ||||||
|  |  @option{-Wno-pointer-sign}. | ||||||
|  |   | ||||||
|  | + at item -Werror-maybe-reset | ||||||
|  | + at opindex Werror-maybe-reset | ||||||
|  | +Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment | ||||||
|  | +variable is set to anything other than 0 or empty. | ||||||
|  | + | ||||||
|  | + at item -fhonour-copts | ||||||
|  | + at opindex fhonour-copts | ||||||
|  | +If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not | ||||||
|  | +given at least once, and warn if it is given more than once. | ||||||
|  | +If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not | ||||||
|  | +given exactly once. | ||||||
|  | +If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option | ||||||
|  | +is not given exactly once. | ||||||
|  | +The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}. | ||||||
|  | +This flag and environment variable only affect the C language. | ||||||
|  | + | ||||||
|  |  @item -Wstack-protector | ||||||
|  |  @opindex Wstack-protector | ||||||
|  |  @opindex Wno-stack-protector | ||||||
|  | @@ -5699,7 +5715,7 @@ | ||||||
|  |  second branch or a point immediately following it, depending on whether | ||||||
|  |  the condition is known to be true or false. | ||||||
|  |   | ||||||
|  | -Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. | ||||||
|  | +Enabled at levels @option{-O3}. | ||||||
|  |   | ||||||
|  |  @item -fsplit-wide-types | ||||||
|  |  @opindex fsplit-wide-types | ||||||
|  | @@ -5844,7 +5860,7 @@ | ||||||
|  |  @option{-fno-delete-null-pointer-checks} to disable this optimization | ||||||
|  |  for programs which depend on that behavior. | ||||||
|  |   | ||||||
|  | -Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. | ||||||
|  | +Enabled at levels @option{-O3}. | ||||||
|  |   | ||||||
|  |  @item -fexpensive-optimizations | ||||||
|  |  @opindex fexpensive-optimizations | ||||||
|  | --- a/gcc/java/jvspec.c | ||||||
|  | +++ b/gcc/java/jvspec.c | ||||||
|  | @@ -670,6 +670,7 @@ | ||||||
|  |       class name.  Append dummy `.c' that can be stripped by set_input so %b | ||||||
|  |       is correct.  */  | ||||||
|  |    set_input (concat (main_class_name, "main.c", NULL)); | ||||||
|  | +  putenv ("GCC_HONOUR_COPTS=s"); /* XXX hack!  */ | ||||||
|  |    err = do_spec (jvgenmain_spec); | ||||||
|  |    if (err == 0) | ||||||
|  |      { | ||||||
| @@ -0,0 +1,14 @@ | |||||||
|  | --- gcc-4.4.0/gcc/config/arm/arm-protos.h	2009-02-20 16:20:38.000000000 +0100 | ||||||
|  | +++ gcc-4.4.0.new/gcc/config/arm/arm-protos.h	2009-04-22 16:00:58.000000000 +0200 | ||||||
|  | @@ -43,10 +43,10 @@ | ||||||
|  |  extern void arm_output_fn_unwind (FILE *, bool); | ||||||
|  |     | ||||||
|  |   | ||||||
|  | -#ifdef RTX_CODE | ||||||
|  |  extern bool arm_vector_mode_supported_p (enum machine_mode); | ||||||
|  |  extern int arm_hard_regno_mode_ok (unsigned int, enum machine_mode); | ||||||
|  |  extern int const_ok_for_arm (HOST_WIDE_INT); | ||||||
|  | +#ifdef RTX_CODE | ||||||
|  |  extern int arm_split_constant (RTX_CODE, enum machine_mode, rtx, | ||||||
|  |  			       HOST_WIDE_INT, rtx, rtx, int); | ||||||
|  |  extern RTX_CODE arm_canonicalize_comparison (RTX_CODE, enum machine_mode, | ||||||
							
								
								
									
										12
									
								
								toolchain/gcc/patches/4.5.0/999-coldfire.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								toolchain/gcc/patches/4.5.0/999-coldfire.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | Index: gcc-4.4.2/gcc/config.gcc | ||||||
|  | =================================================================== | ||||||
|  | --- gcc-4.4.2.orig/gcc/config.gcc	2009-10-21 16:19:39.000000000 +0200 | ||||||
|  | +++ gcc-4.4.2/gcc/config.gcc	2009-10-21 16:19:40.000000000 +0200 | ||||||
|  | @@ -1506,6 +1506,7 @@ | ||||||
|  |  	if test x$sjlj != x1; then | ||||||
|  |  	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" | ||||||
|  |  	fi | ||||||
|  | +	tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf" | ||||||
|  |  	;; | ||||||
|  |  m68k-*-rtems*) | ||||||
|  |  	default_m68k_cpu=68020 | ||||||
| @@ -11,8 +11,12 @@ curdir:=tools | |||||||
| # subdirectories to descend into | # subdirectories to descend into | ||||||
| tools-y := | tools-y := | ||||||
| ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) | ||||||
|  | ifeq ($(CONFIG_GCC_VERSION_4_5),y) | ||||||
|  | tools-$(CONFIG_GCC_VERSION_4_5) += gmp mpfr mpc | ||||||
|  | else | ||||||
| tools-$(CONFIG_GCC_VERSION_4_3)$(CONFIG_GCC_VERSION_4_4) += gmp mpfr | tools-$(CONFIG_GCC_VERSION_4_3)$(CONFIG_GCC_VERSION_4_4) += gmp mpfr | ||||||
| endif | endif | ||||||
|  | endif | ||||||
| tools-y += m4 autoconf automake bison pkg-config sed mklibs | tools-y += m4 autoconf automake bison pkg-config sed mklibs | ||||||
| tools-y += sstrip ipkg-utils genext2fs libuuid mtd-utils mkimage | tools-y += sstrip ipkg-utils genext2fs libuuid mtd-utils mkimage | ||||||
| tools-y += firmware-utils patch-cmdline quilt yaffs2 | tools-y += firmware-utils patch-cmdline quilt yaffs2 | ||||||
| @@ -40,6 +44,7 @@ $(curdir)/quilt/compile := $(curdir)/sed/install | |||||||
| $(curdir)/dtc/compile := $(curdir)/bison/install | $(curdir)/dtc/compile := $(curdir)/bison/install | ||||||
| $(curdir)/autoconf/compile := $(curdir)/m4/install | $(curdir)/autoconf/compile := $(curdir)/m4/install | ||||||
| $(curdir)/automake/compile := $(curdir)/m4/install $(curdir)/autoconf/install | $(curdir)/automake/compile := $(curdir)/m4/install $(curdir)/autoconf/install | ||||||
|  | $(curdir)/mpc/compile := $(curdir)/gmp/install | ||||||
| $(curdir)/mpfr/compile := $(curdir)/gmp/install | $(curdir)/mpfr/compile := $(curdir)/gmp/install | ||||||
| $(curdir)/mtd-utils/compile := $(curdir)/libuuid/install | $(curdir)/mtd-utils/compile := $(curdir)/libuuid/install | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										40
									
								
								tools/mpc/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tools/mpc/Makefile
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | |||||||
|  | # | ||||||
|  | # Copyright (C) 2009 OpenWrt.org | ||||||
|  | # | ||||||
|  | # This is free software, licensed under the GNU General Public License v2. | ||||||
|  | # See /LICENSE for more information. | ||||||
|  | # | ||||||
|  | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
|  | PKG_NAME:=mpc | ||||||
|  | PKG_VERSION:=0.8.1 | ||||||
|  |  | ||||||
|  | PKG_SOURCE_URL:=http://www.multiprecision.org/mpc/download/ | ||||||
|  | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||||||
|  | PKG_MD5SUM:=5b34aa804d514cc295414a963aedb6bf | ||||||
|  |  | ||||||
|  | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
|  | unexport CFLAGS | ||||||
|  |  | ||||||
|  | ifeq ($(HOST_OS),Darwin) | ||||||
|  |   GNU_HOST_NAME:= | ||||||
|  |   HOST_CONFIGURE_ARGS:=$(filter-out --target= --build= --host=,$(HOST_CONFIGURE_ARGS)) | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | HOST_CONFIGURE_ARGS += \ | ||||||
|  | 	--enable-static \ | ||||||
|  | 	--disable-shared \ | ||||||
|  | 	--with-mpfr=$(TOPDIR)/staging_dir/host \ | ||||||
|  | 	--with-gmp=$(TOPDIR)/staging_dir/host | ||||||
|  |  | ||||||
|  | define Host/Configure | ||||||
|  | 	(cd $(HOST_BUILD_DIR)/$(3); \ | ||||||
|  | 		$(HOST_CONFIGURE_CMD) \ | ||||||
|  | 		$(HOST_CONFIGURE_VARS) \ | ||||||
|  | 		$(HOST_CONFIGURE_ARGS); \ | ||||||
|  | 	) | ||||||
|  | endef | ||||||
|  |  | ||||||
|  |  | ||||||
|  | $(eval $(call HostBuild)) | ||||||
| @@ -7,11 +7,11 @@ | |||||||
| include $(TOPDIR)/rules.mk | include $(TOPDIR)/rules.mk | ||||||
|  |  | ||||||
| PKG_NAME:=mpfr | PKG_NAME:=mpfr | ||||||
| PKG_VERSION:=2.4.1 | PKG_VERSION:=2.4.2 | ||||||
|  |  | ||||||
| PKG_SOURCE_URL:=http://www.mpfr.org/mpfr-$(PKG_VERSION) | PKG_SOURCE_URL:=http://www.mpfr.org/mpfr-$(PKG_VERSION) | ||||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 | ||||||
| PKG_MD5SUM:=c5ee0a8ce82ad55fe29ac57edd35d09e | PKG_MD5SUM:=89e59fe665e2b3ad44a6789f40b059a0 | ||||||
|  |  | ||||||
| include $(INCLUDE_DIR)/host-build.mk | include $(INCLUDE_DIR)/host-build.mk | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,18 +7,18 @@ diff -urN mpfr-2.4.1/Makefile.am mpfr-2.4.1.new/Makefile.am | |||||||
|   |   | ||||||
| -SUBDIRS = tests | -SUBDIRS = tests | ||||||
| +SUBDIRS = | +SUBDIRS = | ||||||
|  EXTRA_DIST = BUGS FAQ.html PATCHES VERSION get_patches.sh round_raw_generic.c gen_inverse.h jyn_asympt.c |  | ||||||
|   |   | ||||||
|  include_HEADERS = mpfr.h mpf2mpfr.h |  nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LIB FAQ.html NEWS TODO \ | ||||||
|  |    examples/ReadMe examples/divworst.c examples/rndo-add.c examples/sample.c | ||||||
| diff -urN mpfr-2.4.1/Makefile.in mpfr-2.4.1.new/Makefile.in | diff -urN mpfr-2.4.1/Makefile.in mpfr-2.4.1.new/Makefile.in | ||||||
| --- mpfr-2.4.1/Makefile.in	2009-02-25 17:18:06.000000000 +0100 | --- mpfr-2.4.1/Makefile.in	2009-02-25 17:18:06.000000000 +0100 | ||||||
| +++ mpfr-2.4.1.new/Makefile.in	2009-08-20 14:58:32.000000000 +0200 | +++ mpfr-2.4.1.new/Makefile.in	2009-08-20 14:58:32.000000000 +0200 | ||||||
| @@ -295,7 +295,7 @@ | @@ -344,7 +344,7 @@ | ||||||
|  top_srcdir = @top_srcdir@ |  top_srcdir = @top_srcdir@ | ||||||
|  AUTOMAKE_OPTIONS = gnu ansi2knr |  AUTOMAKE_OPTIONS = gnu ansi2knr | ||||||
|  ACLOCAL_AMFLAGS = -I m4 |  ACLOCAL_AMFLAGS = -I m4 | ||||||
| -SUBDIRS = tests | -SUBDIRS = tests | ||||||
| +SUBDIRS = | +SUBDIRS = | ||||||
|  EXTRA_DIST = BUGS FAQ.html PATCHES VERSION get_patches.sh round_raw_generic.c gen_inverse.h jyn_asympt.c |  nobase_dist_doc_DATA = AUTHORS BUGS COPYING COPYING.LIB FAQ.html NEWS TODO \ | ||||||
|  include_HEADERS = mpfr.h mpf2mpfr.h |    examples/ReadMe examples/divworst.c examples/rndo-add.c examples/sample.c | ||||||
|  lib_LTLIBRARIES = libmpfr.la |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Alexandros C. Couloumbis
					Alexandros C. Couloumbis