Fix Cygwin/MSYS2 CI, ARM64 SSE2 compile failure, and Win32 calling convention mismatch in fast_float plugin#549
Conversation
|
@copilot could you check and fix the failing tests? |
…ling convention Agent-Logs-Url: https://github.com/mm2/Little-CMS/sessions/7fb1fcb8-2590-447b-8b27-0c00950e1c22 Co-authored-by: mm2 <199618+mm2@users.noreply.github.com>
Fixed in commit 8e04a2d. Three failures were addressed:
|
…ntion via cdecl wrapper Agent-Logs-Url: https://github.com/mm2/Little-CMS/sessions/2fc208bf-ae3b-4814-b8ca-eba52c359e3c Co-authored-by: mm2 <199618+mm2@users.noreply.github.com>
|
Ok, it seems the robot got it working this time. |
Three CI failures introduced by the Cygwin/MSYS2 build job additions, plus a pre-existing Win32 compile error in the fast_float plugin.
Cygwin CI job (
cygwin/install-action→cygwin/cygwin-install-action@v6)The action name was wrong —
cygwin/install-actiondoesn't exist. Fixed to use the correctcygwin/cygwin-install-action@v6with explicitinstall-dir: 'C:\cygwin64'matching the configured shell path.macOS ARM64 (
fast_8_matsh_sse.cincluding<x86intrin.h>)LCMS2_DEFINE_CMS_DONT_USE_SSE2=1was propagated to the mainlcms2library but not to thelcms2_fast_floatplugin, causingfast_8_matsh_sse.cto include x86 headers on ARM64. Added the define to the plugin target inLcms2Plugins.cmake:Win32 calling convention (
_cmsFreeandFormatter_15Bit_Factory)On 32-bit Windows,
CMSEXPORT=__stdcall, but callback typedefs (_cmsFreeUserDataFn,cmsFormatterFactory) use__cdecl. Two issues:_cmsFreeassigned to_cmsFreeUserDataFnin three files (fast_8_curves.c,fast_float_tethra.c,fast_float_cmyk.c): added an inline__cdeclwrapper_fast_float_free_user_datainfast_float_internal.h.Formatter_15Bit_Factoryassigned tocmsFormatterFactoryinfast_float_sup.c:CMSEXPORTmust be kept on the function (it's called directly byfast_float_testbed.cand must be exported from the DLL). Fixed by adding a__cdeclwrapper infast_float_sup.cthat delegates to the__stdcallfunction:💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.