Landing: 6c1b6e2113ff
Project / Subsystem
binutils / alpha/ld
Date
2026-09-05
Author
Sam James <sjames@sourceware.org>
Commit
6c1b6e2113fff5881432ae22fe7d0197c28486ee
Source
public_inbox
Perf win
No
Breaking
No
All attributes
- project
- binutils
- subsystem
- alpha/ld
- patch_id
- —
- commit_hash
- 6c1b6e2113fff5881432ae22fe7d0197c28486ee
- source_type
- public_inbox
- headline
- Alpha linker rejects unsupported IFUNC relocation types
- tldr
- Alpha linker now rejects relocations like R_ALPHA_BRADDR and R_ALPHA_REFLONG when used with IFUNCs, preventing incorrect linking.
- author
- Sam James <sjames@sourceware.org>
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • alpha
- • linker
- • ifunc
- • relocations
- • elf
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-09-05T00:00:00.000Z
This commit updates the Alpha linker to reject specific relocation types that cannot correctly refer to IFUNC symbols. Relocations such as R_ALPHA_BRADDR, R_ALPHA_BRSGP, general GP-relative relocations, and R_ALPHA_SREL* directly name the symbol, bypassing the IFUNC resolver. R_ALPHA_REFLONG only has a 32-bit field, insufficient for the resolver’s return address. These invalid relocations are now reported, allowing the linker to report all such errors in a single pass.