https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93274
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #4 from Alexander Monakov <amonakov at gcc dot gnu.org> --- IFUNCs don't have to be somehow "globally visible". The comment is there from day 1, but it's not clear why - possibly a misunderstanding? GCC happily accepts a static ifunc, and rest of toolchain should have no problem either: __attribute__((used,ifunc("r_f"))) static void f(); static void *r_f() { return 0; } .type r_f, @function r_f: xorl %eax, %eax ret .size r_f, .-r_f .type f, @gnu_indirect_function .set f,r_f