On Sun, 2014-08-24 at 21:24 +0100, Ian Campbell wrote: > I've timed out for now, but I'll continue prodding as I have the > chance...
I caught up with Adam Conrad a debconf and he pointed out that __aeabi_* are some weird internal ABI thing which doesn't actually indicate an unresolved symbol. IOW they should be ignored, dpkg-shlibs does this too (search for __aeabi_ in /usr/share/perl5/Dpkg/Shlibs/SymbolFile.pm) Rebuilding the installer with mklibs patches as below seems to work, in that I can "chroot tmp/network-console/tree/ /bin/sh" and then in the chroot "/usb/sbin/sshd --help" runs and produces output. If the symbol were actually required at runtime then this would have failed with some sort of dynamic linker error. This: # LD_TRACE_LOADED_OBJECTS=1 /lib/ld-linux-armhf.so.3 /usr/sbin/sshd libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0xb6ddd000) libutil.so.1 => /lib/libutil.so.1 (0xb6dcb000) libz.so.1 => /usr/lib/libz.so.1 (0xb6da9000) libcrypt.so.1 => /lib/libcrypt.so.1 (0xb6d6c000) libc.so.6 => /lib/libc.so.6 (0xb6cc1000) /lib/ld-linux-armhf.so.3 (0xb6f7c000) libdl.so.2 => /lib/libdl.so.2 (0xb6cb0000) indicates that the ssh binary is indeed using those libraries which appear to depend on the problematic symbol. What's not clear is why this is just occurring now. I suppose changes to gcc/glibc or something have caused it to be exposed. I don't propose to dig much deeper into that aspect (mostly on the basis that if dpkg-shlibs does it mklibs should too). So I think we should upload a new mklibs and have a new debian-installer upload which buidld-deps on it. Ian. >From cf0887e69d4d150e240fa3770e03464ed79aa442 Mon Sep 17 00:00:00 2001 From: Ian Campbell <i...@hellion.org.uk> Date: Mon, 25 Aug 2014 02:22:15 +0100 Subject: [PATCH] Ignore all ARM EABI symbols (__aeabi_*) --- debian/changelog | 7 +++++++ src/mklibs | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/debian/changelog b/debian/changelog index e9afd36..303e1c1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mklibs (0.1.40) UNRELEASED; urgency=medium + + * Ignore all ARM EABI symbols (__aeabi_*). These are artefacts of the ABI and + not real symbols which need to be present. + + -- Ian Campbell <i...@hellion.org.uk> Mon, 25 Aug 2014 02:08:09 +0100 + mklibs (0.1.39) unstable; urgency=medium * Sort objects and libraries to reduce entropy in the output, which diff --git a/src/mklibs b/src/mklibs index d9b784b..1f3d60f 100755 --- a/src/mklibs +++ b/src/mklibs @@ -137,6 +137,14 @@ class UndefinedSymbol(Symbol): super(UndefinedSymbol, self).__init__(name, version, library) self.weak, self.library = weak, library +def symbol_is_blacklisted(name): + # The ARM Embedded ABI spec states symbols under this namespace as + # possibly appearing in output objects. + if name.startswith("__aeabi_"): + return True + + return False + # Return undefined symbols in an object as a set of tuples (name, weakness) def undefined_symbols(obj): if not os.access(obj, os.F_OK): @@ -148,6 +156,9 @@ def undefined_symbols(obj): for line in output: name, weak_string, version_string, library_string = line.split()[:4] + if symbol_is_blacklisted(name): + continue + weak = False if weak_string.lower() == 'true': weak = True -- 2.0.1 -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org