#define FLAG_LINKER 0x00000010 // The linker itself
#define FLAG_NEW_SOINFO 0x40000000 // new soinfo format
-#define SOINFO_VERSION 0
+#define SOINFO_VERSION 1
#define SOINFO_NAME_LEN 128
}
// ifuncs are only supported on intel and arm64 for now
-#if defined(__i386__) || defined(__x86_64__)
+#if defined (__aarch64__) || defined(__i386__) || defined(__x86_64__)
TEST(dlfcn, ifunc) {
typedef const char* (*fn_ptr)();
# -----------------------------------------------------------------------------
# Library used by ifunc tests
# -----------------------------------------------------------------------------
-ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),x86 x86_64))
+ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm64 x86 x86_64))
libtest_ifunc_src_files := \
dlopen_testlib_ifunc.c
build_type := target
build_target := SHARED_LIBRARY
+ ifeq ($(TARGET_ARCH),arm64)
+ libtest_ifunc_multilib := 64
+ # TODO: This is a workaround - remove it once gcc
+ # removes its Android ifunc checks
+ libtest_ifunc_cflags := -mglibc
+ endif
+
include $(TEST_PATH)/Android.build.mk
endif