51213e2b8d
This patch adds s390_libc_ifunc_expr macro which uses the __ifunc base macro in include/libc-symbols.h and lets the user define a generic expression to choose the correct ifunc variant. Furthermore as the base macro is used, the ifunc resolver functions are now also using inhibit_stack_protector. S390 needs its own version due to the hwcap argument of the ifunc resolver. This new macro is now used in iconv code in 8bit-generic.c instead of using gcc attribute ifunc directly. ChangeLog: * sysdeps/s390/multiarch/ifunc-resolve.h (s390_libc_ifunc_expr_init, s390_libc_ifunc_expr): New Define. * sysdeps/s390/multiarch/8bit-generic.c (__to_generic, __from_generic): Use s390_libc_ifunc_expr to define ifunc resolvers.