From b2a343ffc68f1af5368281e063c0ca5571c611cc Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 25 Oct 2017 04:36:49 -0700 Subject: Don't include WIN64/EFI64 for x32 Since x32 doesn't support WIN64/EFI64, don't include it for x32. Also x32 has sizeof size_t == 4. But TARGET should be X86_64. --- configure.host | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'configure.host') diff --git a/configure.host b/configure.host index b5e1ec7..34e83f7 100644 --- a/configure.host +++ b/configure.host @@ -106,10 +106,18 @@ case "${host}" in if test $ac_cv_sizeof_size_t = 4; then case "$host" in x86_64-*x32|x86_64-x32-*) + TARGET_X32=yes TARGET=X86_64 ;; *) - TARGET=X86 + echo 'int foo (void) { return __x86_64__; }' > conftest.c + if $CC $CFLAGS -Werror -S conftest.c -o conftest.s > /dev/null 2>&1; then + TARGET_X32=yes + TARGET=X86_64 + else + TARGET=X86; + fi + rm -f conftest.* ;; esac else @@ -255,7 +263,11 @@ case "${TARGET}" in SOURCES="ffi.c sysv.S" ;; X86_64) - SOURCES="ffi64.c unix64.S ffiw64.c win64.S" + if test x"$TARGET_X32" = xyes; then + SOURCES="ffi64.c unix64.S" + else + SOURCES="ffi64.c unix64.S ffiw64.c win64.S" + fi ;; X86_WIN64) if test "$MSVC" = 1; then -- cgit v1.2.1