GCC linking fails due to incorrect `libgcc` link order
@nradakovic ci sta già lavorando.
Dal 29/4/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Description
We are encountering linker failures on AArch64 builds caused by unresolved outlined atomic helper symbols such as:
__aarch64_ldadd4_acq_rel
__aarch64_cas2_acq_rel
__aarch64_swp4_acq_rel
These symbols are emitted by GCC when compiling with outlined atomics (default on AArch64) and are expected to be resolved from libgcc.
We verified that the toolchain-provided libgcc.a does contain these symbols, so the issue is not missing runtime support.
Root Cause
Root Cause
The problem appears to be link order / link grouping when using static libraries:
- The link uses a large number of static archives (
-Wl,-Bstatic) -nodefaultlibsis enabled, so runtime libraries must be added explicitlylibgccis either:- added too early, or
- not grouped with dependent static libraries
Because of this, the linker does not pull in the required objects from libgcc.a when resolving references originating from later static libraries.
This is a standard static linking behavior: archives are only searched once, left-to-right.
Proposed Fix
Ensure that libgcc (and related runtime libs) are linked after all static libraries that may reference them.
Two valid approaches:
Option 1 — Late linkage
Add at the end of the link command:
-lgcc
-lgcc_eh
Option 2 — Link group (more robust for large static graphs)
-Wl,--start-group
<all static libraries>
-lgcc
-lgcc_eh
-Wl,--end-group
Expected Changes ot work products
- Requirements
- Architecture
- Safety Analysis
- Security Analysis
- Detailed Design
- Implementation and Testing
- all
Impact analysis
NA
Safety or Security relevance
- none
- Safety relevant
- Security relevant
Expected required ASIL classification
QM
Expected Implementation Version (Release)
1.0
- Lingua principale
- Starlark
- Stelle
- 2
- Fork
- 11
- Merge medio
- 1g 17h
- PR unite (30g)
- 11
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di eclipse-score/bazel_cpp_toolchains
-
eclipse-score/bazel_cpp_toolchains#147 · 1 assegnatario ·
-
action config documentation feature improvements p3 template
eclipse-score/bazel_cpp_toolchains#138 · 1 commento · 1 assegnatario ·
-
eclipse-score/bazel_cpp_toolchains#129 · 1 assegnatario ·
-
blocked bug p2 toolchain pkg
eclipse-score/bazel_cpp_toolchains#68 · 27 commenti · 1 assegnatario ·