057832282f
This is a prerequisite for anything IFUNC in the ELFv2 / clang switch. Since probing cpu info on powerpc is a privileged operation, define that we pass AT_HWCAP / AT_HWCAP2 through as cpu_features and cpu_features2 to ifunc resolvers. This is particularly important when dealing with non-PLT GNU IFUNC, which is not allowed to PLT call from resolvers and therefore can't access global variables. The naming convention "cpu_features"/"cpu_features2" is an existing FreeBSD PowerPC convention and matches the way we treat these variables in machine/cpu.h. The underlying variables are u_long, however, as per the commit message for r332868, only the low 32 bits are ever used, so the underlying flags are compatible across all of PowerPC. The resolver prototype is defined to reserve the maximum number of register-passed parameters the various PowerPC ABIs allow. This leaves plenty of room for growth without needing to resort to passing via the stack in the future. Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D22787