elfutils: fix build with -Os
PATCH 1/4 elfutils: fix build with -Os
--- ...m-Silence-Werror-maybe-uninitialized-fals.patch | 35 ++++++++++++++++++++++ meta/recipes-devtools/elfutils/elfutils_0.161.bb | 1 + 2 files changed, 36 insertions(+) create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.161/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch
meta/recipes-devtools/elfutils/elfutils-0.161/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch new file +35 -0
@@ -0,0 +1,35 @@ +From 668accf322fd7185e273bfd50b84320e71d9de5a Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Fri, 10 Apr 2015 00:29:18 +0200 +Subject: [PATCH] elf_getarsym: Silence -Werror=maybe-uninitialized false + positive + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <[email protected]> +--- + libelf/elf_getarsym.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c +index d0bb28a..08954d2 100644 +--- a/libelf/elf_getarsym.c ++++ b/libelf/elf_getarsym.c +@@ -165,8 +165,13 @@ elf_getarsym (elf, ptr) + int w = index64_p ? 8 : 4; + + /* We have an archive. The first word in there is the number of +- entries in the table. */ +- uint64_t n; ++ entries in the table. ++ Set to SIZE_MAX just to silence -Werror=maybe-uninitialized ++ elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this function ++ The read_number_entries function doesn't initialize n only when returning ++ -1 which in turn ensures to jump over usage of this uninitialized variable. ++ */ ++ uint64_t n = SIZE_MAX; + size_t off = elf->start_offset + SARMAG + sizeof (struct ar_hdr); + if (read_number_entries (&n, elf, &off, index64_p) < 0) + { +-- +2.3.5 +
meta/recipes-devtools/elfutils/elfutils_0.161.bb +1 -0
@@ -15,6 +15,7 @@ SRC_URI += "\ file://dso-link-change.patch \ file://Fix_elf_cvt_gunhash.patch \ file://fixheadercheck.patch \ + file://0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch \ " # pick the patch from debian
Signature · 1 line
2.3.5
PATCH 2/4 e2fsprogs: Package populate-extfs.sh and enable symlink install
* install populate-extfs.sh from contrib, be aware that in order to use it you need to set DEBUGFS shell variable, otherwise it will try to use debugfs from relative path which is almost always incorrect:
CONTRIB_DIR=$(dirname $(readlink -f $0))
DEBUGFS="$CONTRIB_DIR/../debugfs/debugfs"* use symlinks to install e2fsck, mke2fs, without this option we have:
$ ls -lahi tmp-glibc/work/arm920tt-oe-linux-gnueabi/e2fsprogs/1.42.9-r0/image/sbin/ ... 101982430 -rwxr-xr-x 5 bitbake bitbake 972K Apr 10 15:43 e2fsck 101982430 -rwxr-xr-x 5 bitbake bitbake 972K Apr 10 15:43 fsck.ext2 101982430 -rwxr-xr-x 5 bitbake bitbake 972K Apr 10 15:43 fsck.ext3 101982430 -rwxr-xr-x 5 bitbake bitbake 972K Apr 10 15:43 fsck.ext4 101982430 -rwxr-xr-x 5 bitbake bitbake 972K Apr 10 15:43 fsck.ext4dev ... 101982441 -rwxr-xr-x 5 bitbake bitbake 348K Apr 10 15:43 mke2fs 101982441 -rwxr-xr-x 5 bitbake bitbake 348K Apr 10 15:43 mkfs.ext2 101982441 -rwxr-xr-x 5 bitbake bitbake 348K Apr 10 15:43 mkfs.ext3 101982441 -rwxr-xr-x 5 bitbake bitbake 348K Apr 10 15:43 mkfs.ext4 101982441 -rwxr-xr-x 5 bitbake bitbake 348K Apr 10 15:43 mkfs.ext4dev ...
which would be OK, because they are hadlinks, but after runstrip in do_package we get one stripped binary and 4 hardlinks to the original one:
$ ls -lahi tmp-glibc/work/arm920tt-oe-linux-gnueabi/e2fsprogs/1.42.9-r0/packages-split/e2fsprogs-e2fsck/sbin 101982713 -rwxr-xr-x 8 bitbake bitbake 972K Apr 10 15:43 e2fsck 101982713 -rwxr-xr-x 8 bitbake bitbake 972K Apr 10 15:43 fsck.ext2 101982713 -rwxr-xr-x 8 bitbake bitbake 972K Apr 10 15:43 fsck.ext3 101982713 -rwxr-xr-x 8 bitbake bitbake 972K Apr 10 15:43 fsck.ext4 101983136 -rwxr-xr-x 2 bitbake bitbake 185K Apr 10 15:43 fsck.ext4dev $ ls -lahi tmp-glibc/work/arm920tt-oe-linux-gnueabi/e2fsprogs/1.42.9-r0/packages-split/e2fsprogs-mke2fs/sbin/ 101982716 -rwxr-xr-x 8 bitbake bitbake 348K Apr 10 15:43 mke2fs 101982716 -rwxr-xr-x 8 bitbake bitbake 348K Apr 10 15:43 mkfs.ext2 101988266 -rwxr-xr-x 2 bitbake bitbake 72K Apr 10 15:43 mkfs.ext3 101982716 -rwxr-xr-x 8 bitbake bitbake 348K Apr 10 15:43 mkfs.ext4 101982716 -rwxr-xr-x 8 bitbake bitbake 348K Apr 10 15:43 mkfs.ext4dev
That's super annoying for big files like this which are often include in small recovery images. Using --enable-symlink-install option results in one stripped binary and 4 symlinks:
$ ls -lahi tmp-glibc/work/arm920tt-oe-linux-gnueabi/e2fsprogs/1.42.9-r0/packages-split/e2fsprogs-e2fsck/sbin/ 102113806 -rwxr-xr-x 2 bitbake bitbake 185K Apr 10 15:50 e2fsck 102113813 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 fsck.ext2 -> e2fsck 102113814 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 fsck.ext3 -> e2fsck 102113812 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 fsck.ext4 -> e2fsck 102113815 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 fsck.ext4dev -> e2fsck $ ls -lahi tmp-glibc/work/arm920tt-oe-linux-gnueabi/e2fsprogs/1.42.9-r0/packages-split/e2fsprogs-mke2fs/sbin/ 102113804 -rwxr-xr-x 2 bitbake bitbake 72K Apr 10 15:50 mke2fs 102113825 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 mkfs.ext2 -> mke2fs 102113826 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 mkfs.ext3 -> mke2fs 102113823 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 mkfs.ext4 -> mke2fs 102113824 lrwxrwxrwx 1 bitbake bitbake 6 Apr 10 15:50 mkfs.ext4dev -> mke2fs
Saving cca 1,5MB.
--- meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-devtools/e2fsprogs/e2fsprogs_1.42.9.bb +3 -1
@@ -26,7 +26,7 @@ SRC_URI += "file://acinclude.m4 \ SRC_URI[md5sum] = "3f8e41e63b432ba114b33f58674563f7" SRC_URI[sha256sum] = "2f92ac06e92fa00f2ada3ee67dad012d74d685537527ad1241d82f2d041f2802" -EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-elf-shlibs --disable-libuuid --disable-uuidd --enable-verbose-makecmds" +EXTRA_OECONF += "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-elf-shlibs --disable-libuuid --disable-uuidd --enable-verbose-makecmds --enable-symlink-install" EXTRA_OECONF_darwin = "--libdir=${base_libdir} --sbindir=${base_sbindir} --enable-bsd-shlibs" do_configure_prepend () {
@@ -54,6 +54,8 @@ do_install () { oe_multilib_header ext2fs/ext2_types.h install -d ${D}${base_bindir} mv ${D}${bindir}/chattr ${D}${base_bindir}/chattr.e2fsprogs + + install -v -m 755 ${S}/contrib/populate-extfs.sh ${D}${base_sbindir}/ } do_install_append_class-target() {
Signature · 1 line
2.3.5
PATCH 3/4 image.bbclass: Allow to remove do_rootfs -> virtual/kernel:do_packagedata dependency
In reply to Martin JansaFrom: Martin Jansa <[email protected]>
* this is causing dependency loops in some cases
e.g. linux-hp-tenderloin depends on initramfs-android-image, but
commit 41f0f86ec0a3e0b6f6c9bb4ef71a4215c00bf66c
Author: Richard Purdie <[email protected]>
Date: Tue Jan 27 15:24:52 2015 +0000
Subject: image: Add missing depends on virtual/kernel for depmod data
adds also dependency between <image>.do_rootfs and virtual/kernel:do_packagedata causing this dependency loop:
Dependency loop #1 found:
Task 78 (meta-smartphone/meta-hp/recipes-kernel/linux/linux-hp-tenderloin_git.bb, do_install)
(dependent Tasks ['linux-hp-tenderloin, do_compile',
'pseudo, do_populate_sysroot'])
Task 88 (meta-smartphone/meta-hp/recipes-kernel/linux/linux-hp-tenderloin_git.bb, do_package)
(dependent Tasks ['rpm, do_populate_sysroot',
'pseudo, do_populate_sysroot',
'linux-hp-tenderloin, do_install',
'initramfs-android-image.bb, do_packagedata',
'glibc, do_packagedata',
'file, do_populate_sysroot',
'gcc-runtime, do_packagedata'])
Task 89 (meta-smartphone/meta-hp/recipes-kernel/linux/linux-hp-tenderloin_git.bb, do_package_write_ipk)
(dependent Tasks ['linux-hp-tenderloin, do_package',
'opkg-utils, do_populate_sysroot',
'linux-hp-tenderloin, do_packagedata',
'pseudo, do_populate_sysroot'])
Task 560 (meta-smartphone/meta-android/recipes-core/images/initramfs-android-image.bb, do_rootfs)
(dependent Tasks ['bash, do_package_write_ipk',
'run-postinsts, do_package_write_ipk',
'db, do_package_write_ipk',
'update-rc.d, do_populate_sysroot',
'android-tools-conf, do_package_write_ipk',
'base-passwd, do_package_write_ipk',
'initramfs-boot-android, do_package_write_ipk',
'expat, do_package_write_ipk',
'bzip2, do_packagedata',
'glibc-initial, do_packagedata',
'openssl, do_package_write_ipk',
'bzip2, do_package_write_ipk',
'busybox, do_packagedata',
'zlib, do_packagedata',
'qemuwrapper-cross, do_packagedata',
'base-passwd, do_packagedata',
'busybox, do_package_write_ipk',
'zlib, do_package_write_ipk',
'qemuwrapper-cross, do_package_write_ipk',
'gcc-runtime, do_package_write_ipk',
'gettext, do_packagedata',
'initramfs-boot-android, do_packagedata',
'gettext, do_package_write_ipk',
'libgcc-initial, do_packagedata',
'expat, do_packagedata',
'gdbm, do_packagedata',
'depmodwrapper-cross, do_package_write_ipk',
'libgcc-initial, do_package_write_ipk',
'glibc-initial, do_package_write_ipk',
'linux-libc-headers, do_packagedata',
'glibc, do_packagedata',
'initramfs-android-image.bb, do_packagedata',
'glibc, do_package_write_ipk',
'sqlite3, do_packagedata',
'initramfs-android-image.bb, do_package_write_ipk',
'sqlite3, do_package_write_ipk',
'android-tools-conf, do_packagedata',
'ncurses, do_packagedata',
'openssl, do_packagedata',
'android-tools, do_packagedata',
'ncurses, do_package_write_ipk',
'cryptodev-linux, do_packagedata',
'android-tools, do_package_write_ipk',
'pseudo, do_populate_sysroot',
'cryptodev-linux, do_package_write_ipk',
'linux-libc-headers, do_package_write_ipk',
'depmodwrapper-cross, do_packagedata',
'linux-hp-tenderloin, do_packagedata',
'readline, do_package_write_ipk',
'opkg-utils, do_packagedata',
'linux-hp-tenderloin, do_package_write_ipk',
'python, do_packagedata',
'gdbm, do_package_write_ipk',
'opkg, do_populate_sysroot',
'python, do_package_write_ipk',
'libtool-cross, do_packagedata',
'db, do_packagedata',
'libgcc, do_packagedata',
'libtool-cross, do_package_write_ipk',
'update-rc.d, do_packagedata',
'update-rc.d, do_package_write_ipk',
'libgcc, do_package_write_ipk',
'opkg-utils, do_populate_sysroot',
'makedevs, do_populate_sysroot',
'readline, do_packagedata',
'base-files, do_packagedata',
'gcc-runtime, do_packagedata',
'opkg-utils, do_package_write_ipk',
'base-files, do_package_write_ipk',
'ldconfig-native, do_populate_sysroot',
'bash, do_packagedata',
'run-postinsts, do_packagedata']) Task 82 (meta-smartphone/meta-hp/recipes-kernel/linux/linux-hp-tenderloin_git.bb, do_compile)
(dependent Tasks ['initramfs-android-image.bb, do_rootfs',
'linux-hp-tenderloin, do_configure'])
--- meta/classes/image.bbclass | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
meta/classes/image.bbclass +8 -1
@@ -76,10 +76,17 @@ LDCONFIGDEPEND ?= "ldconfig-native:do_populate_sysroot" LDCONFIGDEPEND_libc-uclibc = "" LDCONFIGDEPEND_libc-musl = "" +# This is needed to have depmod data in PKGDATA_DIR, +# but if you're building small initramfs image +# e.g. to include it in your kernel, you probably +# don't want this dependency, which is causing dependency loop +KERNELDEPMODDEPEND ?= "virtual/kernel:do_packagedata" + do_rootfs[depends] += " \ makedevs-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot ${LDCONFIGDEPEND} \ virtual/update-alternatives-native:do_populate_sysroot update-rc.d-native:do_populate_sysroot \ - virtual/kernel:do_packagedata" + ${KERNELDEPMODDEPEND} \ +" do_rootfs[recrdeptask] += "do_packagedata" def command_variables(d):
Signature · 1 line
2.3.5
PATCH 4/4 fontcache: allow to pass different fontconfig cache dir
In reply to Martin Jansa--- meta/classes/fontcache.bbclass | 4 ++-- meta/recipes-graphics/fontconfig/fontconfig_2.11.1.bb | 4 +++- scripts/postinst-intercepts/update_font_cache | 4 +--- 3 files changed, 6 insertions(+), 6 deletions(-)
meta/classes/fontcache.bbclass +2 -2
@@ -8,11 +8,11 @@ inherit qemu FONT_PACKAGES ??= "${PN}" FONT_EXTRA_RDEPENDS ?= "fontconfig-utils" - +FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig" fontcache_common() { if [ "x$D" != "x" ] ; then $INTERCEPT_DIR/postinst_intercept update_font_cache ${PKG} mlprefix=${MLPREFIX} bindir=${bindir} \ - libdir=${libdir} base_libdir=${base_libdir} localstatedir=${localstatedir} + libdir=${libdir} base_libdir=${base_libdir} fontconfigcachedir=${FONTCONFIG_CACHE_DIR} else fc-cache fi
meta/recipes-graphics/fontconfig/fontconfig_2.11.1.bb +3 -1
@@ -37,6 +37,8 @@ DEBIAN_NOAUTONAME_fontconfig-utils = "1" inherit autotools pkgconfig -EXTRA_OECONF = " --disable-docs --with-default-fonts=${datadir}/fonts" +FONTCONFIG_CACHE_DIR ?= "${localstatedir}/cache/fontconfig" + +EXTRA_OECONF = " --disable-docs --with-default-fonts=${datadir}/fonts --with-cache-dir=${FONTCONFIG_CACHE_DIR}" BBCLASSEXTEND = "native"
scripts/postinst-intercepts/update_font_cache +1 -3
@@ -2,6 +2,4 @@ PSEUDO_UNLOAD=1 qemuwrapper -L $D -E LD_LIBRARY_PATH=$D/${libdir}:$D/${base_libdir}\ $D${bindir}/fc-cache --sysroot=$D -chown -R root:root $D${localstatedir}/cache/fontconfig - - +chown -R root:root $D${fontconfigcachedir}
Signature · 1 line
2.3.5
Quoted 1 line · Martin Jansa
Signed-off-by Martin Jansa <[email protected]>
ping for all 4 changes
Quoted 62 lines
--- ...m-Silence-Werror-maybe-uninitialized-fals.patch | 35 ++++++++++++++++++++++ meta/recipes-devtools/elfutils/elfutils_0.161.bb | 1 + 2 files changed, 36 insertions(+) create mode 100644 meta/recipes-devtools/elfutils/elfutils-0.161/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patchmeta/recipes-devtools/elfutils/elfutils-0.161/0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch new file +35
-0@@ -0,0 +1,35 @@ +From 668accf322fd7185e273bfd50b84320e71d9de5a Mon Sep 17 00:00:00 2001 +From: Martin Jansa <[email protected]> +Date: Fri, 10 Apr 2015 00:29:18 +0200 +Subject: [PATCH] elf_getarsym: Silence -Werror=maybe-uninitialized false + positive + +Upstream-Status: Pending +Signed-off-by: Martin Jansa <[email protected]> +--- + libelf/elf_getarsym.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/libelf/elf_getarsym.c b/libelf/elf_getarsym.c +index d0bb28a..08954d2 100644 +--- a/libelf/elf_getarsym.c ++++ b/libelf/elf_getarsym.c +@@ -165,8 +165,13 @@ elf_getarsym (elf, ptr) + int w = index64_p ? 8 : 4; + + /* We have an archive. The first word in there is the number of +- entries in the table. */ +- uint64_t n; ++ entries in the table. ++ Set to SIZE_MAX just to silence -Werror=maybe-uninitialized ++ elf_getarsym.c:290:9: error: 'n' may be used uninitialized in this function ++ The read_number_entries function doesn't initialize n only when returning ++ -1 which in turn ensures to jump over usage of this uninitialized variable. ++ */ ++ uint64_t n = SIZE_MAX; + size_t off = elf->start_offset + SARMAG + sizeof (struct ar_hdr); + if (read_number_entries (&n, elf, &off, index64_p) < 0) + { +-- +2.3.5 +meta/recipes-devtools/elfutils/elfutils_0.161.bb +1
-0@@ -15,6 +15,7 @@ SRC_URI += "\ file://dso-link-change.patch \ file://Fix_elf_cvt_gunhash.patch \ file://fixheadercheck.patch \ + file://0001-elf_getarsym-Silence-Werror-maybe-uninitialized-fals.patch \ " # pick the patch from debianSignature · 1 line
2.3.5
Signature · 1 line
Martin 'JaMa' Jansa jabber: [email protected]
Quoted 4 lines · Martin Jansa
Quoted 1 line · Martin Jansa
Signed-off-by Martin Jansa <[email protected]>ping for all 4 changes
Ack for all 4 changes
Signature · 3 lines
Otavio Salvador O.S. Systems http://www.ossystems.com.br http://code.ossystems.com.br Mobile: +55 (53) 9981-7854 Mobile: +1 (347) 903-9750
Quoted 4 lines · Martin Jansa
Quoted 1 line · Martin Jansa
Signed-off-by Martin Jansa <[email protected]>ping for all 4 changes
I had hoped the fido maintainer would look at this but evidently not.
I merged three of them, I did not merge the fix which isn't in master. We have a better patch in progress for that one which doesn't seem too invasive so I'm holding for that.
If you are going to propose patches which aren't in master, please mention that.
Cheers,
Richard
Quoted 7 lines · Richard Purdie
Quoted 4 lines · Martin Jansa
Quoted 1 line · Martin Jansa
Signed-off-by Martin Jansa <[email protected]>ping for all 4 changes
I had hoped the fido maintainer would look at this but evidently not.
Apologies, I had looked and even pulled the 3 changes from master into my local testing branch but hadn't completed a test build yet. I shall endeavour to respond more quickly in future.
Quoted 2 lines
If you are going to propose patches which aren't in master, please mention that.
Yes, please do.
Cheers,
Joshua