diff options
author | Sven Wegener <sven.wegener@stealer.net> | 2020-12-28 13:37:27 +0100 |
---|---|---|
committer | Paul Spooren <mail@aparcar.org> | 2020-12-31 12:09:09 -1000 |
commit | c5d033a34d0050dad83567eccd36dc6c7827ffe3 (patch) | |
tree | b49bb39ef9adf92f182ffdd1bcbf28fbb57e583f | |
parent | cc9d5b5a488d3a43068f621a1ef184f06e43bede (diff) | |
download | upstream-c5d033a34d0050dad83567eccd36dc6c7827ffe3.tar.gz upstream-c5d033a34d0050dad83567eccd36dc6c7827ffe3.tar.bz2 upstream-c5d033a34d0050dad83567eccd36dc6c7827ffe3.zip |
tools/fakeroot: remove undefined symbol messages
glibc started to return errors from dlerror() for dlsym() lookup failures which
results in a lot of messages from fakeroot like
dlsym(acl_get_fd): staging_dir/host/lib/libfakeroot.so: undefined symbol: acl_get_fd
dlsym(acl_get_file): staging_dir/host/lib/libfakeroot.so: undefined symbol: acl_get_file
dlsym(acl_set_fd): staging_dir/host/lib/libfakeroot.so: undefined symbol: acl_set_fd
when building OpenWrt using a recent glibc. Use the patch from the upstream
Debian package to silence these messages.
Link: https://bugs.debian.org/830912
Fixes: FS#3393
Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
-rw-r--r-- | tools/fakeroot/Makefile | 1 | ||||
-rw-r--r-- | tools/fakeroot/patches/200-hide-dlsym-error.patch | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/tools/fakeroot/Makefile b/tools/fakeroot/Makefile index 9ab2679626..8c30ee71c3 100644 --- a/tools/fakeroot/Makefile +++ b/tools/fakeroot/Makefile @@ -6,6 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fakeroot PKG_VERSION:=1.24 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz PKG_SOURCE_URL:=http://deb.debian.org/debian/pool/main/f/fakeroot diff --git a/tools/fakeroot/patches/200-hide-dlsym-error.patch b/tools/fakeroot/patches/200-hide-dlsym-error.patch new file mode 100644 index 0000000000..3fd34c8778 --- /dev/null +++ b/tools/fakeroot/patches/200-hide-dlsym-error.patch @@ -0,0 +1,32 @@ +Description: Hide error from dlsym() + dlsym(), starting in glibc 2.24 actually reports errors. In our case, + we try to get ACL functions which are not in the glibc. This causes + failures in test suites, so hide those messages for non-debugging + purposes for now. It also makes the build logs annoying to read. +Author: Julian Andres Klode <juliank@ubuntu.com> +Origin: vendor +Bug-Debian: https://bugs.debian.org/830912 +Forwarded: no +Last-Update: 2016-08-12 + +--- a/libfakeroot.c ++++ b/libfakeroot.c +@@ -256,10 +256,16 @@ void load_library_symbols(void){ + /* clear dlerror() just in case dlsym() legitimately returns NULL */ + msg = dlerror(); + *(next_wrap[i].doit)=dlsym(get_libc(), next_wrap[i].name); ++ + if ( (msg = dlerror()) != NULL){ +- fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg); +-/* abort ();*/ ++#ifdef LIBFAKEROOT_DEBUGGING ++ if (fakeroot_debug) { ++ fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg); ++/* abort ();*/ ++ } ++#endif + } ++ + } + } + |