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.
- 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.