From: DRC Date: Thu, 24 Oct 2019 06:50:35 +0000 (-0500) Subject: AppVeyor: Use MinGW-builds instead of MSYS2 MinGW X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=refs%2Fheads%2Fmaster;p=libjpeg-turbo AppVeyor: Use MinGW-builds instead of MSYS2 MinGW ... to avoid backward compatibility issues with GCC 4-6 MinGW toolchains. Apparently GCC 7+ MinGW toolchains introduce a link-time dependency with internal MinGW CRT functions that are meant to provide compatibility with Microsoft's Universal CRT (ucrt) library, but those internal functions are not available in GCC 4-6 MinGW toolchains. This made it impossible to use the official builds of libjpeg.a and libturbojpeg.a with GCC 4-6 MinGW toolchains (a fatal link error-- "undefined reference to '__imp___acrt_iob_func'"-- occurred.) This problem was not immediately apparent after switching to the MSYS2 implementation of MinGW (d6d7b539682abb50b04207abd21726573c0fb845) because, for a while, MSYS2 was still using GCC 5 and 6. Refer to libjpeg-turbo/libjpeg-turbo#382 --- diff --git a/appveyor.yml b/appveyor.yml index cee15e9..36af19b 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -8,11 +8,23 @@ install: 7z x c:\installers\nasm-2.10.01-win32.zip -oc:\ > c:\installers\nasm.install.log + if not exist c:\installers\i686-6.4.0-release-posix-dwarf-rt_v5-rev0.7z curl -fSL -o c:\installers\i686-6.4.0-release-posix-dwarf-rt_v5-rev0.7z "https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/6.4.0/threads-posix/dwarf/i686-6.4.0-release-posix-dwarf-rt_v5-rev0.7z" + + md "c:\Program Files (x86)\mingw-w64\i686-6.4.0-posix-dwarf-rt_v5-rev0" + + 7z x c:\installers\i686-6.4.0-release-posix-dwarf-rt_v5-rev0.7z -o"c:\Program Files (x86)\mingw-w64\i686-6.4.0-posix-dwarf-rt_v5-rev0" > c:\installers\mingw32.install.log + + if not exist c:\installers\x86_64-6.4.0-release-posix-seh-rt_v5-rev0.7z curl -fSL -o c:\installers\x86_64-6.4.0-release-posix-seh-rt_v5-rev0.7z "https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/Personal Builds/mingw-builds/6.4.0/threads-posix/seh/x86_64-6.4.0-release-posix-seh-rt_v5-rev0.7z" + + md "c:\Program Files\mingw-w64\x86_64-6.4.0-posix-seh-rt_v5-rev0" + + 7z x c:\installers\x86_64-6.4.0-release-posix-seh-rt_v5-rev0.7z -o"c:\Program Files\mingw-w64\x86_64-6.4.0-posix-seh-rt_v5-rev0" > c:\installers\mingw64.install.log + set INCLUDE=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\include set LIB=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\lib\x64 - set PATH=c:\nasm-2.10.01;c:\Program Files (x86)\NSIS;c:\msys64\mingw32\bin;c:\msys64\usr\bin;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin\x64;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin;%PATH% + set PATH=c:\nasm-2.10.01;c:\Program Files (x86)\NSIS;c:\msys64\usr\bin;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin\x64;c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin;%PATH% set MSYSTEM=MINGW32 @@ -24,6 +36,8 @@ install: cache: - c:\installers\nasm-2.10.01-win32.zip -> appveyor.yml + - c:\installers\i686-6.4.0-release-posix-dwarf-rt_v5-rev0.7z -> appveyor.yml + - c:\installers\x86_64-6.4.0-release-posix-seh-rt_v5-rev0.7z -> appveyor.yml build_script: - cmd: >-