[New-bugs-announce] [issue40739] find_library broken for binutils >= 2.32 / 2.34

Frederik Rietdijk report at bugs.python.org
Sat May 23 03:41:27 EDT 2020


New submission from Frederik Rietdijk <fridh at fridh.nl>:

With binutils 2.34 Python 3 (any version) the following returns None

    python3 -c 'import ctypes.util; print((ctypes.util.find_library("c")))'

instead of the requested library which we think may be caused by https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=727a29badd95a68d08b86fec0b98702ce756c660
which is included in binutils 2.32 and up.


With binutils at 2.31 we got

# recent unstable
$ nix-shell --pure -p hello --run 'ld -t -o /dev/null -lc'
/nix/store/a57856fs4m8ir6vlv14h3gq3sv9aq2lb-binutils-2.31.1/bin/ld: mode elf_x86_64
/nix/store/nwsn18fysga1n5s0bj4jp4wfwvlbx8b1-glibc-2.30/lib/libc.so.6
/nix/store/nwsn18fysga1n5s0bj4jp4wfwvlbx8b1-glibc-2.30/lib/ld-linux-x86-64.so.2
/nix/store/nwsn18fysga1n5s0bj4jp4wfwvlbx8b1-glibc-2.30/lib/ld-linux-x86-64.so.2
/nix/store/a57856fs4m8ir6vlv14h3gq3sv9aq2lb-binutils-2.31.1/bin/ld: warning: cannot find entry symbol _start; not setting start address

however with 2.34 we get

# current staging
$ nix-shell --pure -p hello --run 'ld -t -o /dev/null -lc'
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/libc.so
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/libc.so.6
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/libc_nonshared.a
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/ld-linux-x86-64.so.2
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/libc_nonshared.a
/nix/store/j1l6ds4mhm97nqw965w9sg07i9fric4d-glibc-2.30/lib/ld-linux-x86-64.so.2
/nix/store/j284mk8hdv9ccxfdlhcdk1lg2jml4fhk-binutils-2.34/bin/ld: warning: cannot find entry symbol _start; not setting start address

The text-file libc.so is present which find_library cannot handle.

I suppose the regex needs to be fixed to exclude these references or otherwise handle them. It may be a bit late for binutils to revert their change.

Note this issue was discovered with the CFFI test suite https://foss.heptapod.net/pypy/cffi/blob/2aa5775ffdd6a911e9f40e3c2f5ba766155349c5/c/test_c.py#L60

Nixpkgs issue: https://github.com/NixOS/nixpkgs/pull/86954#issuecomment-632985576

----------
components: ctypes
messages: 369699
nosy: Frederik Rietdijk
priority: normal
severity: normal
status: open
title: find_library broken for binutils >= 2.32 / 2.34
type: behavior
versions: Python 3.10, Python 3.5, Python 3.6, Python 3.7, Python 3.8, Python 3.9

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40739>
_______________________________________


More information about the New-bugs-announce mailing list