Add alpha*-* to the list of targets that default to --enable-gnu-indirect-function on glibc-based Linux systems. This sets HAVE_GNU_INDIRECT_FUNCTION=1, making targetm.has_ifunc_p() return true and enabling __attribute__((ifunc)) support.
No Alpha backend changes are needed — the generic ifunc machinery in varasm.cc handles emission, and alpha/elf.h already provides the required ASM_OUTPUT_TYPE_DIRECTIVE and ASM_OUTPUT_DEF macros. Requires binutils support for R_ALPHA_IRELATIVE and glibc dynamic linker support for the new relocation. The binutils patch series adding STT_GNU_IFUNC and R_ALPHA_IRELATIVE support has been sent to the binutils list: https://sourceware.org/pipermail/binutils/2026-August/150713.html glibc dynamic linker support for R_ALPHA_IRELATIVE will follow. Tested by cross-compiling gcc.dg/attr-ifunc-{1..5}.c and g++.dg/ext/attr-ifunc-{1..5}.C targeting alpha-linux-gnu. GCC correctly emits .type foo, @gnu_indirect_function and the resulting binaries contain STT_GNU_IFUNC symbols. Runtime tests require the pending glibc dynamic linker patch. --- gcc/config.gcc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git ./gcc/config.gcc ./gcc/config.gcc index 6968d666b89..aade3c6b152 100644 --- ./gcc/config.gcc +++ ./gcc/config.gcc @@ -3685,7 +3685,7 @@ case ${target} in ;; *-*-linux* | *-*-gnu*) case ${target} in - aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*) + aarch64*-* | alpha*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-* | loongarch*-*) default_gnu_indirect_function=yes ;; esac -- 2.54.0
