Browse Source

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 <[email protected]>
Signed-off-by: Florian Fainelli <[email protected]>

SVN-Revision: 36107
Florian Fainelli 13 years ago
parent
commit
3810cc0f46
2 changed files with 3 additions and 3 deletions
  1. 1 1
      package/base-files/Makefile
  2. 2 2
      package/base-files/files/lib/upgrade/common.sh

+ 1 - 1
package/base-files/Makefile

@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 include $(INCLUDE_DIR)/version.mk
 
 PKG_NAME:=base-files
-PKG_RELEASE:=134
+PKG_RELEASE:=135
 
 PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
 PKG_BUILD_DEPENDS:=opkg/host

+ 2 - 2
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 {