Re: Unable to get serial console login prompt - PowerPC 440 Virtex 5 processor
-Khem
Hi Khem,On Aug 14, 2012, at 12:26 PM, Elvis Dowson wrote:So gcc-4.6.3, eglibc-2.13, from poky/denzil branch also failed, the same as the poky/master branch with gcc-4.6.3, eglibc-2.13. So I guess the I'll need to do a diff between the Denx ELDK 5.2.1 release, which is based on poky/denzil, and that of the current poky/denzil branch to see which recipes are different, and to try and isolate the cause of the kernel panics, when trying to run init=/bash/sh.
Hopefully, that comparison will yield some clues.
There are differences in eglibc.inc and initrd recipes. Try to see if they make difference
Also the libgcc one after the above two
I did a comparision betwen the poky/meta and the eldk/meta directories for the denzil branch. The ELDK one is roughly behind by around 2 updates to the denzil branch, I think.One thing that I found, was the the ELDK install the no-float libraries for soft-floating point on the target, whereas the current poky/denzil branch does not:diff --git a/tool/yocto/poky/meta/recipes-devtools/gcc/libgcc_4.6.bb b/tool/eldk/meta/recipes-devtools/gcc/libgcc_4.6.bbindex 9a8b20d..f75ca34 100644--- a/tool/yocto/poky/meta/recipes-devtools/gcc/libgcc_4.6.bb+++ b/tool/eldk/meta/recipes-devtools/gcc/libgcc_4.6.bb@@ -16,8 +16,10 @@ PACKAGES = "\FILES_${PN} = "${base_libdir}/libgcc*.so.*"FILES_${PN}-dev = " \${base_libdir}/libgcc*.so \- ${libdir}/${TARGET_SYS}/${BINV}/*crt* \- ${libdir}/${TARGET_SYS}/${BINV}/libgcc*"+ ${libdir}/${TARGET_SYS}/${BINV}/crt* \+ ${libdir}/${TARGET_SYS}/${BINV}/libgcc* \+ ${libdir}/${TARGET_SYS}/${BINV}/nof/crt* \+ ${libdir}/${TARGET_SYS}/${BINV}/nof/libgcc*"FILES_libgcov${PKGSUFFIX}-dev = " \${libdir}/${TARGET_SYS}/${BINV}/libgcov.a"Could this be the reason? Apart from the one above, here are all the other differences under recipes-core. Do let me know if any of them stand-out:diff --git a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc-package.inc b/tool/eldk/meta/recipes-core/eglibc/eglibc-package.incindex 3c371a7..0db221f 100644--- a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc-package.inc+++ b/tool/eldk/meta/recipes-core/eglibc/eglibc-package.inc@@ -20,12 +20,11 @@ USE_LDCONFIG ?= "1"PKGSUFFIX = ""PKGSUFFIX_virtclass-nativesdk = "-nativesdk"-PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} ldd${PKGSUFFIX} ${PN}-mtrace ${PN}-utils eglibc-extra-nss${PKGSUFFIX} eglibc-thread-db${PKGSUFFIX} ${PN}-pic ${PN}-dev ${PN}-staticdev ${PN}-doc libcidn${PKGSUFFIX} libmemusage${PKGSUFFIX} libsegfault${PKGSUFFIX} ${PN}-pcprofile libsotruss${PKGSUFFIX}"+PACKAGES = "${PN}-dbg ${PN} catchsegv${PKGSUFFIX} sln${PKGSUFFIX} nscd${PKGSUFFIX} ldd${PKGSUFFIX} ${PN}-utils eglibc-extra-nss${PKGSUFFIX} eglibc-thread-db${PKGSUFFIX} ${PN}-pic ${PN}-dev ${PN}-staticdev ${PN}-doc libcidn${PKGSUFFIX} libmemusage${PKGSUFFIX} libsegfault${PKGSUFFIX} ${PN}-pcprofile libsotruss${PKGSUFFIX}"# The ld.so in this eglibc supports the GNU_HASHRPROVIDES_${PN} = "glibc${PKGSUFFIX} rtld(GNU_HASH)"RPROVIDES_${PN}-utils = "glibc${PKGSUFFIX}-utils"-RPROVIDES_${PN}-mtrace = "glibc${PKGSUFFIX}-mtrace libc-mtrace"RPROVIDES_${PN}-pic = "glibc${PKGSUFFIX}-pic"RPROVIDES_${PN}-dev = "glibc${PKGSUFFIX}-dev"RPROVIDES_${PN}-staticdev = "glibc${PKGSUFFIX}-staticdev"@@ -49,13 +48,11 @@ FILES_${PN}-dev_append += "${bindir}/rpcgen ${libdir}/*_nonshared.a \${base_libdir}/*_nonshared.a ${base_libdir}/*.o ${datadir}/aclocal"FILES_${PN}-staticdev_append += "${libdir}/*.a ${base_libdir}/*.a"FILES_nscd${PKGSUFFIX} = "${sbindir}/nscd*"-FILES_${PN}-mtrace = "${bindir}/mtrace"FILES_${PN}-utils = "${bindir}/* ${sbindir}/*"FILES_${PN}-dbg += "${libexecdir}/*/.debug ${libdir}/audit/.debug"FILES_catchsegv${PKGSUFFIX} = "${bindir}/catchsegv"RDEPENDS_catchsegv${PKGSUFFIX} = "libsegfault"RDEPENDS_${PN}-utils += "bash"-RDEPENDS_${PN}-mtrace += "perl"FILES_${PN}-pcprofile = "${base_libdir}/libpcprofile.so"FILES_eglibc-thread-db${PKGSUFFIX} = "${base_libdir}/libthread_db.so.* ${base_libdir}/libthread_db-*.so"RPROVIDES_${PN}-dev += "libc-dev"@@ -71,8 +68,6 @@ SUMMARY_ldd = "print shared library dependencies"DESCRIPTION_ldd = "/usr/bin/ldd prints shared library dependencies for each program or shared library specified on the command line."SUMMARY_${PN}-utils = "Miscellaneous utilities provided by eglibc"DESCRIPTION_${PN}-utils = "Miscellaneous utilities including getconf, iconf, locale, gencat, tzselect, zic, rpcinfo, ..."-SUMMARY_${PN}-mtrace = "mtrace utility provided by eglibc"-DESCRIPTION_${PN}-mtrace = "mtrace utility provided by eglibc"DESCRIPTION_libsotruss = "Library to support sotruss which traces calls through PLTs"inherit libc-common multilib_headerdiff --git a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc.inc b/tool/eldk/meta/recipes-core/eglibc/eglibc.incindex 51061bc..8e3fe50 100644--- a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc.inc+++ b/tool/eldk/meta/recipes-core/eglibc/eglibc.inc@@ -32,8 +32,6 @@ require eglibc-options.incLEAD_SONAME = "libc.so"-CACHED_CONFIGUREVARS += "ac_cv_path_KSH=${base_bindir}/bash \- ac_cv_path_BASH_SHELL=${base_bindir}/bash"GLIBC_EXTRA_OECONF ?= ""GLIBC_EXTRA_OECONF_virtclass-nativesdk = ""INHIBIT_DEFAULT_DEPS = "1"diff --git a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc_2.13.bb b/tool/eldk/meta/recipes-core/eglibc/eglibc_2.13.bbindex 690f99d..d8a41dc 100644--- a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc_2.13.bb+++ b/tool/eldk/meta/recipes-core/eglibc/eglibc_2.13.bb@@ -3,7 +3,7 @@ require eglibc.incSRCREV = "15508"DEPENDS += "gperf-native"-PR = "r28"+PR = "r26"PR_append = "+svnr${SRCPV}"EGLIBC_BRANCH="eglibc-2_13"diff --git a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc_2.15.bb b/tool/eldk/meta/recipes-core/eglibc/eglibc_2.15.bbindex f5219d1..713efc3 100644--- a/tool/yocto/poky/meta/recipes-core/eglibc/eglibc_2.15.bb+++ b/tool/eldk/meta/recipes-core/eglibc/eglibc_2.15.bb@@ -3,7 +3,7 @@ require eglibc.incSRCREV = "17386"DEPENDS += "gperf-native"-PR = "r7"+PR = "r6"PR_append = "+svnr${SRCPV}"EGLIBC_BRANCH="eglibc-2_15"diff --git a/tool/yocto/poky/meta/recipes-core/initrdscripts/files/init-install.sh b/tool/eldk/meta/recipes-core/initrdscripts/files/init-install.shindex 01ff829..90978dd 100644--- a/tool/yocto/poky/meta/recipes-core/initrdscripts/files/init-install.sh+++ b/tool/eldk/meta/recipes-core/initrdscripts/files/init-install.sh@@ -16,7 +16,7 @@ swap_ratio=5found="no"echo "Searching for a hard drive..."-for device in 'hda' 'hdb' 'sda' 'sdb' 'mmcblk0' 'mmcblk1'+for device in 'hda' 'hdb' 'sda' 'sdb'doif [ -e /sys/block/${device}/removable ]; thenif [ "$(cat /sys/block/${device}/removable)" = "0" ]; then@@ -62,7 +62,13 @@ rm -f /etc/udev/scripts/mount*## Unmount anything the automounter had mounted#-umount /dev/${device}* 2> /dev/null || /bin/true+umount /dev/${device} 2> /dev/null || /bin/true+umount /dev/${device}1 2> /dev/null || /bin/true+umount /dev/${device}2 2> /dev/null || /bin/true+umount /dev/${device}3 2> /dev/null || /bin/true+umount /dev/${device}4 2> /dev/null || /bin/true+umount /dev/${device}5 2> /dev/null || /bin/true+umount /dev/${device}6 2> /dev/null || /bin/trueif [ ! -b /dev/sda ] ; thenmknod /dev/sda b 8 0@@ -88,23 +94,14 @@ rootfs_start=$((boot_size + 1))rootfs_end=$((rootfs_start+rootfs_size))swap_start=$((rootfs_end+1))-# MMC devices are special in a couple of ways-# 1) they use a partition prefix character 'p'-# 2) they are detected asynchronously (need rootwait)-rootwait=""-part_prefix=""-if [ ! "${device#mmcblk}" = "${device}" ]; then- part_prefix="p"- rootwait="rootwait"-fi-bootfs=/dev/${device}${part_prefix}1-rootfs=/dev/${device}${part_prefix}2-swap=/dev/${device}${part_prefix}3+bootfs=/dev/${device}1+rootfs=/dev/${device}2+swap=/dev/${device}3echo "*****************"-echo "Boot partition size: $boot_size MB ($bootfs)"-echo "Rootfs partition size: $rootfs_size MB ($rootfs)"-echo "Swap partition size: $swap_size MB ($swap)"+echo "Boot partition size: $boot_size MB (/dev/${device}1)"+echo "Rootfs partition size: $rootfs_size MB (/dev/${device}2)"+echo "Swap partition size: $swap_size MB (/dev/${device}3)"echo "*****************"echo "Deleting partition table on /dev/${device} ..."dd if=/dev/zero of=/dev/${device} bs=512 count=2@@ -112,24 +109,24 @@ dd if=/dev/zero of=/dev/${device} bs=512 count=2echo "Creating new partition table on /dev/${device} ..."parted /dev/${device} mklabel msdos-echo "Creating boot partition on $bootfs"+echo "Creating boot partition on /dev/${device}1"parted /dev/${device} mkpart primary 1 $boot_size-echo "Creating rootfs partition on $rootfs"+echo "Creating rootfs partition on /dev/${device}2"parted /dev/${device} mkpart primary $rootfs_start $rootfs_end-echo "Creating swap partition on $swap"+echo "Creating swap partition on /dev/${device}3"parted /dev/${device} mkpart primary $swap_start $disk_sizeparted /dev/${device} print-echo "Formatting $bootfs to ext2..."+echo "Formatting /dev/${device}1 to ext2..."mkfs.ext3 $bootfs-echo "Formatting $rootfs to ext3..."+echo "Formatting /dev/${device}2 to ext3..."mkfs.ext3 $rootfs-echo "Formatting swap partition...($swap)"+echo "Formatting swap partition...(/dev/${device}3)"mkswap $swapmkdir /ssd@@ -153,7 +150,7 @@ fiif [ -f /ssd/etc/grub.d/40_custom ] ; thenecho "Preparing custom grub2 menu..."- sed -i "s@__ROOTFS__@$rootfs $rootwait@g" /ssd/etc/grub.d/40_custom+ sed -i "s@__ROOTFS__@$rootfs@g" /ssd/etc/grub.d/40_customsed -i "s/__VIDEO_MODE__/$3/g" /ssd/etc/grub.d/40_customsed -i "s/__VGA_MODE__/$4/g" /ssd/etc/grub.d/40_custommount $bootfs /bootmntdiff --git a/tool/yocto/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb b/tool/eldk/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bbindex ac73ef8..793a4b7 100644--- a/tool/yocto/poky/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb+++ b/tool/eldk/meta/recipes-core/initrdscripts/initramfs-live-install_1.0.bb@@ -3,7 +3,7 @@ LICENSE = "MIT"LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"SRC_URI = "file://init-install.sh"-PR = "r7"+PR = "r6"RDEPENDS_${PN} = "grub parted e2fsprogs-mke2fs"diff --git a/tool/yocto/poky/meta/recipes-core/ncurses/ncurses.inc b/tool/eldk/meta/recipes-core/ncurses/ncurses.incindex b031119..ae99e2c 100644--- a/tool/yocto/poky/meta/recipes-core/ncurses/ncurses.inc+++ b/tool/eldk/meta/recipes-core/ncurses/ncurses.inc@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://ncurses/base/version.c;beginline=1;endline=27;md5=cbcSECTION = "libs"DEPENDS = "ncurses-native"DEPENDS_virtclass-native = ""-INC_PR = "r9"+INC_PR = "r8"inherit autotools binconfig multilib_header@@ -107,15 +107,10 @@ do_test() {diff curses-narrowc.h curses-widec.h}-# Split original _install_opts to two parts.-# One is the options to install contents, the other is the parameters \-# when running command "make install"_install_opts = "\- install.libs install.includes install.man \-"-_install_cfgs = "\DESTDIR='${D}' \PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \+ install.libs install.includes install.man \"python do_install () {@@ -127,19 +122,11 @@ shell_do_install() {# Order of installation is important; widec installs a 'curses.h'# header with more definitions and must be installed last hence.# Compatibility of these headers will be checked in 'do_test()'.- oe_runmake -C narrowc ${_install_cfgs} ${_install_opts} \- install.progs-- # The install.data should run after install.libs, otherwise- # there would be a race issue in a very critical conditon, since- # tic will be run by install.data, and tic needs libtinfo.so- # which would be regenerated by install.libs.- oe_runmake -C narrowc ${_install_cfgs} \- install.data-+ oe_runmake -C narrowc ${_install_opts} \+ install.data install.progs! ${ENABLE_WIDEC} || \- oe_runmake -C widec ${_install_cfgs} ${_install_opts}+ oe_runmake -C widec ${_install_opts}cd narrowcdiff --git a/tool/yocto/poky/meta/recipes-core/tasks/task-core-tools-debug.bb b/tool/eldk/meta/recipes-core/tasks/task-core-tools-debug.bbindex 1dddbb8..3c92f3f 100644--- a/tool/yocto/poky/meta/recipes-core/tasks/task-core-tools-debug.bb+++ b/tool/eldk/meta/recipes-core/tasks/task-core-tools-debug.bb@@ -17,14 +17,10 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"ALLOW_EMPTY = "1"-MTRACE = ""-MTRACE_libc-glibc = "libc-mtrace"-RDEPENDS_${PN} = "\gdb \gdbserver \tcf-agent \rsync \strace \- ${MTRACE} \"diff --git a/tool/yocto/poky/meta/recipes-core/uclibc/uclibc.inc b/tool/eldk/meta/recipes-core/uclibc/uclibc.incindex 55ab0c9..893d8fd 100644--- a/tool/yocto/poky/meta/recipes-core/uclibc/uclibc.inc+++ b/tool/eldk/meta/recipes-core/uclibc/uclibc.inc@@ -13,7 +13,7 @@ SECTION = "libs"LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \-INC_PR = "r7"+INC_PR = "r6"require uclibc-config.incSTAGINGCC = "gcc-cross-intermediate"@@ -48,9 +48,9 @@ RDEPENDS_${PN}-dev = "linux-libc-headers-dev"INHIBIT_DEFAULT_DEPS = "1"-# Ensure the uclibc-dev package is processed before uclibc-staticdev to allow-# *_nonshared.a libraries to be packaged in the uclibc-dev package.-PACKAGES = "${PN}-dbg ${PN}-dev ${PN}-staticdev ${PN} ${PN}-doc ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"+PACKAGES =+ "ldd uclibc-utils-dbg uclibc-utils uclibc-gconv uclibc-thread-db uclibc-argp uclibc-backtrace"+PACKAGES =+ "uclibc-libcrypt uclibc-libintl uclibc-libnsl uclibc-libresolv uclibc-libm"+PACKAGES =+ "uclibc-libdl uclibc-libutil uclibc-libpthread uclibc-librt"FILES_uclibc-libcrypt = "${base_libdir}/libcrypt*.so.* ${base_libdir}/libcrypt-*.so"FILES_uclibc-libintl = "${base_libdir}/libintl*.so.* ${base_libdir}/libintl-*.so"@@ -88,8 +88,7 @@ RPROVIDES_${PN}-dev += "libc-dev virtual-libc-dev"# uclibc does not really have libsegfault but then using the one from glibc is also not# going to work. So we pretend that we have it to make bitbake not pull other recipes# to satisfy this dependency for the images/tasks--RPROVIDES_uclibc += "libsegfault rtld(GNU_HASH)"+RPROVIDES_uclibc += "libsegfault"SRC_URI = "\diff --git a/tool/yocto/poky/meta/recipes-devtools/binutils/binutils.inc b/tool/eldk/meta/recipes-devtools/binutils/binutils.incindex 552b808..e343242 100644--- a/tool/yocto/poky/meta/recipes-devtools/binutils/binutils.inc+++ b/tool/eldk/meta/recipes-devtools/binutils/binutils.inc@@ -32,7 +32,6 @@ FILES_${PN}-symlinks = " \${bindir}/addr2line \${bindir}/as \${bindir}/c++filt \- ${bindir}/embedspu \${bindir}/gprof \${bindir}/ld \${bindir}/ld.bfd \diff --git a/tool/yocto/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch b/tool/yocto/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patchdeleted file mode 100644index a5d6b61..0000000--- a/tool/yocto/poky/meta/recipes-devtools/dpkg/dpkg/dpkg-deb-avoid-fflush.patch+++ /dev/null@@ -1,198 +0,0 @@-From 78eaf928d30d0b16e05d8d63c55a3632a135ed9a Mon Sep 17 00:00:00 2001-From: Guillem Jover <guillem@...>-Date: Thu, 4 Nov 2010 00:51:13 +0100-Subject: [PATCH] dpkg-deb: Use fd instead of stream based buffered I/O--Behaviour of fflush() on input streams is undefined per POSIX, avoid-mixing stream and file descriptor based I/O, and only use the latter-instead.--Upstream-Status: Backport of revision 2d420ee1d05033d237462a0075facfe406b08043 (in 1.16.x)------ dpkg-deb/extract.c | 83 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 62 insertions(+), 21 deletions(-)--diff --git a/dpkg-deb/extract.c b/dpkg-deb/extract.c-index 22aea98..0f5ac88 100644---- a/dpkg-deb/extract.c-+++ b/dpkg-deb/extract.c-@@ -31,6 +31,7 @@- #include <ctype.h>- #include <string.h>- #include <dirent.h>-+#include <fcntl.h>- #include <unistd.h>- #include <ar.h>- #include <stdbool.h>-@@ -61,13 +62,41 @@ static void movecontrolfiles(const char *thing) {- }-- static void DPKG_ATTR_NORET--readfail(FILE *a, const char *filename, const char *what)-+read_fail(int rc, const char *filename, const char *what)- {-- if (ferror(a)) {-- ohshite(_("error reading %s from file %.255s"), what, filename);-- } else {-+ if (rc == 0)- ohshit(_("unexpected end of file in %s in %.255s"),what,filename);-+ else-+ ohshite(_("error reading %s from file %.255s"), what, filename);-+}-+-+static ssize_t-+read_line(int fd, char *buf, size_t min_size, size_t max_size)-+{-+ ssize_t line_size = 0;-+ size_t n = min_size;-+-+ while (line_size < (ssize_t)max_size) {-+ ssize_t r;-+ char *nl;-+-+ r = read(fd, buf + line_size, n);-+ if (r <= 0)-+ return r;-+-+ nl = strchr(buf + line_size, '\n');-+ line_size += r;-+-+ if (nl != NULL) {-+ nl[1] = '\0';-+ return line_size;-+ }-+-+ n = 1;- }-+-+ buf[line_size] = '\0';-+ return line_size;- }-- static size_t-@@ -115,19 +144,26 @@ void extracthalf(const char *debar, const char *directory,- char versionbuf[40];- float versionnum;- size_t ctrllennum, memberlen= 0;-+ ssize_t r;- int dummy;- pid_t c1=0,c2,c3;- int p1[2], p2[2];-- FILE *ar;-+ int arfd;- struct stat stab;- char nlc;- int adminmember;- bool oldformat, header_done;- struct compressor *decompressor = &compressor_gzip;--- ar= fopen(debar,"r"); if (!ar) ohshite(_("failed to read archive `%.255s'"),debar);-- if (fstat(fileno(ar),&stab)) ohshite(_("failed to fstat archive"));-- if (!fgets(versionbuf,sizeof(versionbuf),ar)) readfail(ar,debar,_("version number"));-+ arfd = open(debar, O_RDONLY);-+ if (arfd < 0)-+ ohshite(_("failed to read archive `%.255s'"), debar);-+ if (fstat(arfd, &stab))-+ ohshite(_("failed to fstat archive"));-+-+ r = read_line(arfd, versionbuf, strlen(DPKG_AR_MAGIC), sizeof(versionbuf));-+ if (r < 0)-+ read_fail(r, debar, _("archive magic version number"));-- if (!strcmp(versionbuf, DPKG_AR_MAGIC)) {- oldformat = false;-@@ -137,8 +173,9 @@ void extracthalf(const char *debar, const char *directory,- for (;;) {- struct ar_hdr arh;--- if (fread(&arh,1,sizeof(arh),ar) != sizeof(arh))-- readfail(ar,debar,_("between members"));-+ r = read(arfd, &arh, sizeof(arh));-+ if (r != sizeof(arh))-+ read_fail(r, debar, _("archive member header"));-- dpkg_ar_normalize_name(&arh);--@@ -153,8 +190,9 @@ void extracthalf(const char *debar, const char *directory,- ohshit(_("file `%.250s' is not a debian binary archive (try dpkg-split?)"),debar);- infobuf= m_malloc(memberlen+1);-- if (fread(infobuf,1, memberlen + (memberlen&1), ar) != memberlen + (memberlen&1))-- readfail(ar,debar,_("header info member"));-+ r = read(arfd, infobuf, memberlen + (memberlen & 1));-+ if ((size_t)r != (memberlen + (memberlen & 1)))-+ read_fail(r, debar, _("archive information header member"));- infobuf[memberlen] = '\0';- cur= strchr(infobuf,'\n');- if (!cur) ohshit(_("archive has no newlines in header"));-@@ -174,7 +212,8 @@ void extracthalf(const char *debar, const char *directory,- /* Members with `_' are noncritical, and if we don't understand them- * we skip them.- */-- stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member data from %s"), debar);-+ fd_null_copy(arfd, memberlen + (memberlen & 1),-+ _("skipped archive member data from %s"), debar);- } else {- adminmember = 1;-@@ -198,7 +237,8 @@ void extracthalf(const char *debar, const char *directory,- ctrllennum= memberlen;- }- if (!adminmember != !admininfo) {-- stream_null_copy(ar, memberlen + (memberlen&1),_("skipped member data from %s"), debar);-+ fd_null_copy(arfd, memberlen + (memberlen & 1),-+ _("skipped archive member data from %s"), debar);- } else {- break; /* Yes ! - found it. */- }-@@ -221,8 +261,10 @@ void extracthalf(const char *debar, const char *directory,- l = strlen(versionbuf);- if (l && versionbuf[l - 1] == '\n')- versionbuf[l - 1] = '\0';-- if (!fgets(ctrllenbuf,sizeof(ctrllenbuf),ar))-- readfail(ar, debar, _("control information length"));-+-+ r = read_line(arfd, ctrllenbuf, 1, sizeof(ctrllenbuf));-+ if (r < 0)-+ read_fail(r, debar, _("archive control member size"));- if (sscanf(ctrllenbuf,"%zi%c%d",&ctrllennum,&nlc,&dummy) !=2 || nlc != '\n')- ohshit(_("archive has malformatted control length `%s'"), ctrllenbuf);--@@ -230,7 +272,8 @@ void extracthalf(const char *debar, const char *directory,- memberlen = ctrllennum;- } else {- memberlen = stab.st_size - ctrllennum - strlen(ctrllenbuf) - l;-- stream_null_copy(ar, ctrllennum, _("skipped control area from %s"), debar);-+ fd_null_copy(arfd, ctrllennum,-+ _("skipped archive control member data from %s"), debar);- }-- if (admininfo >= 2) {-@@ -252,13 +295,11 @@ void extracthalf(const char *debar, const char *directory,-- }--- safe_fflush(ar);--- m_pipe(p1);- c1 = subproc_fork();- if (!c1) {- close(p1[0]);-- stream_fd_copy(ar, p1[1], memberlen, _("failed to write to pipe in copy"));-+ fd_fd_copy(arfd, p1[1], memberlen, _("failed to write to pipe in copy"));- if (close(p1[1]))- ohshite(_("failed to close pipe in copy"));- exit(0);-@@ -275,7 +316,7 @@ void extracthalf(const char *debar, const char *directory,- decompress_filter(decompressor, 0, 1, _("data"));- }- close(p1[0]);-- fclose(ar);-+ close(arfd);- if (taroption) close(p2[1]);-- if (taroption && directory) {----1.7.7.6-diff --git a/tool/yocto/poky/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb b/tool/eldk/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bbindex 1e7ef25..f1030fa 100644--- a/tool/yocto/poky/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb+++ b/tool/eldk/meta/recipes-devtools/dpkg/dpkg_1.15.8.7.bb@@ -5,11 +5,10 @@ SRC_URI += "file://noman.patch \SRC_URI[md5sum] = "d1731d4147c1ea3b537a4d094519a6dc"SRC_URI[sha256sum] = "1ec1376471b04717a4497e5d7a27cd545248c92116898ce0c53ced8ea94267b5"-PR = "${INC_PR}.4"+PR = "${INC_PR}.3"diff --git a/tool/eldk/meta/recipes-devtools/gcc/gcc-4.6/t-mips.patch b/tool/eldk/meta/recipes-devtools/gcc/gcc-4.6/t-mips.patchnew file mode 100644index 0000000..4786f95--- /dev/null+++ b/tool/eldk/meta/recipes-devtools/gcc/gcc-4.6/t-mips.patch@@ -0,0 +1,10 @@+--- gcc-4_6-branch/gcc/config/mips/t-mips.orig 2011-09-03 05:58:07.000000000 +0300++++ gcc-4_6-branch/gcc/config/mips/t-mips 2011-10-18 19:14:39.000000000 +0300+@@ -39,3 +39,7 @@+ cat $(srcdir)/config/fp-bit.c >> fp-bit.c++ LIB2_SIDITI_CONV_FUNCS=yes++++MULTILIB_OPTIONS = msoft-float++MULTILIB_DIRNAMES = nof++MULTILIB_MATCHES =diff --git a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-4.6.inc b/tool/eldk/meta/recipes-devtools/gcc/gcc-4.6.incindex 020e21b..9fd152a 100644--- a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-4.6.inc+++ b/tool/eldk/meta/recipes-devtools/gcc/gcc-4.6.inc@@ -74,6 +74,7 @@ SRC_URI = "svn://gcc.gnu.org/svn/gcc/branches;module=${BRANCH};proto=http \"SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch "diff --git a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/tool/eldk/meta/recipes-devtools/gcc/gcc-configure-common.incindex 9542dc9..da60089 100644--- a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc+++ b/tool/eldk/meta/recipes-devtools/gcc/gcc-configure-common.inc@@ -25,7 +25,8 @@ EXTRA_OECONF_PATHS ?= ""EXTRA_OECONF_INITIAL ?= ""EXTRA_OECONF_INTERMEDIATE ?= ""-GCCMULTILIB = "--disable-multilib"+MULTILIB_ARCH_LIST = "mips"+GCCMULTILIB = '${@base_contains("MULTILIB_ARCH_LIST", "${TARGET_ARCH}", "--enable-multilib", "--disable-multilib",d)}'EXTRA_OECONF = "${@['--enable-clocale=generic', ''][d.getVar('USE_NLS', True) != 'no']} \--with-gnu-ld \diff --git a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-package-target.inc b/tool/eldk/meta/recipes-devtools/gcc/gcc-package-target.incindex a499c88..3076670 100644--- a/tool/yocto/poky/meta/recipes-devtools/gcc/gcc-package-target.inc+++ b/tool/eldk/meta/recipes-devtools/gcc/gcc-package-target.inc@@ -1,5 +1,5 @@PACKAGES = "\- ${PN} ${PN}-plugins ${PN}-symlinks \+ ${PN} ${PN}-symlinks \g++ g++-symlinks \cpp cpp-symlinks \g77 g77-symlinks \@@ -40,11 +40,6 @@ FILES_${PN}-symlinks = "\${bindir}/gccbug \"-FILES_${PN}-plugins = "\- ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin \-"-ALLOW_EMPTY_${PN}-plugins = "1"-FILES_g77 = "\${bindir}/${TARGET_PREFIX}g77 \${libexecdir}/gcc/${TARGET_SYS}/${BINV}/f771 \@@ -93,7 +88,6 @@ do_install () {rm -r ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/install-toolsrm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/install-toolsrm -rf ${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/*.la- rmdir ${D}${includedir}# Hack around specs file assumptionstest -f ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specs && sed -i -e '/^*cross_compile:$/ { n; s/1/0/; }' ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specsdiff --git a/tool/yocto/poky/meta/recipes-devtools/gcc/libgcc_4.6.bb b/tool/eldk/meta/recipes-devtools/gcc/libgcc_4.6.bbindex 9a8b20d..f75ca34 100644--- a/tool/yocto/poky/meta/recipes-devtools/gcc/libgcc_4.6.bb+++ b/tool/eldk/meta/recipes-devtools/gcc/libgcc_4.6.bb@@ -16,8 +16,10 @@ PACKAGES = "\FILES_${PN} = "${base_libdir}/libgcc*.so.*"FILES_${PN}-dev = " \${base_libdir}/libgcc*.so \- ${libdir}/${TARGET_SYS}/${BINV}/*crt* \- ${libdir}/${TARGET_SYS}/${BINV}/libgcc*"+ ${libdir}/${TARGET_SYS}/${BINV}/crt* \+ ${libdir}/${TARGET_SYS}/${BINV}/libgcc* \+ ${libdir}/${TARGET_SYS}/${BINV}/nof/crt* \+ ${libdir}/${TARGET_SYS}/${BINV}/nof/libgcc*"FILES_libgcov${PKGSUFFIX}-dev = " \${libdir}/${TARGET_SYS}/${BINV}/libgcov.a"Best regards,Elvis Dowson