summaryrefslogtreecommitdiff
path: root/tests/libexec
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2014-08-26 11:10:02 +0000
committerchristos <christos@NetBSD.org>2014-08-26 11:10:02 +0000
commitf7316ebb6bc3e08bc22bb1dcf178fe3e61b3980c (patch)
tree6d49629f2aa389dda700ceb80610d640bd9b0e0c /tests/libexec
parentabdc34c4ab52f977cfb16940210a3334d4041e20 (diff)
effectively disable the test to fix the build and explain why.
Diffstat (limited to 'tests/libexec')
-rw-r--r--tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c b/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c
index c04f77547e7..a213aeb4721 100644
--- a/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c
+++ b/tests/libexec/ld.elf_so/helper_ifunc_dso/h_helper_ifunc.c
@@ -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