Control: tag -1 moreinfo Hi!
On Thu, 2017-09-07 at 16:16:49 +0100, Dimitri John Ledkov wrote: > Package: dpkg > Version: 1.18.24 > Severity: important > I am attaching the objdump to this bug report. In that log, one can > see that the highest symbol referenced by Dynamic symbol table is for > GLIBC_2.17 which is the dependency dpkg-shlibs generates. > > However, in the `Version References' section, one can see that > GLIBC_2.25 is required. > > The net result is that libc6 (>= 2.17) is generated, instead of the > required libc6 (>= 2.25). > > The binaries are not executable when e.g. 2.24 glibc is installed and > fail like so: > > # ldd /usr/sbin/NetworkManager > /usr/sbin/NetworkManager: /lib/x86_64-linux-gnu/libc.so.6: version > `GLIBC_2.25' not found (required by /usr/sbin/NetworkManager) > > I am not sure how glibc managed to generate a Version reference, > without using any of the dynamic symbols from 2.25. I've built and checked the resulting binary, by objdump'ing everything I could think of, and I was unable to see why the version reference had been picked up. > Reading the code, it seems like maybe dpkg-shlibdeps needs to grow the > ability to parse "Version References" section of the objdump and use > version symbols referenced there to bump up requirements just like > dynamic symbols do? Before doing that I'd like to first understand why that is the case, if it's expected and not a bug in the toolchain or similar. Thanks, Guillem