binutils Newspaper
OCTOBER 6, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
alpha/ld

Enable IFUNC tests for alpha

Alpha target now runs indirect function (IFUNC) tests, improving support for dynamic linking features.

This commit enables the indirect function (IFUNC) tests for the alpha target by removing it from the skip list in ifunc.exp. It also updates the ld/NEWS file to reflect that the alpha target supports IFUNCs using the new R_ALPHA_IRELATIVE relocation, though a matching C library is still required for runtime execution. Static linking of IFUNC addresses is noted as unsupported.

In Details

This change enables ld/testsuite/ld-ifunc/ifunc.exp for alpha targets. It notes that R_ALPHA_IRELATIVE is the dynamic relocation used for IFUNCs on alpha, but dynamic linker or C library startup code for this relocation is not yet present. Static linking of an IFUNC address is not supported. The test ifunc-26 remains an expected failure due to symbol definition handling in the assembler.

For Context
IFUNC
Indirect Function. A mechanism that allows a function call to be resolved at runtime to one of potentially several implementations, typically based on system features or hardware capabilities. This is also known as GNU_IFUNC.
R_ALPHA_IRELATIVE
An ELF relocation type specific to the Alpha architecture, used for indirect function calls. It indicates that the relocation value should be the address of the symbol plus an addend, which is typically used to calculate the address of the IFUNC resolver.
static link
A type of linking where all necessary code and data from libraries are copied directly into the final executable. This results in a larger executable but does not require external shared libraries at runtime.
dynamic link
A type of linking where the executable contains references to libraries, and these libraries are loaded and linked at runtime. This results in smaller executables and allows libraries to be shared among multiple programs.
Filed Under: alphalinkerifuncrelocations