mm2 / Little-CMS

A free, open source, CMM engine. It provides fast transforms between ICC profiles.
https://www.littlecms.com
MIT License
549 stars 174 forks source link

FTBFS since commit c429e37 wrt type checking on pointer types #438

Closed nanake closed 6 months ago

nanake commented 6 months ago

GCC 14 no longer allows implicitly casting all pointer types to all other pointer types.

echo $CC x86_64-w64-mingw32ucrt-gcc

$CC --version x86_64-w64-mingw32ucrt-gcc (GCC) 14.0.1 20240127 (Fedora MinGW 14.0.1-1.fc40)

[root@7a6e89d61f7c build]# ninja -j4
[40/68] Compiling C object plugins/fast_float/src/liblcms2_fast_float.a.p/fast_16_tethra.c.obj
FAILED: plugins/fast_float/src/liblcms2_fast_float.a.p/fast_16_tethra.c.obj
x86_64-w64-mingw32ucrt-gcc -Iplugins/fast_float/src/liblcms2_fast_float.a.p -Iplugins/fast_float/src -I../plugins/fast_float/src -Iplugins/fast_float/include -I../plugins/fast_float/include -Iinclude -I../include -Isrc -I../src -I/opt/ffbuild/include -fvisibility=hidden -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -static-libgcc -static-libstdc++ -O2 -pipe -D_FORTIFY_SOURCE=3 -fstack-protector-strong -D_POSIX_C_SOURCE=199503L -DHAVE_GMTIME_R=1 -DHasTHREADS=1 -DHAVE_TIMESPEC_GET=1 -MD -MQ plugins/fast_float/src/liblcms2_fast_float.a.p/fast_16_tethra.c.obj -MF plugins/fast_float/src/liblcms2_fast_float.a.p/fast_16_tethra.c.obj.d -o plugins/fast_float/src/liblcms2_fast_float.a.p/fast_16_tethra.c.obj -c ../plugins/fast_float/src/fast_16_tethra.c
../plugins/fast_float/src/fast_16_tethra.c: In function 'PerformanceEval16':
../plugins/fast_float/src/fast_16_tethra.c:120:82: error: passing argument 4 of '_cmsComputeComponentIncrements' from incompatible pointer type [-Wincompatible-pointer-types]
  120 |        _cmsComputeComponentIncrements(dwInFormat, Stride->BytesPerPlaneIn, NULL, &nalpha, SourceStartingOrder, SourceIncrements);
      |                                                                                  ^~~~~~~
      |                                                                                  |
      |                                                                                  size_t * {aka long long unsigned int *}
In file included from ../plugins/fast_float/src/fast_16_tethra.c:22:
../plugins/fast_float/src/fast_float_internal.h:173:78: note: expected 'cmsUInt32Number *' {aka 'unsigned int *'} but argument is of type 'size_t *' {aka 'long long unsigned int *'}
  173 |                                                             cmsUInt32Number* nAlpha,
      |                                                             ~~~~~~~~~~~~~~~~~^~~~~~
../plugins/fast_float/src/fast_16_tethra.c:121:84: error: passing argument 4 of '_cmsComputeComponentIncrements' from incompatible pointer type [-Wincompatible-pointer-types]
  121 |        _cmsComputeComponentIncrements(dwOutFormat, Stride->BytesPerPlaneOut, NULL, &nalpha, DestStartingOrder, DestIncrements);
      |                                                                                    ^~~~~~~
      |                                                                                    |
      |                                                                                    size_t * {aka long long unsigned int *}
../plugins/fast_float/src/fast_float_internal.h:173:78: note: expected 'cmsUInt32Number *' {aka 'unsigned int *'} but argument is of type 'size_t *' {aka 'long long unsigned int *'}
  173 |                                                             cmsUInt32Number* nAlpha,
      |                                                             ~~~~~~~~~~~~~~~~~^~~~~~
[41/68] Compiling C object testbed/testcms.exe.p/zoo_icc.c.obj
../testbed/zoo_icc.c: In function 'ReadAllRAWTags':
../testbed/zoo_icc.c:63:20: warning: variable 'len' set but not used [-Wunused-but-set-variable]
   63 |     cmsInt32Number len;
      |                    ^~~
[43/68] Compiling C object testbed/testcms.exe.p/testcms2.c.obj
../testbed/testcms2.c:5205:16: warning: 'CheckDictionary16' defined but not used [-Wunused-function]
 5205 | cmsInt32Number CheckDictionary16(cmsInt32Number Pass,  cmsHPROFILE hProfile)
      |                ^~~~~~~~~~~~~~~~~
../testbed/testcms2.c: In function 'Check1D':
../testbed/testcms2.c:1033:9: warning: '<unknown>' may be used uninitialized [-Wmaybe-uninitialized]
 1033 |     p = _cmsComputeInterpParams(DbgThread(), nNodesToCheck, 1, 1, Tab, CMS_LERP_FLAGS_16BITS);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../testbed/testcms2.h:30,
                 from ../testbed/testcms2.c:27:
../src/lcms2_internal.h:868:42: note: by argument 5 of type 'const void *' to '_cmsComputeInterpParams' declared here
  868 | CMSCHECKPOINT cmsInterpParams* CMSEXPORT _cmsComputeInterpParams(cmsContext ContextID, cmsUInt32Number nSamples, cmsUInt32Number InputChan, cmsUInt32Number OutputChan, const void* Table, cmsUInt32Number dwFlags);
      |                                          ^~~~~~~~~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
mm2 commented 6 months ago

should be fixed right now. Thanks for pointing out.

nanake commented 6 months ago

I can confirm this is fixed for me in commit b2aeb18.