diff options
author | Florian Fainelli <florian@openwrt.org> | 2013-03-22 10:06:06 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2013-03-22 10:06:06 +0000 |
commit | 3810cc0f4605175b9d0d653e6f3de5cffbb29064 (patch) | |
tree | a3f43dc384325099c94333281e1cc8577b7c831d /package/base-files/files/lib/upgrade | |
parent | 18c47be19a356aac4b4f992bc275de3f23f4913c (diff) | |
download | upstream-3810cc0f4605175b9d0d653e6f3de5cffbb29064.tar.gz upstream-3810cc0f4605175b9d0d653e6f3de5cffbb29064.tar.bz2 upstream-3810cc0f4605175b9d0d653e6f3de5cffbb29064.zip |
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
Diffstat (limited to 'package/base-files/files/lib/upgrade')
-rw-r--r-- | package/base-files/files/lib/upgrade/common.sh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/package/base-files/files/lib/upgrade/common.sh b/package/base-files/files/lib/upgrade/common.sh index df842bf922..fbe54a5ee5 100644 --- a/package/base-files/files/lib/upgrade/common.sh +++ b/package/base-files/files/lib/upgrade/common.sh @@ -21,8 +21,8 @@ install_bin() { # <file> [ <symlink> ... ] files=$1 [ -x "$src" ] && files="$src $(libs $src)" install_file $files - [ -e /lib/ld-linux.so.3 ] && { - install_file /lib/ld-linux.so.3 + [ -e /lib/ld.so.1 ] && { + install_file /lib/ld.so.1 } shift for link in "$@"; do { |