Closed lovell closed 3 years ago
I could reproduce this, will investigate further. libvips was successfully built against lcms in the 32-bit binaires.
PS> vips.exe --vips-config | Select-String "lcms"
ICC profile support with lcms: yes (lcms2)
Given that the 32-bit binaries from the v8.11.0-rc1 release were fine, I think this could indeed have been caused by the thread-safety patches introduced in PR #28. I noticed this within the build log:
checking for gmtime_r... no
checking for _gmtime64_s... yes
<snip>
/data/mxe/tmp-lcms-i686-w64-mingw32.static.posix.web/lcms2-2.12/src/cmsplugin.c:1005:26: warning: incompatible pointer types passing 'time_t *' (aka 'long *') to parameter of type 'const __time64_t *' (aka 'const long long *') [-Wincompatible-pointer-types]
t = _gmtime64_s(&tm, &now) == 0 ? &tm : NULL;
^~~~
/data/mxe/usr/i686-w64-mingw32.static.posix.web/mingw/include/time.h:166:73: note: passing argument to parameter '_Time' here
_SECIMP errno_t __cdecl _gmtime64_s (struct tm *_Tm,const __time64_t *_Time);
^
(it will probably have to use the _gmtime32_s
function on 32-bit Windows)
I'm testing this patch now:
Seems to work! Upstream PR: https://github.com/mm2/Little-CMS/pull/270.
Commit 9ea5c2a7d17ed58be193e23f88d3562a60e49793 resolves this, this will be in the forthcoming v8.11.3 release (or if preferred, I could make a v8.11.2-build2 release).
Thanks Kleis, let's wait for v8.11.3.
I'm seeing failures using the v8.11.2 binaries with sharp on 32-bit Windows for all tests relating to colour profiles:
https://ci.appveyor.com/project/lovell/sharp/builds/39989275/job/ynmhkpqnmfx4nv7g
64-bit Windows works as-expected:
https://github.com/lovell/sharp/runs/3066815431?check_suite_focus=true
I'm still investigating this, but opening an early issue here in case anyone else is experiencing similar problems.
Could the
vips-dev-w32-web-8.11.2-static.zip
binaries have missed or skipped the lcms dependency, perhaps as a result of the thread-safety patches?https://github.com/libvips/build-win64-mxe/releases/tag/v8.11.2