summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2008-07-25 01:47:17 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2008-07-25 01:47:17 +0000
commit68446fb9940af94c377b2552a45d12d5e3e542e2 (patch)
tree5fbed6ba6fa9730c87fce88f5f630f92e5f593e1 /packages
parent4cd01810c3a17b4d8e65383c363eb8eefbda36dc (diff)
parent3c011708443e648c0fdc52c796215266fbb95d4a (diff)
merge of '3421ff70666434c0c8110de81d4810e43ef46a69'
and '7740f57201d1a3339463ab6ee1a56af6dbbd5b7a'
Diffstat (limited to 'packages')
-rw-r--r--packages/chicken/chicken2.inc (renamed from packages/chicken/chicken.inc)0
-rw-r--r--packages/chicken/chicken3.inc36
-rw-r--r--packages/chicken/chicken_2.6.bb2
-rw-r--r--packages/chicken/chicken_3.3.0.bb1
-rw-r--r--packages/eglibc/eglibc-initial.inc16
-rw-r--r--packages/eglibc/eglibc-intermediate.inc12
-rw-r--r--packages/eglibc/eglibc-intermediate_svn.bb8
-rw-r--r--packages/eglibc/eglibc.inc6
-rw-r--r--packages/eglibc/eglibc_svn.bb2
-rw-r--r--packages/gcc/gcc-3.4.4.inc10
-rw-r--r--packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch77
-rw-r--r--packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch251
-rw-r--r--packages/gcc/gcc-configure-cross.inc4
-rw-r--r--packages/gcc/gcc-configure-sdk.inc1
-rw-r--r--packages/gcc/gcc-cross-initial.inc8
-rw-r--r--packages/gcc/gcc-cross-intermediate.inc21
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.3.3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.0.2.bb4
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.0.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.1.bb6
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.1.2.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.1.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.2.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.3.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.2.4.bb5
-rw-r--r--packages/gcc/gcc-cross-intermediate_4.3.1.bb14
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb7
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb12
-rw-r--r--packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb12
-rw-r--r--packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_3.4.4.bb8
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.0.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.2.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.3.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.2.4.bb2
-rw-r--r--packages/gcc/gcc-cross-sdk_4.3.1.bb2
-rw-r--r--packages/gcc/gcc-cross_3.3.3.bb2
-rw-r--r--packages/gcc/gcc-cross_3.3.4.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.3.bb2
-rw-r--r--packages/gcc/gcc-cross_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.0.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.0.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.2.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.3.bb2
-rw-r--r--packages/gcc/gcc-cross_4.2.4.bb2
-rw-r--r--packages/gcc/gcc-cross_4.3.1.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2006q1.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2007q3.bb2
-rw-r--r--packages/gcc/gcc-cross_csl-arm-2008q1.bb2
-rw-r--r--packages/gcc/gcc-native_3.4.4.bb2
-rw-r--r--packages/gcc/gcc-native_3.4.6.bb2
-rw-r--r--packages/gcc/gcc_3.3.3.bb2
-rw-r--r--packages/gcc/gcc_3.3.4.bb2
-rw-r--r--packages/gcc/gcc_3.4.3.bb2
-rw-r--r--packages/gcc/gcc_3.4.4.bb2
-rw-r--r--packages/gcc/gcc_4.0.0.bb2
-rw-r--r--packages/gcc/gcc_4.0.2.bb2
-rw-r--r--packages/gcc/gcc_4.1.0.bb2
-rw-r--r--packages/gcc/gcc_4.1.1.bb2
-rw-r--r--packages/gcc/gcc_4.1.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.1.bb2
-rw-r--r--packages/gcc/gcc_4.2.2.bb2
-rw-r--r--packages/gcc/gcc_4.2.3.bb2
-rw-r--r--packages/gcc/gcc_4.2.4.bb2
-rw-r--r--packages/gcc/gcc_4.3.1.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2005q3.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2006q1.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2007q3.bb2
-rw-r--r--packages/gcc/gcc_csl-arm-2008q1.bb2
-rw-r--r--packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch30
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch37
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch45
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch79
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-memusage.patch44
-rw-r--r--packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch25
-rw-r--r--packages/glibc/glibc-2.7/.mtn2git_empty0
-rw-r--r--packages/glibc/glibc-2.7/all_glibc-i586-chk.patch33
-rw-r--r--packages/glibc/glibc-initial.inc14
-rw-r--r--packages/glibc/glibc-initial_2.5.bb2
-rw-r--r--packages/glibc/glibc-intermediate.inc12
-rw-r--r--packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb6
-rw-r--r--packages/glibc/glibc-intermediate_2.3.6.bb2
-rw-r--r--packages/glibc/glibc-intermediate_2.4.bb4
-rw-r--r--packages/glibc/glibc-intermediate_2.5.bb7
-rw-r--r--packages/glibc/glibc-intermediate_2.6.1.bb8
-rw-r--r--packages/glibc/glibc-intermediate_2.7.bb8
-rw-r--r--packages/glibc/glibc-intermediate_cvs.bb6
-rw-r--r--packages/glibc/glibc-stage.inc7
-rw-r--r--packages/glibc/glibc.inc6
-rw-r--r--packages/glibc/glibc_2.2.5.bb2
-rw-r--r--packages/glibc/glibc_2.3.2+cvs20040726.bb2
-rw-r--r--packages/glibc/glibc_2.3.2.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20041128.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20050221.bb2
-rw-r--r--packages/glibc/glibc_2.3.3+cvs20050420.bb2
-rw-r--r--packages/glibc/glibc_2.3.3.bb2
-rw-r--r--packages/glibc/glibc_2.3.5+cvs20050627.bb2
-rw-r--r--packages/glibc/glibc_2.3.6.bb11
-rw-r--r--packages/glibc/glibc_2.4.bb2
-rw-r--r--packages/glibc/glibc_2.5.bb3
-rw-r--r--packages/glibc/glibc_2.6.1.bb3
-rw-r--r--packages/glibc/glibc_2.7.bb6
-rw-r--r--packages/glibc/glibc_cvs.bb2
-rw-r--r--packages/meta/external-toolchain.bb1
-rw-r--r--packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb1
-rw-r--r--packages/uclibc/bfin-uclibc_svn.bb2
-rw-r--r--packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch25
-rw-r--r--packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch38
-rw-r--r--packages/uclibc/uclibc-initial_0.9.26.bb16
-rw-r--r--packages/uclibc/uclibc-initial_0.9.27.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.28.bb17
-rw-r--r--packages/uclibc/uclibc-initial_0.9.29.bb9
-rw-r--r--packages/uclibc/uclibc-initial_svn.bb10
-rw-r--r--packages/uclibc/uclibc.inc5
-rw-r--r--packages/uclibc/uclibc_0.9.26.bb2
-rw-r--r--packages/uclibc/uclibc_0.9.27.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.28.bb3
-rw-r--r--packages/uclibc/uclibc_0.9.29.bb4
-rw-r--r--packages/uclibc/uclibc_svn.bb2
132 files changed, 1026 insertions, 201 deletions
diff --git a/packages/chicken/chicken.inc b/packages/chicken/chicken2.inc
index fbaf971f88..fbaf971f88 100644
--- a/packages/chicken/chicken.inc
+++ b/packages/chicken/chicken2.inc
diff --git a/packages/chicken/chicken3.inc b/packages/chicken/chicken3.inc
new file mode 100644
index 0000000000..2feebfb48a
--- /dev/null
+++ b/packages/chicken/chicken3.inc
@@ -0,0 +1,36 @@
+DESCRIPTION = "A compiler that translates Scheme source files to C, and an interpreter"
+HOMEPAGE = "http://www.call-with-current-continuation.org/"
+SECTION = "interpreters"
+PRIORITY = "optional"
+LICENSE = "BSD"
+
+SRC_URI = "http://chicken.wiki.br/releases/${PV}/chicken-${PV}.tar.gz"
+
+inherit autotools
+
+do_compile() {
+ export PLATFORM=linux
+ export PREFIX=${prefix}
+ export HOST=${TARGET_ARCH}-${DISTRO}-${TARGET_OS}
+ export C_COMPILER=${HOST}-gcc
+ export LIBRARIAN=${HOST}-ar
+ # ARCH= is weird... but it's not enough to export this variable.
+ # If ARCH is not set to empty-string, then the Makefile will try to
+ # use the apply-hack.s file applicable to the machine doing the compiling.
+ # There is no such apply-hack assembler code for arm, at least not yet.
+ make ARCH=
+}
+
+do_install() {
+ export PLATFORM=linux
+ export PREFIX=${prefix}
+ export HOST=${TARGET_ARCH}-${DISTRO}-${TARGET_OS}
+ export C_COMPILER=${HOST}-gcc
+ export LIBRARIAN=${HOST}-ar
+ make ARCH= DESTDIR=${D} install
+}
+
+FILES_${PN} = "${bindir}/csi ${bindir}/chicken-bug"
+FILES_${PN} += "${libdir}/lib*.so.* ${libdir}/chicken"
+FILES_${PN} += "${datadir}/chicken/*.*"
+FILES_${PN}-dev += "${bindir}"
diff --git a/packages/chicken/chicken_2.6.bb b/packages/chicken/chicken_2.6.bb
index 713552b3e9..934ef4a218 100644
--- a/packages/chicken/chicken_2.6.bb
+++ b/packages/chicken/chicken_2.6.bb
@@ -1 +1 @@
-require chicken.inc
+require chicken2.inc
diff --git a/packages/chicken/chicken_3.3.0.bb b/packages/chicken/chicken_3.3.0.bb
new file mode 100644
index 0000000000..7d9fc69419
--- /dev/null
+++ b/packages/chicken/chicken_3.3.0.bb
@@ -0,0 +1 @@
+require chicken3.inc
diff --git a/packages/eglibc/eglibc-initial.inc b/packages/eglibc/eglibc-initial.inc
index 342711c157..5fbb5dbda5 100644
--- a/packages/eglibc/eglibc-initial.inc
+++ b/packages/eglibc/eglibc-initial.inc
@@ -1,5 +1,5 @@
SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/eglibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
@@ -9,11 +9,13 @@ PACKAGES_DYNAMIC = ""
do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
- CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" \
+ (cd ${S} && gnu-configize) || die "failure in running gnu-configize"
+ find ${S} -name "configure" | xargs touch
${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ --prefix=/usr \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
- --enable-hacker-mode
+ --enable-hacker-mode --enable-addons
}
do_compile () {
@@ -22,8 +24,14 @@ do_compile () {
do_stage () {
oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
- includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+ includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers \
+ install-bootstrap-headers=yes
+ oe_runmake csu/subdir_lib
+ mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+ install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
}
do_install () {
diff --git a/packages/eglibc/eglibc-intermediate.inc b/packages/eglibc/eglibc-intermediate.inc
deleted file mode 100644
index c226d8658d..0000000000
--- a/packages/eglibc/eglibc-intermediate.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SECTION = "libs"
-PACKAGES = ""
-PACKAGES_DYNAMIC = ""
-PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
-
-do_install () {
- :
-}
-
-GLIBC_ADDONS = "nptl,ports"
-GLIBC_EXTRA_OECONF = ""
diff --git a/packages/eglibc/eglibc-intermediate_svn.bb b/packages/eglibc/eglibc-intermediate_svn.bb
deleted file mode 100644
index 7150f56d26..0000000000
--- a/packages/eglibc/eglibc-intermediate_svn.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require eglibc_${PV}.bb
-require eglibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- find ${S} -name "configure" | xargs touch
- sed -i s:-Werror:: ${S}/configure
-}
diff --git a/packages/eglibc/eglibc.inc b/packages/eglibc/eglibc.inc
index e1559e46e4..5d531a7915 100644
--- a/packages/eglibc/eglibc.inc
+++ b/packages/eglibc/eglibc.inc
@@ -4,12 +4,12 @@ SECTION = "libs"
PRIORITY = "required"
LICENSE = "LGPL"
# nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
#this leads to circular deps, so lets not add it yet
#RDEPENDS_ldd += " bash"
# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "virtual/libintl virtual/libiconv"
inherit autotools
diff --git a/packages/eglibc/eglibc_svn.bb b/packages/eglibc/eglibc_svn.bb
index e7a4a1ba75..1be10c13ad 100644
--- a/packages/eglibc/eglibc_svn.bb
+++ b/packages/eglibc/eglibc_svn.bb
@@ -3,7 +3,7 @@ require eglibc.inc
# DEFAULT_PREFERENCE = "-1"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/eglibc-svn"
PV = "2.8+svnr${SRCREV}"
-PR = "r6"
+PR = "r7"
SRC_URI = "svn://svn.eglibc.org;module=trunk \
file://eglibc-svn-arm-lowlevellock-include-tls.patch;patch=1 \
file://etc/ld.so.conf \
diff --git a/packages/gcc/gcc-3.4.4.inc b/packages/gcc/gcc-3.4.4.inc
index 704d9bc5c8..34204f10fa 100644
--- a/packages/gcc/gcc-3.4.4.inc
+++ b/packages/gcc/gcc-3.4.4.inc
@@ -17,8 +17,10 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
file://always-fixincperm.patch;patch=1 \
file://GCOV_PREFIX_STRIP-cross-profile_3.4.patch;patch=1 \
file://zecke-xgcc-cpp.patch;patch=1 \
- file://gcc4-mtune-compat.patch;patch=1"
-
-SRC_URI += "file://gcc34-configure.in.patch;patch=1"
-SRC_URI += "file://gcc34-thumb-support.patch;patch=1"
+ file://gcc-libgcc2-inhibit-libc.patch;patch=1 \
+ file://gcc4-mtune-compat.patch;patch=1 \
+ file://gcc34-configure.in.patch;patch=1 \
+ file://gcc34-thumb-support.patch;patch=1 \
+ file://gcc-cross-fixincl.patch;patch=1 \
+ "
SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
diff --git a/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch b/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch
new file mode 100644
index 0000000000..365485497c
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/gcc-cross-fixincl.patch
@@ -0,0 +1,77 @@
+See http://gcc.gnu.org/PR22541
+
+From: Dan Kegel
+
+When building gcc-3.4.3 or gcc-4.0.0 as a cross into a clean $PREFIX
+(the only two I've tried like this), the configure script happily copies
+the glibc include files from include to sys-include; here's the line
+from the log file (with $PREFIX instead of the real prefix):
+
+Copying $PREFIX/i686-unknown-linux-gnu/include to $PREFIX/i686-unknown-linux-gnu/sys-include
+
+But later, when running fixincludes, it gives the error message
+ The directory that should contain system headers does not exist:
+ $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/../../../../i686-unknown-linux-gnu/sys-include
+
+Nevertheless, it continues building; the header files it installs in
+ $PREFIX/lib/gcc/i686-unknown-linux-gnu/3.4.3/include
+do not include the boilerplate that would cause it to #include_next the
+glibc headers in the system header directory.
+Thus the resulting toolchain can't compile the following program:
+#include <limits.h>
+int x = PATH_MAX;
+because its limits.h doesn't include the glibc header.
+
+That's not nice. I suspect the problem is that gcc/Makefile.in assumes that
+it can refer to $PREFIX/i686-unknown-linux-gnu with the path
+ $PREFIX/lib/../i686-unknown-linux-gnu, but
+that fails because the directory $PREFIX/lib doesn't exist during 'make all';
+it is only created later, during 'make install'. (Which makes this problem
+confusing, since one only notices the breakage well after 'make install',
+at which point the path configure complained about does exist, and has the
+right stuff in it.)
+
+A possible fix is to replace the line in gcc/Makefile.in that says
+ SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
+with a version that gets rid of extra ..'s, e.g.
+ SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,,;ta"`
+(hey, that's the first time I've ever used a label in a sed script; thanks to the sed faq
+for explaining the :a ... ta method of looping to repeat a search-and-replace until it doesn't match.)
+
+
+---
+ gcc/Makefile.in | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+Index: gcc-3.4.4/gcc/Makefile.in
+===================================================================
+--- gcc-3.4.4.orig/gcc/Makefile.in 2008-07-23 23:44:15.000000000 -0700
++++ gcc-3.4.4/gcc/Makefile.in 2008-07-23 23:46:54.000000000 -0700
+@@ -350,7 +350,10 @@ NATIVE_SYSTEM_HEADER_DIR = /usr/include
+ CROSS_SYSTEM_HEADER_DIR = @CROSS_SYSTEM_HEADER_DIR@
+
+ # autoconf sets SYSTEM_HEADER_DIR to one of the above.
+-SYSTEM_HEADER_DIR = @SYSTEM_HEADER_DIR@
++# Purge it of unneccessary internal relative paths
++# to directories that might not exist yet.
++# The sed idiom for this is to repeat the search-and-replace until it doesn't match, using :a ... ta.
++SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER_DIR@ | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`
+
+ # Control whether to run fixproto and fixincludes.
+ STMP_FIXPROTO = @STMP_FIXPROTO@
+@@ -2548,11 +2551,14 @@ install-gcc-tooldir:
+ $(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)$(gcc_tooldir)
+
+ # Build fixed copies of system files.
++# Abort if no system headers available, unless building a crosscompiler.
++# FIXME: abort unless building --without-headers would be more accurate and less ugly
++
+ stmp-fixinc: fixinc.sh gsyslimits.h
+ @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
+ echo The directory that should contain system headers does not exist: >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
+- if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
++ if test "x${SYSTEM_HEADER_DIR}" = "x`echo "${gcc_tooldir}/sys-include" | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`"; \
+ then sleep 1; else exit 1; fi; \
+ fi
+ rm -rf include; mkdir include
diff --git a/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch
new file mode 100644
index 0000000000..4e2b5667ff
--- /dev/null
+++ b/packages/gcc/gcc-3.4.4/gcc-libgcc2-inhibit-libc.patch
@@ -0,0 +1,251 @@
+---
+ gcc/Makefile.in | 25 ++++++++++++++++---------
+ gcc/configure | 22 ++++++++++++++++++----
+ gcc/configure.ac | 15 ++++++++++++---
+ gcc/gcc.c | 9 +++++++++
+ 4 files changed, 55 insertions(+), 16 deletions(-)
+
+Index: gcc-3.4.4/gcc/configure.ac
+===================================================================
+--- gcc-3.4.4.orig/gcc/configure.ac 2008-07-23 23:53:04.000000000 -0700
++++ gcc-3.4.4/gcc/configure.ac 2008-07-23 23:53:05.000000000 -0700
+@@ -567,6 +567,10 @@ AC_ARG_ENABLE(shared,
+ ], [enable_shared=yes])
+ AC_SUBST(enable_shared)
+
++AC_ARG_WITH(build-sysroot,
++ [ --with-build-sysroot=sysroot
++ use sysroot as the system root during the build])
++
+ AC_ARG_WITH(sysroot,
+ [ --with-sysroot[=DIR] Search for usr/lib, usr/include, et al, within DIR.],
+ [
+@@ -577,6 +581,11 @@ AC_ARG_WITH(sysroot,
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
++ if test "x$with_build_sysroot" != x; then
++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
++ else
++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
++ fi
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+@@ -1453,7 +1462,7 @@ if test x$host != x$target
+ then
+ CROSS="-DCROSS_COMPILE"
+ ALL=all.cross
+- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
++ SYSTEM_HEADER_DIR=$build_system_header_dir
+ case "$host","$target" in
+ # Darwin crosses can use the host system's libraries and headers,
+ # because of the fat library support. Of course, it must be the
+@@ -1487,11 +1496,11 @@ fi
+ # then define inhibit_libc in LIBGCC2_CFLAGS.
+ # This prevents libgcc2 from containing any code which requires libc
+ # support.
+-inhibit_libc=
++inhibit_libc=false
+ if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
+ test x$with_newlib = xyes ; } &&
+ { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
+- inhibit_libc=-Dinhibit_libc
++ inhibit_libc=true
+ fi
+ AC_SUBST(inhibit_libc)
+
+Index: gcc-3.4.4/gcc/Makefile.in
+===================================================================
+--- gcc-3.4.4.orig/gcc/Makefile.in 2005-02-24 01:26:57.000000000 -0800
++++ gcc-3.4.4/gcc/Makefile.in 2008-07-24 00:08:18.000000000 -0700
+@@ -291,7 +291,7 @@ GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) ./x
+ # This is used instead of ALL_CFLAGS when compiling with GCC_FOR_TARGET.
+ # It omits XCFLAGS, and specifies -B./.
+ # It also specifies -isystem ./include to find, e.g., stddef.h.
+-GCC_CFLAGS=$(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
++GCC_CFLAGS=$(CFLAGS_FOR_TARGET) $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(LOOSE_WARN) -Wold-style-definition $($@-warn) -isystem ./include $(TCFLAGS)
+
+ # ---------------------------------------------------
+ # Programs which produce files for the target machine
+@@ -485,10 +485,17 @@ GGC_LIB=
+ LIBGCC = libgcc.a
+ INSTALL_LIBGCC = install-libgcc
+
++# "true" if the target C library headers are unavailable; "false"
++# otherwise.
++inhibit_libc = @inhibit_libc@
++ifeq ($(inhibit_libc),true)
++INHIBIT_LIBC_CFLAGS = -Dinhibit_libc
++endif
++
+ # Options to use when compiling libgcc2.a.
+ #
+ LIBGCC2_DEBUG_CFLAGS = -g
+-LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
++LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional options to use when compiling libgcc2.a.
+ # Some targets override this to -isystem include
+@@ -500,7 +507,7 @@ TARGET_LIBGCC2_CFLAGS =
+ # Options to use when compiling crtbegin/end.
+ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \
+ -finhibit-size-directive -fno-inline-functions -fno-exceptions \
+- -fno-zero-initialized-in-bss -fno-unit-at-a-time
++ -fno-zero-initialized-in-bss -fno-unit-at-a-time $(INHIBIT_LIBC_CFLAGS)
+
+ # Additional sources to handle exceptions; overridden by targets as needed.
+ LIB2ADDEH = $(srcdir)/unwind-dw2.c $(srcdir)/unwind-dw2-fde.c \
+@@ -1247,33 +1254,33 @@ stmp-multilib: $(LIBGCC_DEPS)
+ $(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN \
+ -o $(T)crtbegin$(objext)
+
+ $(T)crtend.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END \
++ -c $(srcdir)/crtstuff.c -DCRT_END \
+ -o $(T)crtend$(objext)
+
+ # These are versions of crtbegin and crtend for shared libraries.
+ $(T)crtbeginS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O \
+ -o $(T)crtbeginS$(objext)
+
+ $(T)crtendS.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS_S) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
++ -c $(srcdir)/crtstuff.c -DCRT_END -DCRTSTUFFS_O \
+ -o $(T)crtendS$(objext)
+
+ # This is a version of crtbegin for -static links.
+ $(T)crtbeginT.o: crtstuff.c $(GCC_PASSES) $(TCONFIG_H) auto-host.h \
+ gbl-ctors.h stmp-int-hdrs tsystem.h coretypes.h $(TM_H)
+ $(GCC_FOR_TARGET) $(CRTSTUFF_CFLAGS) $(CRTSTUFF_T_CFLAGS) \
+- @inhibit_libc@ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
++ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -DCRTSTUFFT_O \
+ -o $(T)crtbeginT$(objext)
+
+ # Compile the start modules crt0.o and mcrt0.o that are linked with
+@@ -2542,7 +2549,7 @@ install-gcc-tooldir:
+
+ # Build fixed copies of system files.
+ stmp-fixinc: fixinc.sh gsyslimits.h
+- @if test ! -d ${SYSTEM_HEADER_DIR}; then \
++ @if ! $(inhibit_libc) && test ! -d ${SYSTEM_HEADER_DIR}; then \
+ echo The directory that should contain system headers does not exist: >&2 ; \
+ echo " ${SYSTEM_HEADER_DIR}" >&2 ; \
+ if test "x${SYSTEM_HEADER_DIR}" = "x${gcc_tooldir}/sys-include"; \
+Index: gcc-3.4.4/gcc/gcc.c
+===================================================================
+--- gcc-3.4.4.orig/gcc/gcc.c 2005-05-01 03:33:14.000000000 -0700
++++ gcc-3.4.4/gcc/gcc.c 2008-07-23 23:53:05.000000000 -0700
+@@ -1069,6 +1069,7 @@ static const struct option_map option_ma
+ {"--static", "-static", 0},
+ {"--std", "-std=", "aj"},
+ {"--symbolic", "-symbolic", 0},
++ {"--sysroot", "--sysroot=", "aj"},
+ {"--time", "-time", 0},
+ {"--trace-includes", "-H", 0},
+ {"--traditional", "-traditional", 0},
+@@ -3016,6 +3017,9 @@ display_help (void)
+ fputs (_(" -time Time the execution of each subprocess\n"), stdout);
+ fputs (_(" -specs=<file> Override built-in specs with the contents of <file>\n"), stdout);
+ fputs (_(" -std=<standard> Assume that the input sources are for <standard>\n"), stdout);
++ fputs (_("\
++ --sysroot=<directory> Use <directory> as the root directory for headers\n\
++ for headers and libraries\n"), stdout);
+ fputs (_(" -B <directory> Add <directory> to the compiler's search paths\n"), stdout);
+ fputs (_(" -b <machine> Run gcc for target <machine>, if installed\n"), stdout);
+ fputs (_(" -V <version> Run gcc version number <version>, if installed\n"), stdout);
+@@ -3884,6 +3888,11 @@ warranty; not even for MERCHANTABILITY o
+ ;
+ else if (! strcmp (argv[i], "-fhelp"))
+ ;
++ else if (! strncmp (argv[i], "--sysroot=", strlen ("--sysroot=")))
++ {
++ target_system_root = argv[i] + strlen ("--sysroot=");
++ target_system_root_changed = 1;
++ }
+ else if (argv[i][0] == '+' && argv[i][1] == 'e')
+ {
+ /* Compensate for the +e options to the C++ front-end;
+Index: gcc-3.4.4/gcc/configure
+===================================================================
+--- gcc-3.4.4.orig/gcc/configure 2008-07-23 23:53:04.000000000 -0700
++++ gcc-3.4.4/gcc/configure 2008-07-23 23:53:05.000000000 -0700
+@@ -907,6 +907,8 @@ Optional Packages:
+ --with-as arrange to use the specified as (full pathname)
+ --with-stabs arrange to use stabs instead of host debug format
+ --with-dwarf2 force the default debug format to be DWARF 2
++ --with-build-sysroot=sysroot
++ use sysroot as the system root during the build
+ --with-sysroot=DIR Search for usr/lib, usr/include, et al, within DIR.
+ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib
+ --with-system-libunwind use installed libunwind
+@@ -4756,6 +4758,13 @@ fi;
+
+
+
++# Check whether --with-build-sysroot or --without-build-sysroot was given.
++if test "${with_build_sysroot+set}" = set; then
++ withval="$with_build_sysroot"
++
++fi;
++
++
+ # Check whether --with-sysroot or --without-sysroot was given.
+ if test "${with_sysroot+set}" = set; then
+ withval="$with_sysroot"
+@@ -4767,6 +4776,11 @@ if test "${with_sysroot+set}" = set; the
+
+ TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
+ CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR)'
++ if test "x$with_build_sysroot" != x; then
++ build_system_header_dir=$with_build_sysroot'$(NATIVE_SYSTEM_HEADER_DIR)'
++ else
++ build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
++ fi
+
+ if test "x$exec_prefix" = xNONE; then
+ if test "x$prefix" = xNONE; then
+@@ -5229,7 +5243,7 @@ if test "${gcc_cv_prog_makeinfo_modern+s
+ else
+ ac_prog_version=`$MAKEINFO --version 2>&1 |
+ sed -n 's/^.*GNU texinfo.* \([0-9][0-9.]*\).*$/\1/p'`
+- echo "configure:5232: version of makeinfo is $ac_prog_version" >&5
++ echo "configure:5246: version of makeinfo is $ac_prog_version" >&5
+ case $ac_prog_version in
+ '') gcc_cv_prog_makeinfo_modern=no;;
+ 4.[2-9]*)
+@@ -9845,7 +9859,7 @@ if test x$host != x$target
+ then
+ CROSS="-DCROSS_COMPILE"
+ ALL=all.cross
+- SYSTEM_HEADER_DIR='$(CROSS_SYSTEM_HEADER_DIR)'
++ SYSTEM_HEADER_DIR=$build_system_header_dir
+ case "$host","$target" in
+ # Darwin crosses can use the host system's libraries and headers,
+ # because of the fat library support. Of course, it must be the
+@@ -9879,11 +9893,11 @@ fi
+ # then define inhibit_libc in LIBGCC2_CFLAGS.
+ # This prevents libgcc2 from containing any code which requires libc
+ # support.
+-inhibit_libc=
++inhibit_libc=false
+ if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
+ test x$with_newlib = xyes ; } &&
+ { test "x$with_headers" = x || test "x$with_headers" = xno ; } ; then
+- inhibit_libc=-Dinhibit_libc
++ inhibit_libc=true
+ fi
+
+
diff --git a/packages/gcc/gcc-configure-cross.inc b/packages/gcc/gcc-configure-cross.inc
index 333cb8f9bf..d5800c78ff 100644
--- a/packages/gcc/gcc-configure-cross.inc
+++ b/packages/gcc/gcc-configure-cross.inc
@@ -7,10 +7,6 @@ EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix}
--with-sysroot=${STAGING_DIR_TARGET} \
--with-build-sysroot=${STAGING_DIR_TARGET}"
-do_configure_prepend () {
- rm -f ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
do_compile_prepend () {
export CC="${BUILD_CC}"
export AR_FOR_TARGET="${TARGET_SYS}-ar"
diff --git a/packages/gcc/gcc-configure-sdk.inc b/packages/gcc/gcc-configure-sdk.inc
index f8c4de8c78..faa183f8e4 100644
--- a/packages/gcc/gcc-configure-sdk.inc
+++ b/packages/gcc/gcc-configure-sdk.inc
@@ -7,6 +7,7 @@ USE_NLS = '${@base_conditional( "TARGET_OS", "linux-uclibcgnueabi", "no", "", d
EXTRA_OECONF_PATHS = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-gxx-include-dir=${STAGING_DIR_TARGET}/${layout_includedir}/c++ \
--with-sysroot=${prefix}/${TARGET_SYS} \
+ --with-build-time-tools=${CROSS_DIR}/${TARGET_SYS}/bin \
--with-build-sysroot=${STAGING_DIR_TARGET}"
#
diff --git a/packages/gcc/gcc-cross-initial.inc b/packages/gcc/gcc-cross-initial.inc
index e0675263ea..15e5fa62fc 100644
--- a/packages/gcc/gcc-cross-initial.inc
+++ b/packages/gcc/gcc-cross-initial.inc
@@ -1,6 +1,4 @@
DEPENDS = "virtual/${TARGET_PREFIX}binutils"
-# @todo Please add comment on why this is (still?) needed?
-DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel', 'powerpc']]}"
PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
PACKAGES = ""
@@ -8,6 +6,7 @@ PACKAGES = ""
# sysroot is needed in case we use libc-initial
EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-newlib \
+ --without-headers \
--disable-shared \
--disable-threads \
--disable-multilib \
@@ -19,11 +18,6 @@ EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
--with-build-sysroot=${STAGING_DIR_TARGET} \
${@get_gcc_fpu_setting(bb, d)}"
-do_stage_prepend () {
- mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}
- ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
-}
-
do_install () {
:
}
diff --git a/packages/gcc/gcc-cross-intermediate.inc b/packages/gcc/gcc-cross-intermediate.inc
new file mode 100644
index 0000000000..4fa12886f1
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate.inc
@@ -0,0 +1,21 @@
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "virtual/${TARGET_PREFIX}libc-initial"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-intermediate"
+PACKAGES = ""
+
+# This is intended to be a -very- basic config
+# sysroot is needed in case we use libc-initial
+EXTRA_OECONF = "--with-local-prefix=${STAGING_DIR_TARGET}${layout_prefix} \
+ --enable-shared \
+ --disable-multilib \
+ --disable-threads \
+ --enable-languages=c \
+ --enable-target-optspace \
+ --program-prefix=${TARGET_PREFIX} \
+ --with-sysroot=${STAGING_DIR_TARGET} \
+ --with-build-sysroot=${STAGING_DIR_TARGET} \
+ ${@get_gcc_fpu_setting(bb, d)}"
+
+do_install () {
+ :
+}
diff --git a/packages/gcc/gcc-cross-intermediate_3.3.3.bb b/packages/gcc/gcc-cross-intermediate_3.3.3.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.3.3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.3.4.bb b/packages/gcc/gcc-cross-intermediate_3.3.4.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.3.4.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.4.3.bb b/packages/gcc/gcc-cross-intermediate_3.4.3.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.4.3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_3.4.4.bb b/packages/gcc/gcc-cross-intermediate_3.4.4.bb
new file mode 100644
index 0000000000..eb59de9461
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_3.4.4.bb
@@ -0,0 +1,2 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_4.0.2.bb b/packages/gcc/gcc-cross-intermediate_4.0.2.bb
new file mode 100644
index 0000000000..8df8d597aa
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.0.2.bb
@@ -0,0 +1,4 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-multilib"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.0.bb b/packages/gcc/gcc-cross-intermediate_4.1.0.bb
new file mode 100644
index 0000000000..3e103aa24e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.0.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.1.bb b/packages/gcc/gcc-cross-intermediate_4.1.1.bb
new file mode 100644
index 0000000000..837237e7d4
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.1.bb
@@ -0,0 +1,6 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libunwind-exceptions \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.1.2.bb b/packages/gcc/gcc-cross-intermediate_4.1.2.bb
new file mode 100644
index 0000000000..3e103aa24e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.1.2.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.1.bb b/packages/gcc/gcc-cross-intermediate_4.2.1.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.1.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.2.bb b/packages/gcc/gcc-cross-intermediate_4.2.2.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.2.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.3.bb b/packages/gcc/gcc-cross-intermediate_4.2.3.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.3.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.2.4.bb b/packages/gcc/gcc-cross-intermediate_4.2.4.bb
new file mode 100644
index 0000000000..7acca81c3b
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.2.4.bb
@@ -0,0 +1,5 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+EXTRA_OECONF += "--disable-libmudflap --disable-libgomp \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_4.3.1.bb b/packages/gcc/gcc-cross-intermediate_4.3.1.bb
new file mode 100644
index 0000000000..b0932f520d
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_4.3.1.bb
@@ -0,0 +1,14 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+DEPENDS += "gmp-native mpfr-native"
+
+EXTRA_OECONF += " --disable-libmudflap \
+ --disable-libgomp \
+ --disable-libssp"
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb
new file mode 100644
index 0000000000..6e9c252e7e
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2005q3.bb
@@ -0,0 +1,2 @@
+require gcc-cross_csl-arm-2005q3.bb
+require gcc-cross-intermediate.inc
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb
new file mode 100644
index 0000000000..2d4b55f997
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2006q1.bb
@@ -0,0 +1,7 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-2006q1"
+
+EXTRA_OECONF += "--disable-libmudflap \
+ --disable-libssp"
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb
new file mode 100644
index 0000000000..114d9831c6
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2007q3.bb
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb
new file mode 100644
index 0000000000..114d9831c6
--- /dev/null
+++ b/packages/gcc/gcc-cross-intermediate_csl-arm-2008q1.bb
@@ -0,0 +1,12 @@
+require gcc-cross_${PV}.bb
+require gcc-cross-intermediate.inc
+
+S = "${WORKDIR}/gcc-4.2"
+
+EXTRA_OECONF += "--disable-libssp --disable-bootstrap --disable-libgomp --disable-libmudflap "
+
+# Hack till we fix *libc properly
+do_stage_append() {
+ ln -sf ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include-fixed/* ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/include/
+}
+
diff --git a/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb b/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
index 9b5a2fed2c..e8051dde22 100644
--- a/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc-cross-kernel-3.4.4_csl-arm-2005q3.bb
@@ -7,7 +7,7 @@ DEFAULT_PREFERENCE = "-1"
require gcc-cross-initial_csl-arm-2005q3.bb
require gcc-cross-kernel.inc
-PR = "r2"
+PR = "r3"
SRC_URI += "file://gcc-3.4.4-makefile-fix.patch;patch=1"
diff --git a/packages/gcc/gcc-cross-sdk_3.3.4.bb b/packages/gcc/gcc-cross-sdk_3.3.4.bb
index 4608733b58..02d860b1f7 100644
--- a/packages/gcc/gcc-cross-sdk_3.3.4.bb
+++ b/packages/gcc/gcc-cross-sdk_3.3.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_3.4.3.bb b/packages/gcc/gcc-cross-sdk_3.4.3.bb
index 1a7faa5b8c..c76b5b3c07 100644
--- a/packages/gcc/gcc-cross-sdk_3.4.3.bb
+++ b/packages/gcc/gcc-cross-sdk_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_3.4.4.bb b/packages/gcc/gcc-cross-sdk_3.4.4.bb
index c76b5b3c07..b00c86617d 100644
--- a/packages/gcc/gcc-cross-sdk_3.4.4.bb
+++ b/packages/gcc/gcc-cross-sdk_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
@@ -6,3 +6,9 @@ require gcc-configure-sdk.inc
require gcc-package-sdk.inc
SRC_URI += 'file://sdk-libstdc++-includes.patch;patch=1'
+
+do_compile_prepend () {
+ mkdir -p gcc
+ ln -s ${CROSS_DIR}/bin/${TARGET_PREFIX}as gcc/as
+ ln -s ${CROSS_DIR}/bin/${TARGET_PREFIX}ld gcc/ld
+}
diff --git a/packages/gcc/gcc-cross-sdk_4.1.0.bb b/packages/gcc/gcc-cross-sdk_4.1.0.bb
index 8329aac27f..ee769e034e 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.0.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.1.1.bb b/packages/gcc/gcc-cross-sdk_4.1.1.bb
index 5caec0b5a5..6b6097fb00 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.1.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.1.2.bb b/packages/gcc/gcc-cross-sdk_4.1.2.bb
index 51b99f882a..c632169f23 100644
--- a/packages/gcc/gcc-cross-sdk_4.1.2.bb
+++ b/packages/gcc/gcc-cross-sdk_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-cross-sdk.inc
diff --git a/packages/gcc/gcc-cross-sdk_4.2.2.bb b/packages/gcc/gcc-cross-sdk_4.2.2.bb
index 8057608e0d..ee4ce855af 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.2.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.2.3.bb b/packages/gcc/gcc-cross-sdk_4.2.3.bb
index 54e7453e69..8057608e0d 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.3.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.2.4.bb b/packages/gcc/gcc-cross-sdk_4.2.4.bb
index 29ee187785..7f3e1466ce 100644
--- a/packages/gcc/gcc-cross-sdk_4.2.4.bb
+++ b/packages/gcc/gcc-cross-sdk_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
inherit sdk
diff --git a/packages/gcc/gcc-cross-sdk_4.3.1.bb b/packages/gcc/gcc-cross-sdk_4.3.1.bb
index 8057608e0d..ee4ce855af 100644
--- a/packages/gcc/gcc-cross-sdk_4.3.1.bb
+++ b/packages/gcc/gcc-cross-sdk_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
inherit sdk
diff --git a/packages/gcc/gcc-cross_3.3.3.bb b/packages/gcc/gcc-cross_3.3.3.bb
index 781214f815..38488642fd 100644
--- a/packages/gcc/gcc-cross_3.3.3.bb
+++ b/packages/gcc/gcc-cross_3.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.3.4.bb b/packages/gcc/gcc-cross_3.3.4.bb
index bfc37e436c..7b7e51bc45 100644
--- a/packages/gcc/gcc-cross_3.3.4.bb
+++ b/packages/gcc/gcc-cross_3.3.4.bb
@@ -1,4 +1,4 @@
-PR="r7"
+PR="r8"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.4.3.bb b/packages/gcc/gcc-cross_3.4.3.bb
index 8a2aa6a2bd..271509b32e 100644
--- a/packages/gcc/gcc-cross_3.4.3.bb
+++ b/packages/gcc/gcc-cross_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_3.4.4.bb b/packages/gcc/gcc-cross_3.4.4.bb
index c7a4cfe857..515b41628c 100644
--- a/packages/gcc/gcc-cross_3.4.4.bb
+++ b/packages/gcc/gcc-cross_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r10"
+PR = "r11"
require gcc-${PV}.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_4.0.0.bb b/packages/gcc/gcc-cross_4.0.0.bb
index ab990e2f80..dd3fbbc000 100644
--- a/packages/gcc/gcc-cross_4.0.0.bb
+++ b/packages/gcc/gcc-cross_4.0.0.bb
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.0.2.bb b/packages/gcc/gcc-cross_4.0.2.bb
index ddecddb34a..bb4c6f0366 100644
--- a/packages/gcc/gcc-cross_4.0.2.bb
+++ b/packages/gcc/gcc-cross_4.0.2.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r13"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.0.bb b/packages/gcc/gcc-cross_4.1.0.bb
index ad73dc7cb0..33042da5a2 100644
--- a/packages/gcc/gcc-cross_4.1.0.bb
+++ b/packages/gcc/gcc-cross_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r6"
+PR = "r7"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.1.bb b/packages/gcc/gcc-cross_4.1.1.bb
index dafa5fa79d..da797597d7 100644
--- a/packages/gcc/gcc-cross_4.1.1.bb
+++ b/packages/gcc/gcc-cross_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r21"
+PR = "r22"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.1.2.bb b/packages/gcc/gcc-cross_4.1.2.bb
index c9e3279ffc..b3c6437467 100644
--- a/packages/gcc/gcc-cross_4.1.2.bb
+++ b/packages/gcc/gcc-cross_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r17"
+PR = "r18"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.1.bb b/packages/gcc/gcc-cross_4.2.1.bb
index ece545b049..5986fad253 100644
--- a/packages/gcc/gcc-cross_4.2.1.bb
+++ b/packages/gcc/gcc-cross_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r17"
+PR = "r18"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.2.bb b/packages/gcc/gcc-cross_4.2.2.bb
index 38a69aafc3..fe25ae2857 100644
--- a/packages/gcc/gcc-cross_4.2.2.bb
+++ b/packages/gcc/gcc-cross_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r11"
+PR = "r12"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.3.bb b/packages/gcc/gcc-cross_4.2.3.bb
index 72f72835c3..4149179d8e 100644
--- a/packages/gcc/gcc-cross_4.2.3.bb
+++ b/packages/gcc/gcc-cross_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.2.4.bb b/packages/gcc/gcc-cross_4.2.4.bb
index 036ebd96b0..e07143d0d8 100644
--- a/packages/gcc/gcc-cross_4.2.4.bb
+++ b/packages/gcc/gcc-cross_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_4.3.1.bb b/packages/gcc/gcc-cross_4.3.1.bb
index 066fa32b86..5383079904 100644
--- a/packages/gcc/gcc-cross_4.3.1.bb
+++ b/packages/gcc/gcc-cross_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r8"
+PR = "r9"
require gcc-${PV}.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2005q3.bb b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
index 8726500ce2..858459c026 100644
--- a/packages/gcc/gcc-cross_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2005q3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-csl-arm-2005q3.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2006q1.bb b/packages/gcc/gcc-cross_csl-arm-2006q1.bb
index 45ace68af9..a8c662e462 100644
--- a/packages/gcc/gcc-cross_csl-arm-2006q1.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2006q1.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-csl-arm-2006q1.inc
require gcc-cross.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2007q3.bb b/packages/gcc/gcc-cross_csl-arm-2007q3.bb
index 295353a0f8..6ae42784cb 100644
--- a/packages/gcc/gcc-cross_csl-arm-2007q3.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2007q3.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-csl-arm-2007q3.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-cross_csl-arm-2008q1.bb b/packages/gcc/gcc-cross_csl-arm-2008q1.bb
index 01b5bdacc4..69127daea6 100644
--- a/packages/gcc/gcc-cross_csl-arm-2008q1.bb
+++ b/packages/gcc/gcc-cross_csl-arm-2008q1.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-csl-arm-2008q1.inc
require gcc-cross4.inc
diff --git a/packages/gcc/gcc-native_3.4.4.bb b/packages/gcc/gcc-native_3.4.4.bb
index 6f74a1ea46..5f39f1bbb3 100644
--- a/packages/gcc/gcc-native_3.4.4.bb
+++ b/packages/gcc/gcc-native_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc-native_3.4.6.bb b/packages/gcc/gcc-native_3.4.6.bb
index 5f39f1bbb3..c3f8106d3a 100644
--- a/packages/gcc/gcc-native_3.4.6.bb
+++ b/packages/gcc/gcc-native_3.4.6.bb
@@ -1,4 +1,4 @@
-PR = "r8"
+PR = "r9"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.3.3.bb b/packages/gcc/gcc_3.3.3.bb
index 2df12ef9ef..9fd2b0acc3 100644
--- a/packages/gcc/gcc_3.3.3.bb
+++ b/packages/gcc/gcc_3.3.3.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.3.4.bb b/packages/gcc/gcc_3.3.4.bb
index 2df12ef9ef..9fd2b0acc3 100644
--- a/packages/gcc/gcc_3.3.4.bb
+++ b/packages/gcc/gcc_3.3.4.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.4.3.bb b/packages/gcc/gcc_3.4.3.bb
index 0f31362dc1..10d868893b 100644
--- a/packages/gcc/gcc_3.4.3.bb
+++ b/packages/gcc/gcc_3.4.3.bb
@@ -1,4 +1,4 @@
-PR = "r15"
+PR = "r16"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_3.4.4.bb b/packages/gcc/gcc_3.4.4.bb
index 7ec84b6012..5bc3761068 100644
--- a/packages/gcc/gcc_3.4.4.bb
+++ b/packages/gcc/gcc_3.4.4.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.0.0.bb b/packages/gcc/gcc_4.0.0.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_4.0.0.bb
+++ b/packages/gcc/gcc_4.0.0.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.0.2.bb b/packages/gcc/gcc_4.0.2.bb
index 7ec84b6012..5bc3761068 100644
--- a/packages/gcc/gcc_4.0.2.bb
+++ b/packages/gcc/gcc_4.0.2.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.0.bb b/packages/gcc/gcc_4.1.0.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_4.1.0.bb
+++ b/packages/gcc/gcc_4.1.0.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.1.bb b/packages/gcc/gcc_4.1.1.bb
index 9e23eb8af7..6ba5972fc1 100644
--- a/packages/gcc/gcc_4.1.1.bb
+++ b/packages/gcc/gcc_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r21"
+PR = "r22"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb
index a8c8b71648..dd88ccdc27 100644
--- a/packages/gcc/gcc_4.1.2.bb
+++ b/packages/gcc/gcc_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r13"
+PR = "r14"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.1.bb b/packages/gcc/gcc_4.2.1.bb
index da1ecb9b17..a8c8b71648 100644
--- a/packages/gcc/gcc_4.2.1.bb
+++ b/packages/gcc/gcc_4.2.1.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r13"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.2.bb b/packages/gcc/gcc_4.2.2.bb
index ca22e0f69c..582fff49ac 100644
--- a/packages/gcc/gcc_4.2.2.bb
+++ b/packages/gcc/gcc_4.2.2.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.3.bb b/packages/gcc/gcc_4.2.3.bb
index 556fc74267..a2ae0c0e92 100644
--- a/packages/gcc/gcc_4.2.3.bb
+++ b/packages/gcc/gcc_4.2.3.bb
@@ -1,4 +1,4 @@
-PR = "r7"
+PR = "r8"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.2.4.bb b/packages/gcc/gcc_4.2.4.bb
index ff100fd892..43fa3a9ebc 100644
--- a/packages/gcc/gcc_4.2.4.bb
+++ b/packages/gcc/gcc_4.2.4.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_4.3.1.bb b/packages/gcc/gcc_4.3.1.bb
index 318ccd3775..c51d537d2d 100644
--- a/packages/gcc/gcc_4.3.1.bb
+++ b/packages/gcc/gcc_4.3.1.bb
@@ -1,4 +1,4 @@
-PR = "r4"
+PR = "r5"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2005q3.bb b/packages/gcc/gcc_csl-arm-2005q3.bb
index 9fd2b0acc3..1bbab50930 100644
--- a/packages/gcc/gcc_csl-arm-2005q3.bb
+++ b/packages/gcc/gcc_csl-arm-2005q3.bb
@@ -1,4 +1,4 @@
-PR = "r5"
+PR = "r6"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2006q1.bb b/packages/gcc/gcc_csl-arm-2006q1.bb
index cc7540af15..2df12ef9ef 100644
--- a/packages/gcc/gcc_csl-arm-2006q1.bb
+++ b/packages/gcc/gcc_csl-arm-2006q1.bb
@@ -1,4 +1,4 @@
-PR = "r3"
+PR = "r4"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2007q3.bb b/packages/gcc/gcc_csl-arm-2007q3.bb
index 4999c6a53e..cc7540af15 100644
--- a/packages/gcc/gcc_csl-arm-2007q3.bb
+++ b/packages/gcc/gcc_csl-arm-2007q3.bb
@@ -1,4 +1,4 @@
-PR = "r2"
+PR = "r3"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/gcc/gcc_csl-arm-2008q1.bb b/packages/gcc/gcc_csl-arm-2008q1.bb
index 832167ca4e..4999c6a53e 100644
--- a/packages/gcc/gcc_csl-arm-2008q1.bb
+++ b/packages/gcc/gcc_csl-arm-2008q1.bb
@@ -1,4 +1,4 @@
-PR = "r1"
+PR = "r2"
require gcc-${PV}.inc
require gcc-configure-target.inc
diff --git a/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch b/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
new file mode 100644
index 0000000000..6979229279
--- /dev/null
+++ b/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch
@@ -0,0 +1,30 @@
+Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html
+
+I am checking this x86 assembler patch:
+
+http://sourceware.org/ml/binutils/2008-01/msg00148.html
+
+to check operand size. fnstsw stores 16bit into %ax. The upper
+16bit of %eax is unchanged. The new assembler will disallow
+"fnstsw %eax". Here is a patch for glibc.
+
+
+H.J.
+
+---
+ sysdeps/i386/fpu/ftestexcept.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c
+===================================================================
+--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700
++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700
+@@ -26,7 +26,7 @@
+ int
+ fetestexcept (int excepts)
+ {
+- int temp;
++ short temp;
+ int xtemp = 0;
+
+ /* Get current exceptions. */
diff --git a/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch
new file mode 100644
index 0000000000..dae5db3846
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-2.3.6-linuxthreads-pthread-raise.patch
@@ -0,0 +1,37 @@
+--- glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c.org 2008-07-16 22:57:58.000000000 -0700
++++ glibc-2.3.6/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2008-07-16 22:58:26.000000000 -0700
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991, 1996, 2002, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1991, 1996, 2002, 2003, 2005 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -18,10 +18,13 @@
+
+ #include <signal.h>
+ #include <unistd.h>
+-#include <bits/libc-lock.h>
+
+-#ifndef SHARED
++#ifndef IS_IN_rtld
++# include <bits/libc-lock.h>
++
++# ifndef SHARED
+ weak_extern (__pthread_raise)
++# endif
+ #endif
+
+ /* Raise the signal SIG. */
+@@ -29,8 +32,12 @@ int
+ raise (sig)
+ int sig;
+ {
++#ifdef IS_IN_rtld
++ return __kill (__getpid (), sig);
++#else
+ return __libc_maybe_call2 (pthread_raise, (sig),
+ __kill (__getpid (), sig));
++#endif
+ }
+ libc_hidden_def (raise)
+ weak_alias (raise, gsignal)
diff --git a/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch b/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch
new file mode 100644
index 0000000000..722365f122
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-arm-socket-weakalias.patch
@@ -0,0 +1,45 @@
+This one was taken from debian.
+
+# DP: Description: Fix __bind redefinition problem
+# DP: Related bugs:
+# DP: Dpatch author: Phil Blundell
+# DP: Patch author: Daniel Jacobowitz
+# DP: Upstream status: In CVS
+# DP: Status Details:
+# DP: Date: 2005-12-25
+
+Index: sysdeps/unix/sysv/linux/arm/socket.S
+===================================================================
+RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v
+retrieving revision 1.12
+retrieving revision 1.13
+diff -u -r1.12 -r1.13
+--- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S 4 Dec 2004 21:20:16 -0000 1.12
++++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S 27 Oct 2005 18:50:12 -0000 1.13
+@@ -1,4 +1,6 @@
+-/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc.
++/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005
++ Free Software Foundation, Inc.
++
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+@@ -32,7 +34,11 @@
+ The .S files for the other calls just #define socket and #include this. */
+
+ #ifndef __socket
++#ifndef NO_WEAK_ALIAS
+ #define __socket P(__,socket)
++#else
++#define __socket socket
++#endif
+ #endif
+
+ #define PUSHARGS_1 str a1, [sp, $-4]!
+@@ -120,4 +126,6 @@
+
+ PSEUDO_END (__socket)
+
++#ifndef NO_WEAK_ALIAS
+ weak_alias (__socket, socket)
++#endif
diff --git a/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch b/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch
new file mode 100644
index 0000000000..8e24a831b0
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-cross_sunrpc.patch
@@ -0,0 +1,79 @@
+Fix rpcsvc headers missing from glibc, also
+allows glibc to produce the rpc headers when cross compiling,
+And fix for glibc-bootstrap package doesn't currently build because the
+generated sunrpc headers are not available
+
+
+---
+ sunrpc/Makefile | 28 ++++++++++++++++++++++++----
+ 1 file changed, 24 insertions(+), 4 deletions(-)
+
+Index: glibc-2.3.6/sunrpc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/sunrpc/Makefile 2005-07-17 20:03:49.000000000 -0700
++++ glibc-2.3.6/sunrpc/Makefile 2008-07-17 15:28:04.000000000 -0700
+@@ -75,6 +75,8 @@ install-sbin := rpcinfo
+ rpcgen-objs = rpc_main.o rpc_hout.o rpc_cout.o rpc_parse.o \
+ rpc_scan.o rpc_util.o rpc_svcout.o rpc_clntout.o \
+ rpc_tblout.o rpc_sample.o
++host-rpcgen-objs = $(addprefix host-,$(rpcgen-objs))
++
+ # These headers are part of rpcgen.
+ distribute := proto.h rpc_util.h rpc_parse.h rpc_scan.h \
+ $(rpcgen-objs:.o=.c) etc.rpc \
+@@ -98,8 +100,8 @@ otherlibs += $(nssobjdir)/libnss_files.a
+ $(resolvobjdir)/libresolv.a
+ endif
+
+-ifeq (no,$(cross-compiling))
+-# We can only build this library if we can run the rpcgen we build.
++ifneq (,$(findstring subdir_install,$(MAKECMDGOALS)))
++## We can only build this library if we can run the rpcgen we build.
+ headers += $(rpcsvc:%.x=rpcsvc/%.h)
+ extra-libs := librpcsvc
+ extra-libs-others := librpcsvc # Make it in `others' pass, not `lib' pass.
+@@ -144,8 +146,26 @@ cpp-srcs-left := $(rpcgen-objs:.o=.c)
+ lib := nonlib
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+
++# Rely on the target rpcgen objects for dependency information.
++$(objpfx)host-%.o: %.c $(objpfx)%.o
++ $(patsubst %/,cd % &&,$(objpfx)) \
++ $(BUILD_CC) $($(basename $(<F))-CFLAGS) \
++ -I$(shell cd .. && pwd) \
++ -Dattribute_hidden= \
++ -include $(shell cd ../include && pwd)/libintl.h \
++ -O2 $(ALL_BUILD_CFLAGS) $(shell pwd)/$(<F) -c -o $(@F)
++
++$(objpfx)host-rpcgen: $(addprefix $(objpfx),$(host-rpcgen-objs))
++ $(BUILD_CC) $(BUILD_CFLAGS) $+ -o $(objpfx)host-rpcgen
++
+ # Tell rpcgen where to find the C preprocessor.
++ifeq ($(cross-compiling),no)
+ rpcgen-cmd = CPP='$(CC) -E -x c-header' $(built-program-cmd) -Y ../scripts
++rpcgen-prog = $(objpfx)rpcgen
++else
++rpcgen-cmd = CPP='$(CC) -E -x c-header' $(objpfx)host-rpcgen -Y ../scripts
++rpcgen-prog = $(objpfx)host-rpcgen
++endif
+
+ # Install the rpc data base file.
+ $(inst_sysconfdir)/rpc: etc.rpc $(+force)
+@@ -156,7 +176,7 @@ $(inst_sysconfdir)/rpc: etc.rpc $(+force
+ # relinked.
+ $(rpcsvc:%.x=$(objpfx)rpcsvc/%.h): $(objpfx)rpcsvc/%.h: $(objpfx)rpcsvc/%.stmp
+ @:
+-$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ $(make-target-directory)
+ -@rm -f ${@:stmp=T} $@
+ $(rpcgen-cmd) -h $< -o ${@:stmp=T}
+@@ -166,7 +186,7 @@ $(objpfx)rpcsvc/%.stmp: rpcsvc/%.x $(obj
+ # Generate the rpcsvc XDR functions with rpcgen.
+ $(rpcsvc:%.x=$(objpfx)x%.c): $(objpfx)x%.c: $(objpfx)x%.stmp
+ @:
+-$(objpfx)x%.stmp: rpcsvc/%.x $(objpfx)rpcgen
++$(objpfx)x%.stmp: rpcsvc/%.x $(rpcgen-prog)
+ -@rm -f ${@:stmp=T} $@
+ $(rpcgen-cmd) -c $< -o ${@:stmp=T}
+ $(move-if-change) $(@:stmp=T) $(@:stmp=c)
diff --git a/packages/glibc/glibc-2.3.6/glibc-memusage.patch b/packages/glibc/glibc-2.3.6/glibc-memusage.patch
new file mode 100644
index 0000000000..39ca1a77b5
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-memusage.patch
@@ -0,0 +1,44 @@
+---
+ malloc/Makefile | 4 +++-
+ malloc/memusage.sh | 6 ++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/malloc/Makefile
+===================================================================
+--- glibc-2.3.6.orig/malloc/Makefile 2008-07-17 14:40:54.000000000 -0700
++++ glibc-2.3.6/malloc/Makefile 2008-07-17 14:42:07.000000000 -0700
+@@ -80,7 +80,7 @@ ifneq ($(cross-compiling),yes)
+ ifneq ($(LIBGD),no)
+ install-bin = memusagestat
+ install-bin-script += memusage
+-generated += memusagestat memusage
++generated += memusagestat
+ extra-objs += memusagestat.o
+
+ # The configure.in check for libgd and its headers did not use $SYSINCLUDES.
+@@ -90,6 +90,8 @@ extra-objs += memusagestat.o
+ $(objpfx)memusagestat.o: sysincludes = # nothing
+ endif
+ endif
++install-bin-script += memusage
++generated += memusage
+
+ # Another goal which can be used to override the configure decision.
+ .PHONY: do-memusagestat
+Index: glibc-2.3.6/malloc/memusage.sh
+===================================================================
+--- glibc-2.3.6.orig/malloc/memusage.sh 2008-07-17 14:42:17.000000000 -0700
++++ glibc-2.3.6/malloc/memusage.sh 2008-07-17 14:42:54.000000000 -0700
+@@ -205,6 +205,12 @@ if test $# -eq 0; then
+ do_usage
+ fi
+
++# Find memusagestat.
++if test -n "$png" -a ! -x $memusagestat; then
++ echo >&2 $"PNG generation is not supported."
++ png=""
++fi
++
+ # This will be in the environment.
+ add_env="LD_PRELOAD=$memusageso"
+
diff --git a/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch b/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch
new file mode 100644
index 0000000000..a3658f4cd6
--- /dev/null
+++ b/packages/glibc/glibc-2.3.6/glibc-rtld-libcc-eh.patch
@@ -0,0 +1,25 @@
+---
+ elf/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: glibc-2.3.6/elf/Makefile
+===================================================================
+--- glibc-2.3.6.orig/elf/Makefile 2008-07-17 01:10:39.000000000 -0700
++++ glibc-2.3.6/elf/Makefile 2008-07-17 01:17:18.000000000 -0700
+@@ -279,7 +279,7 @@ $(objpfx)rtld-libc.a: $(objpfx)librtld.m
+ $(MAKE) -f $< -f rtld-Rules
+
+ $(objpfx)librtld.os: $(objpfx)dl-allobjs.os $(objpfx)rtld-libc.a
+- $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc '-Wl,-)' \
++ $(LINK.o) -nostdlib -nostartfiles -r -o $@ '-Wl,-(' $^ -lgcc -lgcc_eh '-Wl,-)' \
+ -Wl,-Map,$@.map
+
+ generated += librtld.map librtld.mk rtld-libc.a librtld.os.map
+@@ -295,6 +295,7 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld
+ -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
+ > $@.lds
+ $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \
++ -lgcc -lgcc_eh \
+ $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \
+ $(filter-out $(map-file),$^) $(load-map-file) \
+ -Wl,-soname=$(rtld-installed-name) -T $@.lds
diff --git a/packages/glibc/glibc-2.7/.mtn2git_empty b/packages/glibc/glibc-2.7/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/glibc/glibc-2.7/.mtn2git_empty
diff --git a/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch b/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch
new file mode 100644
index 0000000000..9362bcaf17
--- /dev/null
+++ b/packages/glibc/glibc-2.7/all_glibc-i586-chk.patch
@@ -0,0 +1,33 @@
+http://bugs.gentoo.org/199479
+
+2007-09-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/i386/i586/memcpy_chk.S: New file.
+ * sysdeps/i386/i586/mempcpy_chk.S: Likewise.
+ * sysdeps/i386/i586/memset_chk.S: Likewise.
+
+Index: glibc/sysdeps/i386/i586/memcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memcpy_chk.S
+diff -N sysdeps/i386/i586/memcpy_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memcpy_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/mempcpy_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/mempcpy_chk.S
+diff -N sysdeps/i386/i586/mempcpy_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/mempcpy_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/mempcpy_chk.S>
+Index: glibc/sysdeps/i386/i586/memset_chk.S
+===================================================================
+RCS file: sysdeps/i386/i586/memset_chk.S
+diff -N sysdeps/i386/i586/memset_chk.S
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ glibc/sysdeps/i386/i586/memset_chk.S 13 Nov 2007 01:56:18 -0000 1.1
+@@ -0,0 +1 @@
++#include <sysdeps/i386/i686/memset_chk.S>
+
diff --git a/packages/glibc/glibc-initial.inc b/packages/glibc/glibc-initial.inc
index 0e5db2e729..143a662d52 100644
--- a/packages/glibc/glibc-initial.inc
+++ b/packages/glibc/glibc-initial.inc
@@ -1,5 +1,5 @@
SECTION = "libs"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
@@ -9,7 +9,8 @@ PACKAGES_DYNAMIC = ""
do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
- CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ find ${S} -name "configure" | xargs touch
+ ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_DIR_TARGET}${layout_includedir} \
--enable-hacker-mode
@@ -30,8 +31,11 @@ do_compile () {
}
do_stage () {
- oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers
+ oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \
+ includedir='${layout_includedir}' prefix='${layout_prefix}' \
+ install-bootstrap-headers=yes install-headers
+ oe_runmake csu/subdir_lib
# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
# so do them by hand. We can tolerate an empty stubs.h for the moment.
# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
@@ -42,6 +46,10 @@ do_stage () {
if [ -e ${B}/bits/stdio_lim.h ]; then
cp ${B}/bits/stdio_lim.h ${STAGING_INCDIR}/bits/
fi
+ mkdir -p ${STAGING_DIR_TARGET}${layout_libdir}
+ install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir}
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so
}
do_install () {
diff --git a/packages/glibc/glibc-initial_2.5.bb b/packages/glibc/glibc-initial_2.5.bb
index 44f5775fd7..35c9febcce 100644
--- a/packages/glibc/glibc-initial_2.5.bb
+++ b/packages/glibc/glibc-initial_2.5.bb
@@ -5,7 +5,7 @@ do_configure () {
sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure
chmod +x ${S}/configure
unset CFLAGS
- CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
+ ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \
--without-cvs --disable-sanity-checks \
--with-headers=${STAGING_INCDIR} \
--enable-hacker-mode
diff --git a/packages/glibc/glibc-intermediate.inc b/packages/glibc/glibc-intermediate.inc
deleted file mode 100644
index c226d8658d..0000000000
--- a/packages/glibc/glibc-intermediate.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SECTION = "libs"
-PACKAGES = ""
-PACKAGES_DYNAMIC = ""
-PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc"
-DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers"
-
-do_install () {
- :
-}
-
-GLIBC_ADDONS = "nptl,ports"
-GLIBC_EXTRA_OECONF = ""
diff --git a/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb b/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb
deleted file mode 100644
index aba5ac0451..0000000000
--- a/packages/glibc/glibc-intermediate_2.3.2+cvs20040726.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE_sh3 = "-99"
-
-GLIBC_ADDONS = "linuxthreads"
diff --git a/packages/glibc/glibc-intermediate_2.3.6.bb b/packages/glibc/glibc-intermediate_2.3.6.bb
deleted file mode 100644
index f7113ba04c..0000000000
--- a/packages/glibc/glibc-intermediate_2.3.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
diff --git a/packages/glibc/glibc-intermediate_2.4.bb b/packages/glibc/glibc-intermediate_2.4.bb
deleted file mode 100644
index e1c7ecfbd1..0000000000
--- a/packages/glibc/glibc-intermediate_2.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE = "-1"
diff --git a/packages/glibc/glibc-intermediate_2.5.bb b/packages/glibc/glibc-intermediate_2.5.bb
deleted file mode 100644
index 661a69a10d..0000000000
--- a/packages/glibc/glibc-intermediate_2.5.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
diff --git a/packages/glibc/glibc-intermediate_2.6.1.bb b/packages/glibc/glibc-intermediate_2.6.1.bb
deleted file mode 100644
index 05d6250783..0000000000
--- a/packages/glibc/glibc-intermediate_2.6.1.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
-
diff --git a/packages/glibc/glibc-intermediate_2.7.bb b/packages/glibc/glibc-intermediate_2.7.bb
deleted file mode 100644
index 05d6250783..0000000000
--- a/packages/glibc/glibc-intermediate_2.7.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-# gcc uses -Werror which break on a "you have no thumb interwork" _warning_
-do_configure_prepend() {
- sed -i s:-Werror:: ${S}/configure
-}
-
diff --git a/packages/glibc/glibc-intermediate_cvs.bb b/packages/glibc/glibc-intermediate_cvs.bb
deleted file mode 100644
index ad615a1911..0000000000
--- a/packages/glibc/glibc-intermediate_cvs.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require glibc_${PV}.bb
-require glibc-intermediate.inc
-
-DEFAULT_PREFERENCE = "-1"
-
-GLIBC_ADDONS = "linuxthreads"
diff --git a/packages/glibc/glibc-stage.inc b/packages/glibc/glibc-stage.inc
index 46220d7831..2b7b303c14 100644
--- a/packages/glibc/glibc-stage.inc
+++ b/packages/glibc/glibc-stage.inc
@@ -3,7 +3,7 @@ do_stage() {
oe_runmake 'install_root=${STAGING_DIR_HOST}' \
'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \
'${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \
- install-headers install-lib
+ install
install -d ${STAGING_INCDIR}/gnu \
${STAGING_INCDIR}/bits \
@@ -15,9 +15,4 @@ do_stage() {
h=`echo $r|sed -e's,\.x$,.h,'`
install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/
done
- for i in libc.a libc_pic.a libc_nonshared.a; do
- install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_libdir}/ || die "failed to install $i"
- done
- echo 'GROUP ( ${layout_base_libdir}/libpthread.so.0 ${layout_libdir}/libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libpthread.so
- echo 'GROUP ( ${layout_base_libdir}/libc.so.6 ${layout_libdir}/libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_libdir}/libc.so
}
diff --git a/packages/glibc/glibc.inc b/packages/glibc/glibc.inc
index c8d2d3b16f..f677f62eaf 100644
--- a/packages/glibc/glibc.inc
+++ b/packages/glibc/glibc.inc
@@ -4,12 +4,12 @@ SECTION = "libs"
PRIORITY = "required"
LICENSE = "LGPL"
# nptl needs unwind support in gcc, which can't be built without glibc.
-DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers"
+DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers"
#this leads to circular deps, so lets not add it yet
#RDEPENDS_ldd += " bash"
# nptl needs libgcc but dlopens it, so our shlibs code doesn't detect this
-RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
-PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}"
+#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}"
+PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "virtual/libintl virtual/libiconv"
inherit autotools
diff --git a/packages/glibc/glibc_2.2.5.bb b/packages/glibc/glibc_2.2.5.bb
index 4a94dac5b7..5afeb6421b 100644
--- a/packages/glibc/glibc_2.2.5.bb
+++ b/packages/glibc/glibc_2.2.5.bb
@@ -1,7 +1,7 @@
require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r15"
+PR = "r16"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.2+cvs20040726.bb b/packages/glibc/glibc_2.3.2+cvs20040726.bb
index 8beed8e8dc..d293d7a52d 100644
--- a/packages/glibc/glibc_2.3.2+cvs20040726.bb
+++ b/packages/glibc/glibc_2.3.2+cvs20040726.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r26"
+PR = "r27"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.2.bb b/packages/glibc/glibc_2.3.2.bb
index fc06794e61..4a417a3c7c 100644
--- a/packages/glibc/glibc_2.3.2.bb
+++ b/packages/glibc/glibc_2.3.2.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r15"
+PR = "r16"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.3+cvs20041128.bb b/packages/glibc/glibc_2.3.3+cvs20041128.bb
index 4c9b3dce94..2138599ea9 100644
--- a/packages/glibc/glibc_2.3.3+cvs20041128.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20041128.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r11"
+PR = "r12"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3+cvs20050221.bb b/packages/glibc/glibc_2.3.3+cvs20050221.bb
index 4517adedcc..f9b948a58a 100644
--- a/packages/glibc/glibc_2.3.3+cvs20050221.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20050221.bb
@@ -3,7 +3,7 @@ require glibc.inc
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r11"
+PR = "r12"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3+cvs20050420.bb b/packages/glibc/glibc_2.3.3+cvs20050420.bb
index b1a5d66b17..7d091be292 100644
--- a/packages/glibc/glibc_2.3.3+cvs20050420.bb
+++ b/packages/glibc/glibc_2.3.3+cvs20050420.bb
@@ -5,7 +5,7 @@ DEFAULT_PREFERENCE_i586 = "0"
DEFAULT_PREFERENCE_sh3 = "-99"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs"
-PR = "r9"
+PR = "r10"
GLIBC_ADDONS ?= "linuxthreads"
diff --git a/packages/glibc/glibc_2.3.3.bb b/packages/glibc/glibc_2.3.3.bb
index 510709aba9..57d380bc1d 100644
--- a/packages/glibc/glibc_2.3.3.bb
+++ b/packages/glibc/glibc_2.3.3.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r12"
+PR = "r13"
DEFAULT_PREFERENCE_sh3 = "-99"
diff --git a/packages/glibc/glibc_2.3.5+cvs20050627.bb b/packages/glibc/glibc_2.3.5+cvs20050627.bb
index d0a396d465..0f3be0a47e 100644
--- a/packages/glibc/glibc_2.3.5+cvs20050627.bb
+++ b/packages/glibc/glibc_2.3.5+cvs20050627.bb
@@ -2,7 +2,7 @@ require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
SRCDATE = "20050627"
-PR = "r18"
+PR = "r19"
#Doesnt build for sh3
DEFAULT_PREFERENCE_sh3="-1"
diff --git a/packages/glibc/glibc_2.3.6.bb b/packages/glibc/glibc_2.3.6.bb
index 4519be9d03..898108c5d2 100644
--- a/packages/glibc/glibc_2.3.6.bb
+++ b/packages/glibc/glibc_2.3.6.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r0"
+PR = "r1"
#FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.3.6', '${FILE_DIRNAME}/orig/glibc', '${FILE_DIRNAME}/orig/files', '${FILE_DIRNAME}/orig' ], d)}"
@@ -19,13 +19,16 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
${CROSSTOOL_PATCH_URL}glibc-2.3.6-fix-pr631.patch;patch=1 \
${CROSSTOOL_PATCH_URL}glibc-fp-byteorder.patch;patch=1 \
${CROSSTOOL_PATCH_URL}glibc-mips-bootstrap-gcc-header-install.patch;patch=1 \
+ ${CROSSTOOL_PATCH_URL}arm-ctl_bus_isa.patch;patch=1 \
${CROSSTOOL_PATCH_URL}make-install-lib-all.patch;patch=1 \
${CROSSTOOL_PATCH_URL}maybe/glibc-2.3.6-allow-gcc-4.0-powerpc32.patch;patch=1 \
file://glibc-2.3.6-bind-already-defined-on-powerpc.patch;patch=1 \
file://glibc-2.3.6-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
file://glibc-2.3.6-linuxthreads-allow-gcc-4.1-powerpc32-initfini.s.patch;patch=1 \
- file://late-install-loop-break.patch \
- \
+ file://late-install-loop-break.patch;patch=1 \
+ file://glibc-arm-socket-weakalias.patch;patch=1 \
+ file://glibc-2.3.6-linuxthreads-pthread-raise.patch;patch=1 \
+ file://glibc-cross_sunrpc.patch;patch=1 \
file://etc/ld.so.conf \
file://generate-supported.mk"
@@ -60,7 +63,7 @@ do_configure () {
exit 1
fi
(cd ${S} && gnu-configize) || die "failure in running gnu-configize"
- CPPFLAGS="" oe_runconf
+ CPPFLAGS="" libc_cv_forced_unwind=yes libc_cv_c_cleanup=yes oe_runconf
}
rpcsvc = "bootparam_prot.x nlm_prot.x rstat.x \
diff --git a/packages/glibc/glibc_2.4.bb b/packages/glibc/glibc_2.4.bb
index 1112486c50..873fc66c51 100644
--- a/packages/glibc/glibc_2.4.bb
+++ b/packages/glibc/glibc_2.4.bb
@@ -1,6 +1,6 @@
require glibc.inc
-PR = "r16"
+PR = "r17"
#add the hosts that are confirmed to be working to COMPATIBLE_HOSTi
COMPATIBLE_HOST = '(i.86.*-linux|sh.*-linux)'
diff --git a/packages/glibc/glibc_2.5.bb b/packages/glibc/glibc_2.5.bb
index 6df70076b8..6fa72ff1f6 100644
--- a/packages/glibc/glibc_2.5.bb
+++ b/packages/glibc/glibc_2.5.bb
@@ -1,5 +1,5 @@
require glibc.inc
-PR = "r13"
+PR = "r14"
ARM_INSTRUCTION_SET = "arm"
@@ -48,6 +48,7 @@ SRC_URI = "\
file://glibc-check_pf.patch;patch=1;pnum=0 \
file://zecke-sane-readelf.patch;patch=1 \
file://ldd-unbash.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
diff --git a/packages/glibc/glibc_2.6.1.bb b/packages/glibc/glibc_2.6.1.bb
index 8ee658c286..b2fe0f43a6 100644
--- a/packages/glibc/glibc_2.6.1.bb
+++ b/packages/glibc/glibc_2.6.1.bb
@@ -1,5 +1,5 @@
require glibc.inc
-PR = "r7"
+PR = "r8"
ARM_INSTRUCTION_SET = "arm"
@@ -56,6 +56,7 @@ SRC_URI = "\
file://etc/ld.so.conf \
file://generate-supported.mk \
file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
"
# Build fails on sh3 and sh4 without additional patches
diff --git a/packages/glibc/glibc_2.7.bb b/packages/glibc/glibc_2.7.bb
index 760883c4b6..f0170a03f5 100644
--- a/packages/glibc/glibc_2.7.bb
+++ b/packages/glibc/glibc_2.7.bb
@@ -5,14 +5,14 @@ ARM_INSTRUCTION_SET = "arm"
PACKAGES_DYNAMIC = "libc6*"
RPROVIDES_${PN}-dev = "libc6-dev"
-PR = "r3"
+PR = "r4"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_INCDIR_NATIVE}"
TARGET_CPPFLAGS = "-I${STAGING_DIR_TARGET}${layout_includedir}"
-FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
+FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc-${PV}', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
GLIBC_ADDONS ?= "ports,nptl,libidn"
@@ -58,6 +58,8 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \
# file://zecke-sane-readelf.patch;patch=1 \
file://ldd-unbash.patch;patch=1 \
file://glibc-arm-IO-acquire-lock-fix.diff;patch=1 \
+ file://all_glibc-i586-chk.patch;patch=1 \
+ file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
diff --git a/packages/glibc/glibc_cvs.bb b/packages/glibc/glibc_cvs.bb
index e5832e1f12..f5bb921b70 100644
--- a/packages/glibc/glibc_cvs.bb
+++ b/packages/glibc/glibc_cvs.bb
@@ -1,7 +1,7 @@
require glibc.inc
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-cvs-2.3.5"
-PR = "r8"
+PR = "r9"
PV = "2.3.5+cvs${SRCDATE}"
GLIBC_ADDONS ?= "ports,linuxthreads"
diff --git a/packages/meta/external-toolchain.bb b/packages/meta/external-toolchain.bb
index c7e1d5d3c4..ad30ff7c50 100644
--- a/packages/meta/external-toolchain.bb
+++ b/packages/meta/external-toolchain.bb
@@ -6,6 +6,7 @@ PROVIDES = "\
linux-libc-headers \
virtual/${TARGET_PREFIX}gcc \
virtual/${TARGET_PREFIX}gcc-initial \
+ virtual/${TARGET_PREFIX}gcc-intermediate \
virtual/${TARGET_PREFIX}binutils \
virtual/${TARGET_PREFIX}libc-for-gcc \
virtual/libc \
diff --git a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
index e6e73da516..8870bcc799 100644
--- a/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
+++ b/packages/sharprom-toolchain/sharprom-toolchain-native_1.0.bb
@@ -12,6 +12,7 @@ PROVIDES_sharprom-compatible = "\
virtual/libiconv \
virtual/arm-linux-gcc \
virtual/arm-linux-libc-for-gcc \
+ virtual/arm-linux-gcc-intermediate \
virtual/arm-linux-gcc-initial "
PR = "r2"
diff --git a/packages/uclibc/bfin-uclibc_svn.bb b/packages/uclibc/bfin-uclibc_svn.bb
index 5e71ddb490..cccb5d6527 100644
--- a/packages/uclibc/bfin-uclibc_svn.bb
+++ b/packages/uclibc/bfin-uclibc_svn.bb
@@ -7,7 +7,7 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r1"
+PR = "r2"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
require uclibc.inc
diff --git a/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
new file mode 100644
index 0000000000..ce67e8f764
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
@@ -0,0 +1,25 @@
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.27/Makefile
+===================================================================
+--- uClibc-0.9.27.orig/Makefile 2008-07-23 20:05:34.000000000 -0700
++++ uClibc-0.9.27/Makefile 2008-07-23 20:06:27.000000000 -0700
+@@ -243,14 +243,14 @@ endif
+ .PHONY: utils
+ ifeq ($(strip $(HAVE_SHARED)),y)
+ utils:
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils
+ else
+ utils: dummy
+ endif
+
+ # Installs helper applications, such as 'ldd' and 'ldconfig'
+ install_utils: utils
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils install
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils install
+ #ifeq ($(strip $(UCLIBC_HAS_LOCALE)),y)
+ # @$(MAKE) -C libc/misc/wchar iconv.target
+ # $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)/usr/bin;
diff --git a/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
new file mode 100644
index 0000000000..0f66c1526f
--- /dev/null
+++ b/packages/uclibc/uclibc-0.9.28/uclibc-libgcc-eh.patch
@@ -0,0 +1,38 @@
+---
+ Rules.mak | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.28/Rules.mak
+===================================================================
+--- uClibc-0.9.28.orig/Rules.mak 2005-08-17 15:49:49.000000000 -0700
++++ uClibc-0.9.28/Rules.mak 2008-07-22 23:35:10.000000000 -0700
+@@ -37,7 +37,8 @@
+ # will build uClibc for 'arm'.
+
+ ifndef CROSS
+-CROSS=
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+ CC = $(CROSS)gcc
+ AR = $(CROSS)ar
+@@ -85,7 +86,8 @@ ifeq ($(filter $(noconfig_targets),$(MAK
+ endif
+
+ ifndef CROSS
+-CROSS=$(subst ",, $(strip $(CROSS_COMPILER_PREFIX)))
++TARGET_ARCH=arm
++CROSS=arm-angstrom-linux-uclibcgnueabi-
+ endif
+
+ # A nifty macro to make testing gcc features easier
+@@ -337,6 +339,9 @@ ASFLAGS += $(ASFLAGS_NOEXEC)
+ LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
+ LIBGCC:=$(shell $(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name)
+ LIBGCC_DIR:=$(dir $(LIBGCC))
++ifneq ($(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a),libgcc_eh.a)
++ LIBGCC += $(shell $(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a)
++endif
+
+ ########################################
+ #
diff --git a/packages/uclibc/uclibc-initial_0.9.26.bb b/packages/uclibc/uclibc-initial_0.9.26.bb
index c29a498a96..a6a83bdce9 100644
--- a/packages/uclibc/uclibc-initial_0.9.26.bb
+++ b/packages/uclibc/uclibc-initial_0.9.26.bb
@@ -3,20 +3,28 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.27.bb b/packages/uclibc/uclibc-initial_0.9.27.bb
index c29a498a96..3aecd802af 100644
--- a/packages/uclibc/uclibc-initial_0.9.27.bb
+++ b/packages/uclibc/uclibc-initial_0.9.27.bb
@@ -3,20 +3,29 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt0.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[0in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.28.bb b/packages/uclibc/uclibc-initial_0.9.28.bb
index c29a498a96..4bfbdb6d16 100644
--- a/packages/uclibc/uclibc-initial_0.9.28.bb
+++ b/packages/uclibc/uclibc-initial_0.9.28.bb
@@ -3,20 +3,29 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers"
+DEPENDS = "linux-libc-headers virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
do_stage() {
# Install initial headers into the cross dir
- make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
- RUNTIME_PREFIX=${UCLIBC_STAGING_PREFIX}/ \
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ libc/sysdeps/linux/${TARGET_ARCH}/crt1.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crti.o \
+ libc/sysdeps/linux/${TARGET_ARCH}/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
- rm -f ${UCLIBC_STAGING_PREFIX}/include/bits/atomicity.h
+ rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 libc/sysdeps/linux/${TARGET_ARCH}/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_0.9.29.bb b/packages/uclibc/uclibc-initial_0.9.29.bb
index e75f612b88..c56e5fb2f5 100644
--- a/packages/uclibc/uclibc-initial_0.9.29.bb
+++ b/packages/uclibc/uclibc-initial_0.9.29.bb
@@ -3,7 +3,7 @@ require uclibc_${PV}.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-${PV}', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -12,12 +12,19 @@ do_stage() {
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
pregen install_dev
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
install -d ${CROSS_DIR}/${TARGET_SYS}
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
+
}
do_install() {
diff --git a/packages/uclibc/uclibc-initial_svn.bb b/packages/uclibc/uclibc-initial_svn.bb
index f3496839ff..9dad654ca4 100644
--- a/packages/uclibc/uclibc-initial_svn.bb
+++ b/packages/uclibc/uclibc-initial_svn.bb
@@ -3,7 +3,7 @@ require uclibc_svn.bb
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/uclibc-cvs', '${FILE_DIRNAME}/uclibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
-DEPENDS = "linux-libc-headers ncurses-native"
+DEPENDS = "linux-libc-headers ncurses-native virtual/${TARGET_PREFIX}gcc-initial"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
PACKAGES = ""
@@ -11,12 +11,18 @@ do_stage() {
# Install initial headers into the cross dir
make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
- pregen install_dev
+ install_headers
+ make PREFIX= DEVEL_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ RUNTIME_PREFIX=${UCLIBC_STAGE_PREFIX}/ \
+ lib/crt1.o lib/crti.o lib/crtn.o
ln -sf include ${CROSS_DIR}/${TARGET_SYS}/sys-include
# This conflicts with the c++ version of this header
rm -f ${UCLIBC_STAGE_PREFIX}/include/bits/atomicity.h
+ install -m 644 lib/crt[1in].o ${UCLIBC_STAGE_PREFIX}/lib
+ ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o ${UCLIBC_STAGE_PREFIX}/lib/libc.so
}
do_install() {
diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc
index 861568c06e..544d760e99 100644
--- a/packages/uclibc/uclibc.inc
+++ b/packages/uclibc/uclibc.inc
@@ -22,7 +22,7 @@ python __anonymous () {
PROVIDES += "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc"
PROVIDES += "${@['virtual/libiconv', ''][bb.data.getVar('USE_NLS', d, 1) != 'yes']}"
DEPENDS = "virtual/${TARGET_PREFIX}binutils \
- virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers ncurses-native"
+ virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers ncurses-native pax-utils-native"
RDEPENDS_${PN}-dev = "linux-libc-headers-dev"
# Blackfin needs a wrapper around ld
@@ -73,7 +73,8 @@ UCLIBC_STAGE_PREFIX = "${STAGING_DIR_HOST}${layout_prefix}"
# the CFLAGS (for when building the utils).
OEMAKE_NO_CC = "'STRIPTOOL=true' 'LD=${LD}' \
'LOCALE_DATA_FILENAME=${UCLIBC_LOCALE_FILE}'"
-EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' HOSTCFLAGS='-I${STAGING_INCDIR_NATIVE}'"
+EXTRA_OEMAKE = "${OEMAKE_NO_CC} 'CC=${CC}' \
+ 'HOSTCFLAGS=-I${STAGING_INCDIR_NATIVE}'"
EXTRA_OEMAKE_task_do_populate_staging = "${OEMAKE_NO_CC}"
EXTRA_OEMAKE_task_do_package = "${OEMAKE_NO_CC}"
diff --git a/packages/uclibc/uclibc_0.9.26.bb b/packages/uclibc/uclibc_0.9.26.bb
index 865d373a43..1c52500ee6 100644
--- a/packages/uclibc/uclibc_0.9.26.bb
+++ b/packages/uclibc/uclibc_0.9.26.bb
@@ -1,4 +1,4 @@
-PR = "r9"
+PR = "r10"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_0.9.27.bb b/packages/uclibc/uclibc_0.9.27.bb
index d1686f5772..f730ad8a27 100644
--- a/packages/uclibc/uclibc_0.9.27.bb
+++ b/packages/uclibc/uclibc_0.9.27.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r9"
+PR = "r10"
require uclibc.inc
@@ -19,6 +19,7 @@ SRC_URI += "${PATCH_ipc_h}"
SRC_URI += " file://thumb-swi.patch;patch=1"
SRC_URI += " file://thumb-swp.patch;patch=1"
SRC_URI += " file://arm-thumb-defined.patch;patch=1"
+SRC_URI += " file://uclibc-makevars-in-quotes.patch;patch=1"
# ARM thumb interworking - these changes fix various bugs in the
# uclibc implementation of thumb interwork support, but they are
diff --git a/packages/uclibc/uclibc_0.9.28.bb b/packages/uclibc/uclibc_0.9.28.bb
index eb3bb50083..1b2fc325d5 100644
--- a/packages/uclibc/uclibc_0.9.28.bb
+++ b/packages/uclibc/uclibc_0.9.28.bb
@@ -1,5 +1,5 @@
DEFAULT_PREFERENCE = "1"
-PR = "r13"
+PR = "r14"
require uclibc.inc
@@ -34,6 +34,7 @@ THUMBSTUFF = " \
file://dl-startup.h.patch;patch=1 \
file://dl-string.h.patch;patch=1 \
file://dl-sysdep.h.patch;patch=1 \
+ file://uclibc-libgcc-eh.patch;patch=1 \
"
SRC_URI_append_arm = " ${THUMBSTUFF} "
diff --git a/packages/uclibc/uclibc_0.9.29.bb b/packages/uclibc/uclibc_0.9.29.bb
index 4565f7dbb4..8368903277 100644
--- a/packages/uclibc/uclibc_0.9.29.bb
+++ b/packages/uclibc/uclibc_0.9.29.bb
@@ -7,8 +7,8 @@
# on whether the base patches apply to the selected (SRCDATE) svn release.
#
UCLIBC_BASE ?= "0.9.29"
-PR = "r19"
-DEFAULT_PREFERENCE = "3"
+PR = "r20"
+DEFAULT_PREFERENCE = "1"
require uclibc.inc
diff --git a/packages/uclibc/uclibc_svn.bb b/packages/uclibc/uclibc_svn.bb
index a357808745..f774fd90ee 100644
--- a/packages/uclibc/uclibc_svn.bb
+++ b/packages/uclibc/uclibc_svn.bb
@@ -8,7 +8,7 @@
#
UCLIBC_BASE ?= "0.9.29"
PV = "${UCLIBC_BASE}+svnr${SRCREV}"
-PR = "r10"
+PR = "r11"
#DEFAULT_PREFERENCE is 0 (empty), releases have a preference of 1 so take
# precedence.