From b2b1f867532732fe9969131f8713bdd6b0731763 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Sat, 27 Jun 2009 00:43:06 +0300 Subject: Hopefully improved portability of the assembler code in Autotools based builds on Windows. --- src/liblzma/check/crc32_x86.S | 8 +++++++- src/liblzma/check/crc64_x86.S | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/liblzma/check') diff --git a/src/liblzma/check/crc32_x86.S b/src/liblzma/check/crc32_x86.S index 2342168b..cca29891 100644 --- a/src/liblzma/check/crc32_x86.S +++ b/src/liblzma/check/crc32_x86.S @@ -109,8 +109,14 @@ LZMA_CRC32: * by GCC but only on some systems. Testing for both makes it simpler * to test this code without libtool, and keeps the code working also * when built with libtool but using something else than GCC. + * + * I understood that libtool may define PIC on Windows even though + * the code in Windows DLLs is not PIC in sense that it is in ELF + * binaries, so we need a separate check to always use the non-PIC + * code on Windows. */ -#if !defined(PIC) && !defined(__PIC__) +#if (!defined(PIC) && !defined(__PIC__)) \ + || (defined(_WIN32) || defined(__CYGWIN__)) /* Not PIC */ movl $LZMA_CRC32_TABLE, %ebx #elif defined(__MACH__) diff --git a/src/liblzma/check/crc64_x86.S b/src/liblzma/check/crc64_x86.S index 8b0a42db..17de076a 100644 --- a/src/liblzma/check/crc64_x86.S +++ b/src/liblzma/check/crc64_x86.S @@ -100,8 +100,14 @@ LZMA_CRC64: * by GCC but only on some systems. Testing for both makes it simpler * to test this code without libtool, and keeps the code working also * when built with libtool but using something else than GCC. + * + * I understood that libtool may define PIC on Windows even though + * the code in Windows DLLs is not PIC in sense that it is in ELF + * binaries, so we need a separate check to always use the non-PIC + * code on Windows. */ -#if !defined(PIC) && !defined(__PIC__) +#if (!defined(PIC) && !defined(__PIC__)) \ + || (defined(_WIN32) || defined(__CYGWIN__)) /* Not PIC */ movl $LZMA_CRC64_TABLE, %ebx #elif defined(__MACH__) -- cgit v1.2.3