binutils Newspaper
OCTOBER 6, 2026
alpha — Proposed

alpha: run the ld-ifunc tests

Enables ld-ifunc tests for the alpha target.

This patch removes the alpha target from the skip list in ld-ifunc/ifunc.exp, thereby enabling the indirect function (IFUNC) tests for alpha. The tests were run using an alpha-linux-gnu cross toolchain, and only the linker tests were supported in that configuration. One test, ifunc-26, is expected to continue failing due to known limitations related to .set directives and assembly modes.

In Details

This patch enables the ld-ifunc test suite for the alpha target by removing it from the skip_target_list in ld/testsuite/ld-ifunc/ifunc.exp. It also updates ld/NEWS to document alpha's support for IFUNC symbols and the new R_ALPHA_IRELATIVE relocation. The patch notes that ifunc-26 remains an expected failure because the test's use of .set is misinterpreted by the alpha assembler, which is a known issue.

For Context
IFUNC
Indirect Function. A mechanism allowing functions to be resolved at runtime, often used for performance optimization or selecting architecture-specific implementations.
ld
The GNU linker, responsible for combining object files and libraries into an executable or shared library.
R_ALPHA_IRELATIVE
A dynamic relocation type specific to the Alpha architecture, used for resolving indirect function addresses at runtime.
PIC
Position-Independent Code. Code that can be loaded and run at any memory address without modification.
dynamic linker
A system component that resolves dynamic dependencies (shared libraries) when a program is loaded into memory or during runtime.
C library startup code
The initial code executed when a program starts, responsible for setting up the environment before the main function is called. This includes handling dynamic linking.
Filed Under: binutilsalphalinkerIFUNCtestsuite