Hopefully improved portability of the assembler code in
authorLasse Collin <lasse.collin@tukaani.org>
Fri, 26 Jun 2009 21:43:06 +0000 (00:43 +0300)
committerLasse Collin <lasse.collin@tukaani.org>
Fri, 26 Jun 2009 21:43:06 +0000 (00:43 +0300)
Autotools based builds on Windows.

src/liblzma/check/crc32_x86.S
src/liblzma/check/crc64_x86.S

index 2342168..cca2989 100644 (file)
@@ -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__)
index 8b0a42d..17de076 100644 (file)
@@ -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__)