Always use configure to detect whether global symbols need underscores 64-bit Windows already used this check; make it universal, and use it in place of an ifdef on X86_WIN32, to handle non-Windows platforms that use the underscore, such as Darwin.
diff --git a/configure.ac b/configure.ac
index 3169c43..ffcdd49 100644
--- a/configure.ac
+++ b/configure.ac
@@ -439,11 +439,9 @@ AC_ARG_ENABLE(pax_emutramp,
[Define this if you want to enable pax emulated trampolines])
fi)
-if test x$TARGET = xX86_WIN64; then
- LT_SYS_SYMBOL_USCORE
- if test "x$sys_symbol_underscore" = xyes; then
- AC_DEFINE(SYMBOL_UNDERSCORE, 1, [Define if symbols are underscored.])
- fi
+LT_SYS_SYMBOL_USCORE
+if test "x$sys_symbol_underscore" = xyes; then
+ AC_DEFINE(SYMBOL_UNDERSCORE, 1, [Define if symbols are underscored.])
fi
FFI_EXEC_TRAMPOLINE_TABLE=0
diff --git a/src/x86/win32.S b/src/x86/win32.S
index 826a5a0..d71c8b8 100644
--- a/src/x86/win32.S
+++ b/src/x86/win32.S
@@ -473,7 +473,7 @@ END
#else
-#if defined(X86_WIN32)
+#if defined(SYMBOL_UNDERSCORE)
#define USCORE_SYMBOL(x) _##x
#else
#define USCORE_SYMBOL(x) x