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

Reply via email to