e2fsprogs: avoid picking up incompatible libcom_err.so
authorJo-Philipp Wich <jo@mein.io>
Wed, 30 Nov 2016 22:25:17 +0000 (23:25 +0100)
committerJo-Philipp Wich <jo@mein.io>
Wed, 30 Nov 2016 22:32:17 +0000 (23:32 +0100)
Commit 2728512 ("e2fsprogs: List all libraries explicitly") forced the
e2fsprogs build system to link libcom_err.so in various places.

Unfortunately, the krb5 package also ships a libcom_err.so with a totally
different ABI and puts it into the global staging directory which causes
e2fsprogs to pick up this wrong library, leading to the following failure:

     LD blkid
    ../lib/libext2fs.so: undefined reference to `_et_list'
    collect2: error: ld returned 1 exit status
    Makefile:504: recipe for target 'blkid' failed

Change the SYSLIBS specification to explicitely link libcom_err.so.0.0
which in order to work around the problem.

In the long run, the libcom_err clash between e2fsprogs and krb5 needs to
be solved properly.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
package/utils/e2fsprogs/Makefile

index 6932a4b..cf84c26 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=e2fsprogs
 PKG_VERSION:=1.43.3
 PKG_MD5SUM:=ce8ef1bbb0d4730f170167284fda156ac9d6bf18db2750eb94af619a81b19927
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/e2fsprogs
@@ -140,7 +140,7 @@ define Build/Compile
                DESTDIR="$(PKG_INSTALL_DIR)" \
                LIBBLKID="$(PKG_BUILD_DIR)/lib/libblkid.a -luuid" \
                ELF_OTHER_LIBS="$(TARGET_LDFLAGS) -luuid" \
-               SYSLIBS="$(TARGET_LDFLAGS) -ldl -L$(PKG_BUILD_DIR)/lib/ -lcom_err" \
+               SYSLIBS="$(TARGET_LDFLAGS) -ldl -L$(PKG_BUILD_DIR)/lib/ -l:libcom_err.so.0.0" \
                V=$(if $(findstring c,$(OPENWRT_VERBOSE)),1,) \
                all
 endef