Closed Vincent-FA closed 5 months ago
Can confirm librtprocess does not build with gcc11 (from current git version, independent of siril build). Possibly see https://www.gnu.org/software/gcc/gcc-11/porting_to.html: "GCC 11 defaults to -std=gnu++17 instead of -std=gnu++14: the C++17 standard, plus GNU extensions."
╰─ make
[ 6%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/ahd.cc.o
[ 13%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/amaze.cc.o
[ 20%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/bayerfast.cc.o
[ 26%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/border.cc.o
[ 33%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/dcb.cc.o
[ 40%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/hphd.cc.o
[ 46%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/igv.cc.o
[ 53%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/lmmse.cc.o
[ 60%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/markesteijn.cc.o
[ 66%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/rcd.cc.o
[ 73%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/vng4.cc.o
[ 80%] Building CXX object src/CMakeFiles/rtprocess.dir/demosaic/xtransfast.cc.o
In file included from /home/.../librtprocess/src/demosaic/xtransfast.cc:22:
/home/.../librtprocess/src/include/librtprocess.h:30:313: error: ‘size_t’ has not been declared
30 | ProgCancel, double initGain, int border, float inputScale, float outputScale, size_t chunkSize = 2, bool measure = false);
| ^~~~~~
/home/.../librtprocess/src/include/librtprocess.h:34:197: error: ‘size_t’ has not been declared
34 | nst unsigned cfarray[2][2], const std::function<bool(double)> &setProgCancel, size_t chunkSize = 2, bool measure = false, bool multiThread = true);
| ^~~~~~
/home/.../librtprocess/src/include/librtprocess.h:35:271: error: ‘size_t’ has not been declared
35 | unction<bool(double)> &setProgCancel, const int passes, const bool useCieLab, size_t chunkSize = 2, bool measure = false);
| ^~~~~~
/home/.../librtprocess/src/include/librtprocess.h:41:79: error: ‘size_t’ has not been declared
41 | rpError CA_correct(int winx, int winy, int winw, int winh, const bool autoCA, size_t autoIterations, const double cared, const double cablue, bool avoidColourshift, const float * const *rawDataIn, float **rawDataOut, const unsigned cfarray[2][2], const std::function<bool(double)> &setProgCancel, double fitParams[2][2][16], bool fitParamsIn, float inputScale = 65535.f, float outputScale = 65535.f, size_t chunkSize = 2, bool measure = false);
| ^~~~~~
/home/.../librtprocess/src/include/librtprocess.h:41:401: error: ‘size_t’ has not been declared
41 | ], bool fitParamsIn, float inputScale = 65535.f, float outputScale = 65535.f, size_t chunkSize = 2, bool measure = false);
| ^~~~~~
make[2]: *** [src/CMakeFiles/rtprocess.dir/build.make:230: src/CMakeFiles/rtprocess.dir/demosaic/xtransfast.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:143: src/CMakeFiles/rtprocess.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
╰─ gcc --version
gcc (GCC) 11.1.0
EDIT: See #62 as probably the fix?
EDIT 2: change from #62 does indeed resolve the build problem for me with gcc11 (not sure how that would affect builds on older gcc versions)
I merged #62 just now.
Hello, it seems that the new compiler on Arch Linux has problems with
size_t
in librtprocess headers:I don't have access to this, it was reported on siril as a build issue here: https://aur.archlinux.org/packages/siril/
Maybe there is an include required for
size_t
now, apparently it's instddef.h
.