diff options
Diffstat (limited to 'toolchain/gcc')
| -rw-r--r-- | toolchain/gcc/Config.in | 3 | ||||
| -rw-r--r-- | toolchain/gcc/Config.version | 6 | ||||
| -rw-r--r-- | toolchain/gcc/Makefile | 7 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/100-uclibc-conf.patch | 33 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/301-missing-execinfo_h.patch | 11 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/302-c99-snprintf.patch | 13 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/305-libmudflap-susv3-legacy.patch | 49 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/810-arm-softfloat-libgcc.patch | 27 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/993-arm_insn-opinit-RTX_CODE-fixup.patch | 14 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.4.0/999-coldfire.patch | 10 | 
10 files changed, 171 insertions, 2 deletions
| diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in index fde5def17..54c3015c5 100644 --- a/toolchain/gcc/Config.in +++ b/toolchain/gcc/Config.in @@ -23,6 +23,9 @@ if !LINUX_2_4  	config GCC_VERSION_4_3_3  		bool "gcc 4.3.3" + +	config GCC_VERSION_4_4_0 +		bool "gcc 4.4.0"  endif  endchoice diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version index 1193580e1..98d553f73 100644 --- a/toolchain/gcc/Config.version +++ b/toolchain/gcc/Config.version @@ -4,6 +4,7 @@ config GCC_VERSION  	default "4.1.2"     if GCC_VERSION_4_1_2  	default "4.2.4"     if GCC_VERSION_4_2_4  	default "4.3.3"     if GCC_VERSION_4_3_3 +	default "4.4.0"	    if GCC_VERSION_4_4_0  	default "4.1.2"  config GCC_VERSION_3 @@ -19,6 +20,7 @@ config GCC_VERSION_4  	default y	if GCC_VERSION_4_1  	default y	if GCC_VERSION_4_2  	default y	if GCC_VERSION_4_3 +	default y	if GCC_VERSION_4_4  config GCC_VERSION_4_1  	bool @@ -32,6 +34,10 @@ config GCC_VERSION_4_3  	bool  	default y	if GCC_VERSION_4_3_3 +config GCC_VERSION_4_4 +	bool +	default y	if GCC_VERSION_4_4_0 +  if !TOOLCHAINOPTS  	config GCC_VERSION_3_4_6  		default y if LINUX_2_4 diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index d7170ea8e..43097880e 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -44,6 +44,9 @@ endif  ifeq ($(PKG_VERSION),4.3.3)    PKG_MD5SUM:=cc3c5565fdb9ab87a05ddb106ba0bd1f  endif +ifeq ($(PKG_VERSION),4.4.0) +  PKG_MD5SUM:=cf5d787bee57f38168b74d65a7c0e6fd +endif  PATCH_DIR=./patches/$(PKG_VERSION) @@ -75,7 +78,7 @@ GCC_CONFIGURE:= \  		$(call qstrip,$(CONFIG_EXTRA_GCC_CONFIG_OPTIONS)) \  		$(if $(CONFIG_mips64)$(CONFIG_mips64el),--with-arch=mips64 --with-abi=64) \ -ifneq ($(CONFIG_GCC_VERSION_4_3),) +ifneq ($(CONFIG_GCC_VERSION_4_3)$(CONFIG_GCC_VERSION_4_4),)    GCC_BUILD_TARGET_LIBGCC:=y    GCC_CONFIGURE+= \  		--with-gmp=$(TOPDIR)/staging_dir/host \ @@ -236,7 +239,7 @@ define Host/Prepare  	$(CP) $(SCRIPT_DIR)/config.{guess,sub} $(HOST_BUILD_DIR)/  	$(SED) 's,\(version_string.. = "[0-9\.]*\).*\(";\),\1 (OpenWrt-2.0)\2,' $(HOST_BUILD_DIR)/gcc/version.c  	$(SED) 's,\(bug_report_url.. = "\).*\(";\),\1<URL:https://dev.openwrt.org/>\2,' $(HOST_BUILD_DIR)/gcc/version.c -	(cd $(HOST_BUILD_DIR)/libstdc++-v3; autoconf;); +	#(cd $(HOST_BUILD_DIR)/libstdc++-v3; autoconf;);  	$(SED) 's,gcc_no_link=yes,gcc_no_link=no,' $(HOST_BUILD_DIR)/libstdc++-v3/configure  	$(call Stage0/Configure)  	$(call Stage0/Compile) diff --git a/toolchain/gcc/patches/4.4.0/100-uclibc-conf.patch b/toolchain/gcc/patches/4.4.0/100-uclibc-conf.patch new file mode 100644 index 000000000..cca8c8229 --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/100-uclibc-conf.patch @@ -0,0 +1,33 @@ +--- gcc/gcc/config/--- gcc/contrib/regression/objs-gcc.sh ++++ gcc/contrib/regression/objs-gcc.sh +@@ -105,6 +105,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 +--- gcc/libjava/classpath/ltconfig ++++ gcc/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 diff --git a/toolchain/gcc/patches/4.4.0/301-missing-execinfo_h.patch b/toolchain/gcc/patches/4.4.0/301-missing-execinfo_h.patch new file mode 100644 index 000000000..0e2092f3f --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/301-missing-execinfo_h.patch @@ -0,0 +1,11 @@ +--- gcc-4.0.0/boehm-gc/include/gc.h-orig	2005-04-28 22:28:57.000000000 -0500 ++++ gcc-4.0.0/boehm-gc/include/gc.h	2005-04-28 22:30:38.000000000 -0500 +@@ -500,7 +500,7 @@ + #ifdef __linux__ + # 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 diff --git a/toolchain/gcc/patches/4.4.0/302-c99-snprintf.patch b/toolchain/gcc/patches/4.4.0/302-c99-snprintf.patch new file mode 100644 index 000000000..ba51a0e1d --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/302-c99-snprintf.patch @@ -0,0 +1,13 @@ +Index: gcc-4.3.0/libstdc++-v3/include/c_global/cstdio +=================================================================== +--- gcc-4.3.0/libstdc++-v3/include/c_global/cstdio	(revision 129202) ++++ gcc-4.3.0/libstdc++-v3/include/c_global/cstdio	(working copy) +@@ -144,7 +144,7 @@ +  + _GLIBCXX_END_NAMESPACE +  +-#if _GLIBCXX_USE_C99 ++#if _GLIBCXX_USE_C99 || defined __UCLIBC__ +  + #undef snprintf + #undef vfscanf diff --git a/toolchain/gcc/patches/4.4.0/305-libmudflap-susv3-legacy.patch b/toolchain/gcc/patches/4.4.0/305-libmudflap-susv3-legacy.patch new file mode 100644 index 000000000..374b1f865 --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/305-libmudflap-susv3-legacy.patch @@ -0,0 +1,49 @@ +Index: gcc-4.2/libmudflap/mf-hooks2.c +=================================================================== +--- gcc-4.2/libmudflap/mf-hooks2.c	(revision 119834) ++++ gcc-4.2/libmudflap/mf-hooks2.c	(working copy) +@@ -427,7 +427,7 @@ + { +   TRACE ("%s\n", __PRETTY_FUNCTION__); +   MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region"); +-  bzero (s, n); ++  memset (s, 0, n); + } +  +  +@@ -437,7 +437,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); + } +  +  +@@ -447,7 +447,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); + } +  +  +@@ -456,7 +456,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); + } +  +  +@@ -465,7 +465,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 */ diff --git a/toolchain/gcc/patches/4.4.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/4.4.0/810-arm-softfloat-libgcc.patch new file mode 100644 index 000000000..e4b9e73a6 --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/810-arm-softfloat-libgcc.patch @@ -0,0 +1,27 @@ +diff -urN gcc-4.4.0/gcc/config/arm/linux-elf.h gcc-4.4.0.new/gcc/config/arm/linux-elf.h +--- gcc-4.4.0/gcc/config/arm/linux-elf.h	2009-02-20 16:20:38.000000000 +0100 ++++ gcc-4.4.0.new/gcc/config/arm/linux-elf.h	2009-04-22 15:49:50.000000000 +0200 +@@ -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" +  +diff -urN gcc-4.4.0/gcc/config/arm/t-linux gcc-4.4.0.new/gcc/config/arm/t-linux +--- gcc-4.4.0/gcc/config/arm/t-linux	2008-12-19 18:31:12.000000000 +0100 ++++ gcc-4.4.0.new/gcc/config/arm/t-linux	2009-04-22 15:49:15.000000000 +0200 +@@ -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 diff --git a/toolchain/gcc/patches/4.4.0/993-arm_insn-opinit-RTX_CODE-fixup.patch b/toolchain/gcc/patches/4.4.0/993-arm_insn-opinit-RTX_CODE-fixup.patch new file mode 100644 index 000000000..4c4be9f2a --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/993-arm_insn-opinit-RTX_CODE-fixup.patch @@ -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, diff --git a/toolchain/gcc/patches/4.4.0/999-coldfire.patch b/toolchain/gcc/patches/4.4.0/999-coldfire.patch new file mode 100644 index 000000000..2968e8d09 --- /dev/null +++ b/toolchain/gcc/patches/4.4.0/999-coldfire.patch @@ -0,0 +1,10 @@ +--- gcc-4.3.1/gcc/config.gcc.old	2008-06-17 23:49:00.000000000 +0200 ++++ gcc-4.3.1/gcc/config.gcc	2008-06-17 23:03:07.000000000 +0200 +@@ -1630,6 +1630,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 | 
