Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 949621 - dev-libs/protobuf-c-1.5.1: fails to install (install: cannot stat 'protobuf-c/.libs/libprotobuf-c.so.1.0.0': No such file or directory)
Summary: dev-libs/protobuf-c-1.5.1: fails to install (install: cannot stat 'protobuf-c...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: systemwide-clang
  Show dependency tree
 
Reported: 2025-02-11 15:32 UTC by Oleksa
Modified: 2025-02-27 13:47 UTC (History)
1 user (show)

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


Attachments
dev-libs/protobuf-c-1.5.1 build log (build.log,171.88 KB, text/plain)
2025-02-11 15:32 UTC, Oleksa
Details
emegre.info env. (emerge.info,11.70 KB, text/plain)
2025-02-11 15:33 UTC, Oleksa
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Oleksa 2025-02-11 15:32:31 UTC
Created attachment 918754 [details]
dev-libs/protobuf-c-1.5.1 build log

Hello there!
It is impossible to install dev-libs/protobuf-c-1.5.1 after successful compilation.

I see message:

install: cannot stat 'protobuf-c/.libs/libprotobuf-c.so.1.0.0': No such file or directory
install-xattr: failed to stat /var/tmp/portage/dev-libs/protobuf-c-1.5.1/image/usr/lib64/libprotobuf-c.so.1.0.0: No such file or directory

Full log added.
Comment 1 Oleksa 2025-02-11 15:33:25 UTC
Created attachment 918755 [details]
emegre.info env.
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-12 06:34:15 UTC
I suspect it's a parallel build issue. Does MAKEOPTS="-j1" work?
Comment 3 Oleksa 2025-02-12 08:08:12 UTC
Hello!

I've fixed MAKEOPTS="-j1" and got the same result: 

install: cannot stat 'protobuf-c/.libs/libprotobuf-c.so.1.0.0': No such file or directory
Comment 4 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-12 08:15:31 UTC
I bet it works if you try with GCC. I think this might be an old libtool thing.
Comment 5 Oleksa 2025-02-14 19:17:52 UTC
Hello, Sam!

Thank You for information. Yes, it was correct - I've switched to GCC ans J=1 and issue was solved.

Ticket can be closed as well
Comment 6 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-25 23:33:24 UTC
We may want/need to add a patch to elt-patches to help this for old libtool.
Comment 7 Holger Hoffstätte 2025-02-26 14:32:05 UTC
I observed the same problem (libtool just skipping the link step from .la to .so) in the various xf86-input/video drivers when they were rebuilt due to the xorg-server update. When diffing the configure logs I noticed that it decided that "/usr/lib/llvm/19/bin/x86_64-pc-linux-gnu-ld" is "not the GNU linker" and then generously skipped the link step. Passing LD=ld made it work.
Comment 8 Holger Hoffstätte 2025-02-26 21:30:57 UTC
(In reply to Holger Hoffstätte from comment #7)
> I observed the same problem (libtool just skipping the link step from .la to
> .so) in the various xf86-input/video drivers when they were rebuilt due to
> the xorg-server update. When diffing the configure logs I noticed that it
> decided that "/usr/lib/llvm/19/bin/x86_64-pc-linux-gnu-ld" is "not the GNU
> linker" and then generously skipped the link step. Passing LD=ld made it
> work.

That's because my installation of lld was broken (completely unrelated problem), and the check said "no". It answered "yes" on another system, where everything worked. Sorry for the noise.

However it does mean that this:

> checking if the linker (lld) is GNU ld... no

is the reason for libtool skipping the link step.
Comment 9 Holger Hoffstätte 2025-02-27 13:47:13 UTC
$CC=clang CXX=clang++ LD=lld ebuild protobuf-c-1.5.1.ebuild clean configure
...
checking for ld used by clang... lld
checking if the linker (lld) is GNU ld... no
...

vs.

$CC=CC=clang CXX=clang++ LD=ld.lld ebuild protobuf-c-1.5.1.ebuild clean configure
...
checking for ld used by clang... ld.lld
checking if the linker (ld.lld) is GNU ld... yes
...

libtool checks ld output with -v:

$lld -v
lld is a generic driver.
Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld (WebAssembly) instead

vs.

$ld.lld -v
LLD 19.1.7 (compatible with GNU linkers)