Bug 1219745 - ARM binutils no longer load LTO plugin automatically
Summary: ARM binutils no longer load LTO plugin automatically
Status: RESOLVED WORKSFORME
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Development (show other bugs)
Version: Current
Hardware: armv7 openSUSE Tumbleweed
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: Michael Matz
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-02-08 20:44 UTC by Bruno Pitrus
Modified: 2024-07-16 18:39 UTC (History)
0 users

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bruno Pitrus 2024-02-08 20:44:34 UTC
Since the latest ARM tumbleweed snapshot, several packages i maintain (in “experimental” projects) have failed building on armv7 and armv6 due to an underlink:

signal-desktop: https://build.opensuse.org/package/live_build_log/network:im:signal/signal-desktop/openSUSE_Tumbleweed/armv7l

Here you can see %check detecting undefined symbols in `better_sqlite3.node` (they should have come from `Release/obj.target/deps/sqlite3.a`) and in `libsignal_client_linux_arm.node` (they should have come from `-lssl -lcrypto` — here it refers a custom boringssl build, NOT the system openssl3)

code:
https://build.opensuse.org/package/live_build_log/devel:tools:ide:vscode/code/openSUSE_Tumbleweed/armv7l

Here an undefined symbol in a library that is not shipped (only used during build) causes dlopen to fail. I have run this build locally (under qemu-user — i don't have arm hardware) and verified that `tree_sitter_runtime_binding.node` indeed fails to include the `Release/obj.target/tree_sitter.a` archive that was specifed on the linker commandline.
Comment 1 Bruno Pitrus 2024-02-09 14:35:04 UTC
I have noticed the following warning appearing multiple times in the buildlog which clues us to the nature of the problem:

BFD: Release/obj.target/tree_sitter/vendor/tree-sitter/lib/src/lib.o: plugin needed to handle lto object

…indeed, setting AR=gcc-ar NM=gcc-nm RANLIB=gcc-ranlib works around this problem.
Comment 2 Bruno Pitrus 2024-07-16 18:39:06 UTC
has worked for a while normally