Implement ifunc support for static executables.
A static executable is almost entirely statically relocated by the
linker, with the exception of IRELATIVE relocations, which must be
resolved by libc by enumerating the relocations using the special
linker-defined symbols __rela?_iplt_{start,end}. This patch implements
ifunc support by enumerating the relocations in this way.
Bug: 112482891
Test: /data/nativetest{,64}/bionic-unit-tests-static/bionic-unit-tests-static on walleye_hwasan-userdebug
Change-Id: Ia5522a190da0b86e095b141d5d4e68dd7dd4b695
diff --git a/tests/Android.bp b/tests/Android.bp
index 8ac0531..a409b2a 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -95,6 +95,7 @@
"grp_pwd_file_test.cpp",
"iconv_test.cpp",
"ifaddrs_test.cpp",
+ "ifunc_test.cpp",
"inttypes_test.cpp",
"iso646_test.c",
"langinfo_test.cpp",