gcc: Add recipes for version 4.5.0
authorKhem Raj <raj.khem@gmail.com>
Thu, 22 Apr 2010 20:07:33 +0000 (13:07 -0700)
committerKhem Raj <raj.khem@gmail.com>
Thu, 22 Apr 2010 20:15:52 +0000 (13:15 -0700)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
14 files changed:
recipes/gcc/gcc-4.5.0.inc [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/100-uclibc-conf.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/cache-amnesia.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/fortran-cross-compile-hack.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/gcc-flags-for-build.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/gcc-uclibc-locale-ctype_touplow_t.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/zecke-no-host-includes.patch [new file with mode: 0644]
recipes/gcc/gcc-4.5.0/zecke-xgcc-cpp.patch [new file with mode: 0644]
recipes/gcc/gcc-cross-initial_4.5.0.bb [new file with mode: 0644]
recipes/gcc/gcc-cross-intermediate_4.5.0.bb [new file with mode: 0644]
recipes/gcc/gcc-cross-sdk_4.5.0.bb [new file with mode: 0644]
recipes/gcc/gcc-cross_4.5.0.bb [new file with mode: 0644]
recipes/gcc/gcc_4.5.0.bb [new file with mode: 0644]

diff --git a/recipes/gcc/gcc-4.5.0.inc b/recipes/gcc/gcc-4.5.0.inc
new file mode 100644 (file)
index 0000000..357592f
--- /dev/null
@@ -0,0 +1,36 @@
+DEFAULT_PREFERENCE = "-999"
+ARM_INSTRUCTION_SET = "arm"
+
+require gcc-common.inc
+LICENSE = "GPLv3"
+
+DEPENDS = "mpfr gmp libmpc"
+
+FILESPATHPKG .= ":gcc-$PV"
+
+INC_PR = "r0"
+
+SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2;name=gcc450tarbz2 \
+          file://gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch;patch=1 \
+          file://100-uclibc-conf.patch;patch=1 \
+           file://gcc-uclibc-locale-ctype_touplow_t.patch;patch=1 \
+          file://cache-amnesia.patch;patch=1 \
+          file://gcc-flags-for-build.patch;patch=1 \
+         "
+
+# Language Overrides
+FORTRAN = ""
+JAVA = ""
+
+EXTRA_OECONF_BASE = " --enable-libssp \
+                     --disable-bootstrap --disable-libgomp \
+                     --disable-libmudflap"
+
+SRC_URI[gcc450tarbz2.md5sum] = "ff27b7c4a5d5060c8a8543a44abca31f"
+SRC_URI[gcc450tarbz2.sha256sum] = "8293e9efa68a8ec0fdd0dae9c9bd128a8e742566acd9c8fbcfe79d98ed3756c8"
+
+EXTRA_OECONF_append_linux-uclibc = " --disable-decimal-float "
+EXTRA_OECONF_append_linux-uclibceabi = " --disable-decimal-float "
+EXTRA_OECONF_append_linux-uclibcspe = " --disable-decimal-float "
+EXTRA_OECONF_append_linux-uclibc = " ${@base_contains('TARGET_ARCH', 'powerpc', '--without-long-double-128', '',d)}"
+
diff --git a/recipes/gcc/gcc-4.5.0/100-uclibc-conf.patch b/recipes/gcc/gcc-4.5.0/100-uclibc-conf.patch
new file mode 100644 (file)
index 0000000..0b79960
--- /dev/null
@@ -0,0 +1,37 @@
+Index: gcc-4.3.1/contrib/regression/objs-gcc.sh
+===================================================================
+--- gcc-4.3.1.orig/contrib/regression/objs-gcc.sh      2007-12-24 15:18:57.000000000 -0800
++++ gcc-4.3.1/contrib/regression/objs-gcc.sh   2008-08-16 01:15:12.000000000 -0700
+@@ -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
+Index: gcc-4.3.1/libjava/classpath/ltconfig
+===================================================================
+--- gcc-4.3.1.orig/libjava/classpath/ltconfig  2007-06-03 16:18:43.000000000 -0700
++++ gcc-4.3.1/libjava/classpath/ltconfig       2008-08-16 01:15:12.000000000 -0700
+@@ -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/recipes/gcc/gcc-4.5.0/cache-amnesia.patch b/recipes/gcc/gcc-4.5.0/cache-amnesia.patch
new file mode 100644 (file)
index 0000000..b889f9b
--- /dev/null
@@ -0,0 +1,31 @@
+---
+ gcc/configure    |    2 +-
+ gcc/configure.ac |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: gcc-4.5+svnr155514/gcc/configure
+===================================================================
+--- gcc-4.5+svnr155514.orig/gcc/configure      2009-12-29 22:00:40.000000000 -0800
++++ gcc-4.5+svnr155514/gcc/configure   2009-12-29 23:52:43.381592113 -0800
+@@ -10467,7 +10467,7 @@ else
+       saved_CFLAGS="${CFLAGS}"
+       CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+       LDFLAGS="${LDFLAGS_FOR_BUILD}" \
+-      ${realsrcdir}/configure \
++      CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
+               --enable-languages=${enable_languages-all} \
+               --target=$target_alias --host=$build_alias --build=$build_alias
+       CFLAGS="${saved_CFLAGS}"
+Index: gcc-4.5+svnr155514/gcc/configure.ac
+===================================================================
+--- gcc-4.5+svnr155514.orig/gcc/configure.ac   2009-12-29 22:00:40.000000000 -0800
++++ gcc-4.5+svnr155514/gcc/configure.ac        2009-12-29 23:51:54.589091778 -0800
+@@ -1458,7 +1458,7 @@ else
+       saved_CFLAGS="${CFLAGS}"
+       CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
+       LDFLAGS="${LDFLAGS_FOR_BUILD}" \
+-      ${realsrcdir}/configure \
++      CONFIG_SITE= ${realsrcdir}/configure --cache-file=./other.cache \
+               --enable-languages=${enable_languages-all} \
+               --target=$target_alias --host=$build_alias --build=$build_alias
+       CFLAGS="${saved_CFLAGS}"
diff --git a/recipes/gcc/gcc-4.5.0/fortran-cross-compile-hack.patch b/recipes/gcc/gcc-4.5.0/fortran-cross-compile-hack.patch
new file mode 100644 (file)
index 0000000..348c770
--- /dev/null
@@ -0,0 +1,30 @@
+* Fortran would have searched for arm-angstrom-gnueabi-gfortran but would have used
+  used gfortan. For gcc_4.2.2.bb we want to use the gfortran compiler from our cross
+  directory.
+
+Index: gcc-4.5+svnr155514/libgfortran/configure
+===================================================================
+--- gcc-4.5+svnr155514.orig/libgfortran/configure      2009-12-29 22:02:01.000000000 -0800
++++ gcc-4.5+svnr155514/libgfortran/configure   2009-12-30 08:12:40.889091657 -0800
+@@ -11655,7 +11655,7 @@ CC="$lt_save_CC"
+ # We need gfortran to compile parts of the library
+ #AC_PROG_FC(gfortran)
+-FC="$GFORTRAN"
++#FC="$GFORTRAN"
+ ac_ext=${ac_fc_srcext-f}
+ ac_compile='$FC -c $FCFLAGS $ac_fcflags_srcext conftest.$ac_ext >&5'
+ ac_link='$FC -o conftest$ac_exeext $FCFLAGS $LDFLAGS $ac_fcflags_srcext conftest.$ac_ext $LIBS >&5'
+Index: gcc-4.5+svnr155514/libgfortran/configure.ac
+===================================================================
+--- gcc-4.5+svnr155514.orig/libgfortran/configure.ac   2009-12-29 22:02:01.000000000 -0800
++++ gcc-4.5+svnr155514/libgfortran/configure.ac        2009-12-30 08:12:13.453094218 -0800
+@@ -187,7 +187,7 @@ AC_SUBST(enable_static)
+ # We need gfortran to compile parts of the library
+ #AC_PROG_FC(gfortran)
+-FC="$GFORTRAN"
++#FC="$GFORTRAN"
+ AC_PROG_FC(gfortran)
+ # extra LD Flags which are required for targets
diff --git a/recipes/gcc/gcc-4.5.0/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch b/recipes/gcc/gcc-4.5.0/gcc-4.3.1-ARCH_FLAGS_FOR_TARGET.patch
new file mode 100644 (file)
index 0000000..f33e6c1
--- /dev/null
@@ -0,0 +1,31 @@
+---
+ configure    |    2 +-
+ configure.ac |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+Index: gcc-4.3.1/configure.ac
+===================================================================
+--- gcc-4.3.1.orig/configure.ac        2008-07-21 12:29:18.000000000 -0700
++++ gcc-4.3.1/configure.ac     2008-07-21 12:29:35.000000000 -0700
+@@ -2352,7 +2352,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+  *" newlib "*)
+   case " $target_configargs " in
+Index: gcc-4.3.1/configure
+===================================================================
+--- gcc-4.3.1.orig/configure   2008-07-21 12:29:48.000000000 -0700
++++ gcc-4.3.1/configure        2008-07-21 12:29:59.000000000 -0700
+@@ -5841,7 +5841,7 @@ fi
+ # for target_alias and gcc doesn't manage it consistently.
+ target_configargs="--cache-file=./config.cache ${target_configargs}"
+-FLAGS_FOR_TARGET=
++FLAGS_FOR_TARGET="$ARCH_FLAGS_FOR_TARGET"
+ case " $target_configdirs " in
+  *" newlib "*)
+   case " $target_configargs " in
diff --git a/recipes/gcc/gcc-4.5.0/gcc-flags-for-build.patch b/recipes/gcc/gcc-4.5.0/gcc-flags-for-build.patch
new file mode 100644 (file)
index 0000000..98b3ecf
--- /dev/null
@@ -0,0 +1,178 @@
+Index: gcc-4.5+svnr155680/Makefile.def
+===================================================================
+--- gcc-4.5+svnr155680.orig/Makefile.def       2010-01-13 01:02:22.627540169 -0800
++++ gcc-4.5+svnr155680/Makefile.def    2010-01-13 01:05:24.260056951 -0800
+@@ -240,6 +240,7 @@ flags_to_pass = { flag= AWK ; };
+ flags_to_pass = { flag= BISON ; };
+ flags_to_pass = { flag= CC_FOR_BUILD ; };
+ flags_to_pass = { flag= CFLAGS_FOR_BUILD ; };
++flags_to_pass = { flag= CPPFLAGS_FOR_BUILD ; };
+ flags_to_pass = { flag= CXX_FOR_BUILD ; };
+ flags_to_pass = { flag= EXPECT ; };
+ flags_to_pass = { flag= FLEX ; };
+Index: gcc-4.5+svnr155680/gcc/Makefile.in
+===================================================================
+--- gcc-4.5+svnr155680.orig/gcc/Makefile.in    2010-01-13 01:02:22.675542832 -0800
++++ gcc-4.5+svnr155680/gcc/Makefile.in 2010-01-13 01:05:24.264047000 -0800
+@@ -755,7 +755,7 @@ BUILD_LINKERFLAGS = $(BUILD_CFLAGS)
+ # Native linker and preprocessor flags.  For x-fragment overrides.
+ BUILD_LDFLAGS=@BUILD_LDFLAGS@
+-BUILD_CPPFLAGS=$(ALL_CPPFLAGS)
++BUILD_CPPFLAGS=$(INCLUDES) @BUILD_CPPFLAGS@ $(X_CPPFLAGS)
+ # Actual name to use when installing a native compiler.
+ GCC_INSTALL_NAME := $(shell echo gcc|sed '$(program_transform_name)')
+Index: gcc-4.5+svnr155680/gcc/configure.ac
+===================================================================
+--- gcc-4.5+svnr155680.orig/gcc/configure.ac   2010-01-13 01:02:22.687541624 -0800
++++ gcc-4.5+svnr155680/gcc/configure.ac        2010-01-13 01:06:55.711583352 -0800
+@@ -1774,16 +1774,18 @@ AC_SUBST(inhibit_libc)
+ # Also, we cannot run fixincludes.
+ # These are the normal (build=host) settings:
+-CC_FOR_BUILD='$(CC)'          AC_SUBST(CC_FOR_BUILD)
+-BUILD_CFLAGS='$(ALL_CFLAGS)'  AC_SUBST(BUILD_CFLAGS)
+-BUILD_LDFLAGS='$(LDFLAGS)'    AC_SUBST(BUILD_LDFLAGS)
+-STMP_FIXINC=stmp-fixinc               AC_SUBST(STMP_FIXINC)
++CC_FOR_BUILD='$(CC)'                  AC_SUBST(CC_FOR_BUILD)
++BUILD_CFLAGS='$(ALL_CFLAGS)'          AC_SUBST(BUILD_CFLAGS)
++BUILD_LDFLAGS='$(LDFLAGS)'            AC_SUBST(BUILD_LDFLAGS)
++BUILD_CPPFLAGS='$(ALL_CPPFLAGS)'      AC_SUBST(BUILD_CPPFLAGS)
++STMP_FIXINC=stmp-fixinc                       AC_SUBST(STMP_FIXINC)
+ # And these apply if build != host, or we are generating coverage data
+ if test x$build != x$host || test "x$coverage_flags" != x
+ then
+     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
++    BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)'
+ fi
+ # Expand extra_headers to include complete path.
+Index: gcc-4.5+svnr155680/Makefile.in
+===================================================================
+--- gcc-4.5+svnr155680.orig/Makefile.in        2010-01-13 01:02:22.639539865 -0800
++++ gcc-4.5+svnr155680/Makefile.in     2010-01-13 01:05:24.288038715 -0800
+@@ -328,6 +328,7 @@ AR_FOR_BUILD = @AR_FOR_BUILD@
+ AS_FOR_BUILD = @AS_FOR_BUILD@
+ CC_FOR_BUILD = @CC_FOR_BUILD@
+ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
++CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
+ CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
+ CXX_FOR_BUILD = @CXX_FOR_BUILD@
+ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
+@@ -657,6 +658,7 @@ BASE_FLAGS_TO_PASS = \
+       "BISON=$(BISON)" \
+       "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
+       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
++      "CPPFLAGS_FOR_BUILD=$(CPPFLAGS_FOR_BUILD)" \
+       "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \
+       "EXPECT=$(EXPECT)" \
+       "FLEX=$(FLEX)" \
+Index: gcc-4.5+svnr155680/gcc/configure
+===================================================================
+--- gcc-4.5+svnr155680.orig/gcc/configure      2010-01-13 01:02:22.663539713 -0800
++++ gcc-4.5+svnr155680/gcc/configure   2010-01-13 01:07:24.315537016 -0800
+@@ -705,6 +705,7 @@ SED
+ LIBTOOL
+ collect2
+ STMP_FIXINC
++BUILD_CPPFLAGS
+ BUILD_LDFLAGS
+ BUILD_CFLAGS
+ CC_FOR_BUILD
+@@ -10911,6 +10912,7 @@ fi
+ CC_FOR_BUILD='$(CC)'
+ BUILD_CFLAGS='$(ALL_CFLAGS)'
+ BUILD_LDFLAGS='$(LDFLAGS)'
++BUILD_CPPFLAGS='$(ALL_CPPFLAGS)'
+ STMP_FIXINC=stmp-fixinc
+ # And these apply if build != host, or we are generating coverage data
+@@ -10918,6 +10920,7 @@ if test x$build != x$host || test "x$cov
+ then
+     BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+     BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
++    BUILD_CPPFLAGS='$(CPPFLAGS_FOR_BUILD)'
+ fi
+ # Expand extra_headers to include complete path.
+@@ -17037,7 +17040,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 17040 "configure"
++#line 17043 "configure"
+ #include "confdefs.h"
+ #if HAVE_DLFCN_H
+@@ -17143,7 +17146,7 @@ else
+   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+   lt_status=$lt_dlunknown
+   cat > conftest.$ac_ext <<_LT_EOF
+-#line 17146 "configure"
++#line 17149 "configure"
+ #include "confdefs.h"
+ #if HAVE_DLFCN_H
+Index: gcc-4.5+svnr155680/Makefile.tpl
+===================================================================
+--- gcc-4.5+svnr155680.orig/Makefile.tpl       2010-01-13 01:02:22.603540396 -0800
++++ gcc-4.5+svnr155680/Makefile.tpl    2010-01-13 01:05:24.332038114 -0800
+@@ -331,6 +331,7 @@ AR_FOR_BUILD = @AR_FOR_BUILD@
+ AS_FOR_BUILD = @AS_FOR_BUILD@
+ CC_FOR_BUILD = @CC_FOR_BUILD@
+ CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
++CPPFLAGS_FOR_BUILD = @CPPFLAGS_FOR_BUILD@
+ CXXFLAGS_FOR_BUILD = @CXXFLAGS_FOR_BUILD@
+ CXX_FOR_BUILD = @CXX_FOR_BUILD@
+ DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@
+Index: gcc-4.5+svnr155680/configure
+===================================================================
+--- gcc-4.5+svnr155680.orig/configure  2010-01-13 01:02:22.615539634 -0800
++++ gcc-4.5+svnr155680/configure       2010-01-13 01:07:18.940037187 -0800
+@@ -651,6 +651,7 @@ GCJ_FOR_BUILD
+ DLLTOOL_FOR_BUILD
+ CXX_FOR_BUILD
+ CXXFLAGS_FOR_BUILD
++CPPFLAGS_FOR_BUILD
+ CFLAGS_FOR_BUILD
+ CC_FOR_BUILD
+ AS_FOR_BUILD
+@@ -7862,6 +7863,7 @@ esac
+ # our build compiler if desired.
+ if test x"${build}" = x"${host}" ; then
+   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
++  CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
+   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
+   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
+ fi
+@@ -7940,6 +7942,7 @@ done
++
+ # Generate default definitions for YACC, M4, LEX and other programs that run
+ # on the build machine.  These are used if the Makefile can't locate these
+ # programs in objdir.
+Index: gcc-4.5+svnr155680/configure.ac
+===================================================================
+--- gcc-4.5+svnr155680.orig/configure.ac       2010-01-13 01:02:22.651540130 -0800
++++ gcc-4.5+svnr155680/configure.ac    2010-01-13 01:05:24.340037763 -0800
+@@ -3022,6 +3022,7 @@ esac
+ # our build compiler if desired.
+ if test x"${build}" = x"${host}" ; then
+   CFLAGS_FOR_BUILD=${CFLAGS_FOR_BUILD-${CFLAGS}}
++  CPPFLAGS_FOR_BUILD=${CPPFLAGS_FOR_BUILD-${CPPFLAGS}}
+   CXXFLAGS_FOR_BUILD=${CXXFLAGS_FOR_BUILD-${CXXFLAGS}}
+   LDFLAGS_FOR_BUILD=${LDFLAGS_FOR_BUILD-${LDFLAGS}}
+ fi
+@@ -3087,6 +3088,7 @@ AC_SUBST(AR_FOR_BUILD)
+ AC_SUBST(AS_FOR_BUILD)
+ AC_SUBST(CC_FOR_BUILD)
+ AC_SUBST(CFLAGS_FOR_BUILD)
++AC_SUBST(CPPFLAGS_FOR_BUILD)
+ AC_SUBST(CXXFLAGS_FOR_BUILD)
+ AC_SUBST(CXX_FOR_BUILD)
+ AC_SUBST(DLLTOOL_FOR_BUILD)
diff --git a/recipes/gcc/gcc-4.5.0/gcc-uclibc-locale-ctype_touplow_t.patch b/recipes/gcc/gcc-4.5.0/gcc-uclibc-locale-ctype_touplow_t.patch
new file mode 100644 (file)
index 0000000..ffb37d2
--- /dev/null
@@ -0,0 +1,52 @@
+Index: gcc-4.4.1/libstdc++-v3/config/locale/generic/c_locale.h
+===================================================================
+--- gcc-4.4.1.orig/libstdc++-v3/config/locale/generic/c_locale.h       2009-08-06 23:38:32.398265633 -0700
++++ gcc-4.4.1/libstdc++-v3/config/locale/generic/c_locale.h    2009-08-06 23:41:09.778242281 -0700
+@@ -41,12 +41,17 @@
+ #include <clocale>
+ #include <cstddef>
++#include <features.h> 
++#include <ctype.h> 
+ #define _GLIBCXX_NUM_CATEGORIES 0
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+-
+-  typedef int*                        __c_locale;
++#ifdef __UCLIBC__ 
++   typedef __ctype_touplow_t*   __c_locale; 
++#else 
++   typedef int*         __c_locale; 
++#endif 
+   // Convert numeric value of type double and long double to string and
+   // return length of string.  If vsnprintf is available use it, otherwise
+Index: gcc-4.4.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h
+===================================================================
+--- gcc-4.4.1.orig/libstdc++-v3/config/os/gnu-linux/ctype_base.h       2009-08-06 23:42:27.402242608 -0700
++++ gcc-4.4.1/libstdc++-v3/config/os/gnu-linux/ctype_base.h    2009-08-06 23:43:44.842241959 -0700
+@@ -33,14 +33,21 @@
+  */
+ // Information as gleaned from /usr/include/ctype.h
+-  
++
++#include <features.h> 
++#include <ctype.h> 
++
+ _GLIBCXX_BEGIN_NAMESPACE(std)
+   /// @brief  Base class for ctype.
+   struct ctype_base
+   {
+     // Non-standard typedefs.
+-    typedef const int*                __to_type;
++#ifdef __UCLIBC__ 
++    typedef const __ctype_touplow_t*   __to_type; 
++#else 
++    typedef const int*         __to_type; 
++#endif
+     // NB: Offsets into ctype<char>::_M_table force a particular size
+     // on the mask type. Because of this, we don't use an enum.
diff --git a/recipes/gcc/gcc-4.5.0/zecke-no-host-includes.patch b/recipes/gcc/gcc-4.5.0/zecke-no-host-includes.patch
new file mode 100644 (file)
index 0000000..4ccf35f
--- /dev/null
@@ -0,0 +1,31 @@
+Index: gcc-4.4+svnr145550/gcc/incpath.c
+===================================================================
+--- gcc-4.4+svnr145550.orig/gcc/incpath.c      2009-04-04 13:48:31.000000000 -0700
++++ gcc-4.4+svnr145550/gcc/incpath.c   2009-04-04 14:49:29.000000000 -0700
+@@ -417,6 +417,26 @@
+   p->construct = 0;
+   p->user_supplied_p = user_supplied_p;
++#ifdef CROSS_COMPILE
++    /* A common error when cross compiling is including
++    host headers. This code below will try to fail fast
++    for cross compiling. Currently we consider /usr/include,
++    /opt/include and /sw/include as harmful.  */
++      {
++              /* printf("Adding Path: %s\n", p->name ); */
++              if( strstr(p->name, "/usr/include" ) == p->name ) {
++                      fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name);
++                      abort();
++              } else if( strstr(p->name, "/sw/include") == p->name ) {
++                      fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name);
++                      abort();
++              } else if( strstr(p->name, "/opt/include") == p->name ) {
++                      fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name);
++                      abort();
++               }
++      }
++#endif
++
+   add_cpp_dir_path (p, chain);
+ }
diff --git a/recipes/gcc/gcc-4.5.0/zecke-xgcc-cpp.patch b/recipes/gcc/gcc-4.5.0/zecke-xgcc-cpp.patch
new file mode 100644 (file)
index 0000000..a7722cb
--- /dev/null
@@ -0,0 +1,28 @@
+upstream: n/a
+comment: Use the preprocessor we have just compiled instead the one of
+the system. There might be incompabilities between us and them.
+
+Index: gcc-4.3.1/Makefile.in
+===================================================================
+--- gcc-4.3.1.orig/Makefile.in 2008-08-19 01:09:56.000000000 -0700
++++ gcc-4.3.1/Makefile.in      2008-08-19 01:13:27.000000000 -0700
+@@ -204,6 +204,7 @@
+       AR="$(AR_FOR_TARGET)"; export AR; \
+       AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+       CC="$(CC_FOR_TARGET)"; export CC; \
++      CPP="$(CC_FOR_TARGET) -E"; export CPP; \
+       CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+       CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+Index: gcc-4.3.1/Makefile.tpl
+===================================================================
+--- gcc-4.3.1.orig/Makefile.tpl        2008-08-21 00:07:58.000000000 -0700
++++ gcc-4.3.1/Makefile.tpl     2008-08-21 00:09:52.000000000 -0700
+@@ -223,6 +223,7 @@
+       AR="$(AR_FOR_TARGET)"; export AR; \
+       AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \
+       CC="$(CC_FOR_TARGET)"; export CC; \
++      CPP="$(CC_FOR_TARGET) -E"; export CPP; \
+       CFLAGS="$(CFLAGS_FOR_TARGET) $(SYSROOT_CFLAGS_FOR_TARGET) $(DEBUG_PREFIX_CFLAGS_FOR_TARGET)"; export CFLAGS; \
+       CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \
+       CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
diff --git a/recipes/gcc/gcc-cross-initial_4.5.0.bb b/recipes/gcc/gcc-cross-initial_4.5.0.bb
new file mode 100644 (file)
index 0000000..8356dd1
--- /dev/null
@@ -0,0 +1,9 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-initial.inc
+
+DEPENDS += "gmp-native mpfr-native libmpc-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+                 --disable-libgomp \
+                 --enable-decimal-float=no \
+                 --disable-libssp"
diff --git a/recipes/gcc/gcc-cross-intermediate_4.5.0.bb b/recipes/gcc/gcc-cross-intermediate_4.5.0.bb
new file mode 100644 (file)
index 0000000..b816c8b
--- /dev/null
@@ -0,0 +1,8 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "libmpc-native gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+                 --disable-libgomp \
+                 --disable-libssp"
diff --git a/recipes/gcc/gcc-cross-sdk_4.5.0.bb b/recipes/gcc/gcc-cross-sdk_4.5.0.bb
new file mode 100644 (file)
index 0000000..48d8a0d
--- /dev/null
@@ -0,0 +1,14 @@
+PR = "r1"
+
+inherit sdk
+
+require gcc-${PV}.inc
+require gcc-cross-sdk.inc
+require gcc-configure-sdk.inc
+require gcc-package-sdk.inc
+
+DEPENDS += "libmpc-native gmp-native mpfr-native"
+
+EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \
+               --disable-libgomp --disable-libmudflap \
+               --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native}"
diff --git a/recipes/gcc/gcc-cross_4.5.0.bb b/recipes/gcc/gcc-cross_4.5.0.bb
new file mode 100644 (file)
index 0000000..2d3c136
--- /dev/null
@@ -0,0 +1,13 @@
+PR = "r0"
+require gcc-${PV}.inc
+require gcc-cross4.inc
+require gcc-configure-cross.inc
+require gcc-package-cross.inc
+
+DEPENDS += "libmpc-native"
+
+SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
+
+EXTRA_OECONF += " --disable-libunwind-exceptions --with-mpfr=${STAGING_DIR_NATIVE}${prefix_native} --with-system-zlib"
+
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}"
diff --git a/recipes/gcc/gcc_4.5.0.bb b/recipes/gcc/gcc_4.5.0.bb
new file mode 100644 (file)
index 0000000..55725b0
--- /dev/null
@@ -0,0 +1,13 @@
+PR = "r0"
+require gcc-${PV}.inc
+require gcc-configure-target.inc
+require gcc-package-target.inc
+
+# Gcc 4.3.3 installs crt* in a '4.3.1' dir....
+FILES_${PN} += "\
+        ${gcclibdir}/${TARGET_SYS}/*/*.o \
+"
+
+SRC_URI_append = "file://fortran-cross-compile-hack.patch;patch=1"
+
+ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"