base-files: sysupgrade fail with eglibc
authorFlorian Fainelli <florian@openwrt.org>
Fri, 22 Mar 2013 10:06:06 +0000 (10:06 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Fri, 22 Mar 2013 10:06:06 +0000 (10:06 +0000)
commit3810cc0f4605175b9d0d653e6f3de5cffbb29064
treea3f43dc384325099c94333281e1cc8577b7c831d
parent18c47be19a356aac4b4f992bc275de3f23f4913c
base-files: sysupgrade fail with eglibc

With eglibc, "ldd busybox" give us
    libcrypt.so.1 => /lib/libcrypt.so.1 (0x774be000)
    libm.so.6 => /lib/libm.so.6 (0x773e4000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x773c0000)
    libc.so.6 => /lib/libc.so.6 (0x77276000)
    /lib/ld.so.1 (0x774fe000)

Thus /lib/ld.so.1 is not printed by the libs fonction and isn't copied to the 'new' root before pivot root
libs() { ldd $* | awk '{print $3}'; }
https://dev.openwrt.org/browser/trunk/package/base-files/files/lib/upgrade/common.sh

With uclibc the last line of "ldd busybox" is
    ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x77ada000)

Don't know for musl!

This patch replace https://dev.openwrt.org/changeset/19167, as glibc is gone
The other way around is to rework libs()

Please apply the fix (mine or another) on trunk and AA
Might fix https://dev.openwrt.org/ticket/12273

Signed-off-by: Etienne CHAMPETIER <etienne.champetier@free.fr>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 36107
package/base-files/Makefile
package/base-files/files/lib/upgrade/common.sh