Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 754753 - sys-devel/binutils-2.35.1 readelf binary linked against host libdebuginfod, fails to run
Summary: sys-devel/binutils-2.35.1 readelf binary linked against host libdebuginfod, f...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
: 760411 (view as bug list)
Depends on:
Blocks:
 
Reported: 2020-11-15 17:38 UTC by Jason Cooper
Modified: 2021-01-05 17:32 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Cooper 2020-11-15 17:38:48 UTC
All,

I was recently trying to setup a Gentoo Prefix install on my Arch Linux development box.

STR:

```bash
cd
$ ./bootstrap-prefix.sh

# ... whole bunch of output as usual, then:

make[3]: Leaving directory '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/work/attr-2.4.48-abi_x86_64.amd64'
libtool: warning: 'libattr.la' has not been installed in '/home/jason/gentoo/usr/lib64'
libtool: install: /usr/bin/install -c .libs/attr /home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/image/home/jason/gentoo/bin/attr
libtool: warning: 'libattr.la' has not been installed in '/home/jason/gentoo/usr/lib64'
libtool: install: /usr/bin/install -c .libs/getfattr /home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/image/home/jason/gentoo/bin/getfattr
libtool: warning: 'libattr.la' has not been installed in '/home/jason/gentoo/usr/lib64'
libtool: install: /usr/bin/install -c .libs/setfattr /home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/image/home/jason/gentoo/bin/setfattr
make[2]: Leaving directory '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/work/attr-2.4.48-abi_x86_64.amd64'
make[1]: Leaving directory '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/work/attr-2.4.48-abi_x86_64.amd64'
x86_64-pc-linux-gnu-readelf: error while loading shared libraries: libdebuginfod.so.1: cannot open shared object file: No such file or directory
x86_64-pc-linux-gnu-readelf: error while loading shared libraries: libdebuginfod.so.1: cannot open shared object file: No such file or directory
# readelf -V /home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/image/home/jason/gentoo/usr/lib64/libattr.so.1

# readelf -sW /home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/image/home/jason/gentoo/usr/lib64/libattr.so.1

 * ERROR: sys-apps/attr-2.4.48-r4::gentoo failed (install phase):
 *   symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048
 *
 * Call stack:
 *     ebuild.sh, line  125:  Called src_install
 *   environment, line 2100:  Called multilib-minimal_src_install
 *   environment, line 1439:  Called multilib_foreach_abi 'multilib-minimal_abi_src_install'
 *   environment, line 1672:  Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_install'
 *   environment, line 1326:  Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_install'
 *   environment, line 1324:  Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_install'
 *   environment, line  422:  Called multilib-minimal_abi_src_install
 *   environment, line 1429:  Called multilib_src_install
 *   environment, line 1903:  Called die
 * The specific snippet of code:
 *               die "symbol version sanity check failed; please comment on https://bugs.gentoo.org/644048";
 *
 * If you need support, post the output of `emerge --info '=sys-apps/attr-2.4.48-r4::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-apps/attr-2.4.48-r4::gentoo'`.
 * The complete build log is located at '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/temp/build.log'.
 * The ebuild environment file is located at '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/temp/environment'.
 * Working directory: '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/work/attr-2.4.48-abi_x86_64.amd64'
 * S: '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/work/attr-2.4.48'

>>> Failed to emerge sys-apps/attr-2.4.48-r4, Log file:

>>>  '/home/jason/gentoo/var/tmp/portage/sys-apps/attr-2.4.48-r4/temp/build.log'
```

Specifically:

```bash
x86_64-pc-linux-gnu-readelf: error while loading shared libraries: libdebuginfod.so.1: cannot open shared object file: No such file or directory
```

I checked all of the build products of sys-apps/attr, and none were linked against libdebuginfod.  Additionally, elfutils is built without debuginfod, so there is no libdebuginfod.* underneath $HOME/gentoo/.

It turns out that the readelf binary in the prefix is mistakenly built against the host system (Arch Linux)'s copy of libdebuginfod.  As can be seen here:

```bash
$ ldd gentoo/usr/bin/x86_64-pc-linux-gnu-readelf
        linux-vdso.so.1 (0x00007ffd51bd6000)
        libctf-nobfd.so.0 => /home/jason/gentoo/usr/lib64/binutils/x86_64-pc-linux-gnu/2.35.1/libctf-nobfd.so.0 (0x00007fcb67f71000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00007fcb67f34000)
        libdebuginfod.so.1 => /usr/lib/libdebuginfod.so.1 (0x00007fcb67f2d000)  # <======= oops
        libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fcb67f27000)
        libc.so.6 => /usr/lib/libc.so.6 (0x00007fcb67d5e000)
        libcurl.so.4 => /usr/lib/libcurl.so.4 (0x00007fcb67cc8000)
        /home/jason/gentoo/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fcb68037000)
        libnghttp2.so.14 => /usr/lib/libnghttp2.so.14 (0x00007fcb67c9a000)
        libidn2.so.0 => /usr/lib/libidn2.so.0 (0x00007fcb67c79000)
        libssh2.so.1 => /usr/lib/libssh2.so.1 (0x00007fcb67c39000)
        libpsl.so.5 => /usr/lib/libpsl.so.5 (0x00007fcb67c26000)
        libssl.so.1.1 => /usr/lib/libssl.so.1.1 (0x00007fcb67b96000)
        libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 (0x00007fcb678b8000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00007fcb67861000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00007fcb6777b000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00007fcb6774a000)
        libcom_err.so.2 => /usr/lib/libcom_err.so.2 (0x00007fcb67744000)
        libzstd.so.1 => /usr/lib/libzstd.so.1 (0x00007fcb67672000)
        libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fcb67650000)
        libunistring.so.2 => /usr/lib/libunistring.so.2 (0x00007fcb674cc000)
        libkrb5support.so.0 => /usr/lib/libkrb5support.so.0 (0x00007fcb674bd000)
        libkeyutils.so.1 => /usr/lib/libkeyutils.so.1 (0x00007fcb674b6000)
        libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007fcb6749c000)
```

How can I fix this?  No warnings were thrown by the bootstrap script.
Comment 1 Jason Cooper 2020-11-18 15:03:34 UTC
Update:  I now have Prefix installed and working on Arch Linux!

My hack to make it work was to move the host's libdebuginfod libraries and pkgconfig files out of the way.  I don't debuginfod, so I'm not too worried about it.

Anyway, after that hack, things went smoothly.  I was able to update gentoo, install crossdev, and begin building toolchains.  Although, -musl toolchains did require one build patch.  See https://bugs.gentoo.org/755071
Comment 2 CoelacanthusHex 2020-11-27 07:59:03 UTC
Same here, also Arch Linux Host.
Comment 3 Fabian Groffen gentoo-dev 2021-01-03 10:52:11 UTC
*** Bug 760411 has been marked as a duplicate of this bug. ***
Comment 4 Fabian Groffen gentoo-dev 2021-01-03 10:56:31 UTC
@toolchain: '--with-debuginfod' defaults to auto, which in case of Arch linux host, finds debuginfod.  (automagic)

I see no provisions in the ebuild for this, are you OK with unconditionally adding --without-debuginfod to the econf call?

Thanks
Comment 5 Sergei Trofimovich (RETIRED) gentoo-dev 2021-01-03 13:06:57 UTC
Yeah, it should be file. I'll add the options.
Comment 6 Larry the Git Cow gentoo-dev 2021-01-03 13:23:58 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fee7ec7b350ff17e64fd136c84cf6279c93255c9

commit fee7ec7b350ff17e64fd136c84cf6279c93255c9
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2021-01-03 13:14:34 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2021-01-03 13:19:38 +0000

    sys-devel/binutils: expliictly disable debuginfod
    
    Fixed-by: Fabian Groffen
    Reported-by: Jason Cooper
    Closes: https://bugs.gentoo.org/754753
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-devel/binutils/binutils-2.34-r2.ebuild   | 6 +++++-
 sys-devel/binutils/binutils-2.35.1-r1.ebuild | 6 +++++-
 sys-devel/binutils/binutils-2.35.1.ebuild    | 6 +++++-
 sys-devel/binutils/binutils-9999.ebuild      | 6 +++++-
 4 files changed, 20 insertions(+), 4 deletions(-)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=864294c55ff5c1a6c4dc6a473e415b7326868cf9

commit 864294c55ff5c1a6c4dc6a473e415b7326868cf9
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2021-01-03 13:19:24 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2021-01-03 13:19:37 +0000

    sys-libs/binutils-libs: expliictly disable debuginfod
    
    Fixed-by: Fabian Groffen
    Reported-by: Jason Cooper
    Bug: https://bugs.gentoo.org/754753
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-libs/binutils-libs/binutils-libs-2.34-r2.ebuild   | 6 +++++-
 sys-libs/binutils-libs/binutils-libs-2.35.1-r1.ebuild | 6 +++++-
 sys-libs/binutils-libs/binutils-libs-2.35.1.ebuild    | 6 +++++-
 3 files changed, 15 insertions(+), 3 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3776a155ad89d1ed4b0c475c7467a6f10340f11

commit a3776a155ad89d1ed4b0c475c7467a6f10340f11
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2021-01-03 13:16:07 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2021-01-03 13:19:37 +0000

    sys-devel/binutils-hppa64: expliictly disable debuginfod
    
    Fixed-by: Fabian Groffen
    Reported-by: Jason Cooper
    Bug: https://bugs.gentoo.org/754753
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-devel/binutils-hppa64/binutils-hppa64-2.34-r2.ebuild   | 6 +++++-
 sys-devel/binutils-hppa64/binutils-hppa64-2.35.1-r1.ebuild | 6 +++++-
 sys-devel/binutils-hppa64/binutils-hppa64-2.35.1.ebuild    | 6 +++++-
 3 files changed, 15 insertions(+), 3 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cef85020eeed3ea2e89aeb0bd78fb4623738bbbf

commit cef85020eeed3ea2e89aeb0bd78fb4623738bbbf
Author:     Sergei Trofimovich <slyfox@gentoo.org>
AuthorDate: 2021-01-03 13:11:28 +0000
Commit:     Sergei Trofimovich <slyfox@gentoo.org>
CommitDate: 2021-01-03 13:14:42 +0000

    sys-devel/gdb: expliictly disable debuginfod
    
    Fixed-by: Fabian Groffen
    Reported-by: Jason Cooper
    Bug: https://bugs.gentoo.org/754753
    Package-Manager: Portage-3.0.12, Repoman-3.0.2
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

 sys-devel/gdb/gdb-10.1.ebuild | 6 +++++-
 sys-devel/gdb/gdb-9999.ebuild | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
Comment 7 Sergei Trofimovich (RETIRED) gentoo-dev 2021-01-03 13:24:47 UTC
Please give it a try. I lightly tested that options are passed.
Comment 8 Joey Dumont 2021-01-04 13:04:30 UTC
I wasn't exactly sure how to test that, as env EXPORT_LATEST_TREE=1 ./bootstrap-prefix.sh didn't fetch these modified ebuilds, so I bootstrapped up to stage1, added a local repo with the new binutils-2.35.1-r1 ebuild to both stage2 and stage3 portage (i.e. ${EPREFIX}/var/db/repos/local and ${EPREFIX}/tmp/var/db/repos/local, I'm assuming those are stage2 and stage3 portage trees, but I'm not sure).

After I did that, the rest of the bootstrap process went fine. Thank you for spending time on this!
Comment 9 Fabian Groffen gentoo-dev 2021-01-04 13:08:52 UTC
Ah, yes, thanks for taking the time to go through these hoops!  This was quite a decoy, but glad we found the culprit at last.
Comment 10 Joey Dumont 2021-01-04 14:20:32 UTC
No worries. 

Let me know when the new changes hit the main tree: I could test the bootstrap again on Arch, and we could maybe add Arch back to the https://wiki.gentoo.org/wiki/Prefix/tested page, if you would like.
Comment 11 Fabian Groffen gentoo-dev 2021-01-04 14:25:09 UTC
Thanks, I'll bump the snapshot with tonights build tomorrow
Comment 12 Larry the Git Cow gentoo-dev 2021-01-05 08:47:15 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=6fd9932cd2bf2cdcdab00d0915e289114104b99e

commit 6fd9932cd2bf2cdcdab00d0915e289114104b99e
Author:     Fabian Groffen <grobian@gentoo.org>
AuthorDate: 2021-01-05 08:44:01 +0000
Commit:     Fabian Groffen <grobian@gentoo.org>
CommitDate: 2021-01-05 08:44:01 +0000

    scripts/bootstrap-prefix: bump snapshot for misc fixes
    
    - Darwin: Python, Portage
    - Linux: binutils
    
    Bug: https://bugs.gentoo.org/754753
    Signed-off-by: Fabian Groffen <grobian@gentoo.org>

 scripts/bootstrap-prefix.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Comment 13 Joey Dumont 2021-01-05 17:32:05 UTC
Can confirm that the bootstrap script now completes on Arch Linux.