Module Name: src
Committed By: christos
Date: Tue Aug 26 11:10:03 UTC 2014
Modified Files:
src/tests/libexec/ld.elf_so/helper_ifunc_dso: h_helper_ifunc.c
Log Message:
effectively disable the test to fix the build and explain why.
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 \
src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c
diff -u src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c:1.1 src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c:1.2
--- src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c:1.1 Mon Aug 25 16:40:53 2014
+++ src/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c Tue Aug 26 07:10:02 2014
@@ -49,4 +49,15 @@ int (*resolve_ifunc(void))(void)
return e && strcmp(e, "1") == 0 ? ifunc2 : ifunc1;
}
+#ifdef __HAVE_IFUNC
+// XXX: m68k, vax, mips, sh3 (and others) binutils don't support this.
+// Needs to be staged in for archs that support it.
__ifunc(ifunc, resolve_ifunc);
+#else
+int ifunc(void);
+int
+ifunc(void) {
+ const char *e = getenv("USE_IFUNC2");
+ return e && strcmp(e, "1") == 0 ? ifunc2() : ifunc1();
+}
+#endif