Tested with revision 7949e125a. Build fails on x86 (32 bit builds) when xsimd is present: [ 283s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/xsimd_extensions/arch/xsimd_isa.hpp:16, [ 283s] from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/xsimd_extensions/xsimd.hpp:15, [ 283s] from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/KisSupportedArchitectures.cpp:13: [ 283s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/xsimd_extensions/arch/./xsimd_generic.hpp: In function 'std::pair<_FIter, _FIter> xsimd::interleave(const V&, const V&)': [ 283s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/xsimd_extensions/arch/./xsimd_generic.hpp:118:20: error: 'zip_lo' is not a member of 'xsimd' [ 283s] 118 | return {xsimd::zip_lo(a, b), xsimd::zip_hi(a, b)}; [ 283s] | ^~~~~~ [ 283s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/libs/multiarch/xsimd_extensions/arch/./xsimd_generic.hpp:118:41: error: 'zip_hi' is not a member of 'xsimd' [ 283s] 118 | return {xsimd::zip_lo(a, b), xsimd::zip_hi(a, b)}; [ 283s] | ^~~~~~ [ 283s] make[2]: *** [libs/multiarch/CMakeFiles/kritamultiarch.dir/build.make:90: libs/multiarch/CMakeFiles/kritamultiarch.dir/KisSupportedArchitectures.cpp.o] Error 1 [ 283s] make[2]: Leaving directory '/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T121835~7949e125a/build' [ 283s] make[1]: *** [CMakeFiles/Makefile2:26589: libs/multiarch/CMakeFiles/kritamultiarch.dir/all] Error 2 [ 283s] make[1]: *** Waiting for unfinished jobs.... Relevant CMake log (krita seems to look for xsimd twice): [ 166s] -- Could NOT find xsimd (Required is at least version "8.1.0"), checked the following files: [ 166s] /usr/lib/cmake/xsimd/xsimdConfig.cmake (version 9.0.1) [ 166s] /usr/lib/cmake/xsimd/xsimdConfig.cmake (version 9.0.1) [ 166s] /lib/cmake/xsimd/xsimdConfig.cmake (version 9.0.1) [...] [ 168s] -- Available architectures for xsimd: x86 [ 168s] -- Found xsimd: /usr/lib/cmake/xsimd/xsimdConfig.cmake (found suitable version "9.0.1", minimum required is "9")
Build also fails on powerpc with the same error despite the cmake warning: [ 95s] CMake Warning at cmake/modules/xsimd/xsimdMacros.cmake:101 (message): [ 95s] Unknown processor: ppc64le [ 95s] Call Stack (most recent call first): [ 95s] cmake/modules/xsimd/xsimdMacros.cmake:160 (xsimd_set_available_architectures) [ 95s] cmake/modules/Findxsimd.cmake:16 (xsimd_set_preferred_compiler_flags) [ 95s] CMakeLists.txt:1055 (find_package) [ 95s] [ 95s] [ 95s] CMake Warning at cmake/modules/xsimd/xsimdMacros.cmake:102 (message): [ 95s] Only the scalar architecture will be built. [ 95s] [ 95s] Please fill out the missing parts in the CMake scripts and submit a patch [ 95s] to https://invent.kde.org/graphics/krita [ 95s] Call Stack (most recent call first): [ 95s] cmake/modules/xsimd/xsimdMacros.cmake:160 (xsimd_set_available_architectures) [ 95s] cmake/modules/Findxsimd.cmake:16 (xsimd_set_preferred_compiler_flags) [ 95s] CMakeLists.txt:1055 (find_package) [ 95s] [ 95s] [ 95s] -- Available architectures for xsimd: [ 95s] -- Found xsimd: /usr/lib64/cmake/xsimd/xsimdConfig.cmake (found suitable version "9.0.1", minimum required is "9") One would expect xsimd_FOUND to be set to OFF for unsupported archs.
Hi! Could you please send the following information? - the compiler flavor and version you're using to build Krita - the full compiler line for KisSupportedArchitectures.cpp.o For the latter, building with the Ninja generator will make extracting the information easier.
(In reply to amyspark from comment #2) > Hi! > > Could you please send the following information? > > - the compiler flavor and version you're using to build Krita gcc 12.2.1 > - the full compiler line for KisSupportedArchitectures.cpp.o > > For the latter, building with the Ninja generator will make extracting the > information easier. [ 195s] cd "/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build/libs/multiarch" && /usr/bin/c++ -DBOOST_ALL_NO_LIB -DHAVE_X11 -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x50900 -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_NO_SIGNALS_SLOTS_KEYWORDS -DQT_NO_URL_CAST_FROM_STRING -DQT_STRICT_ITERATORS -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -DQT_XML_LIB -DTRANSLATION_DOMAIN=\"krita\" -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Dkritamultiarch_EXPORTS -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build/libs/multiarch" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/libs/multiarch" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build/libs/multiarch/kritamultiarch_autogen/include" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build/libs/global" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/libs/global" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/build/libs/version" -I"/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/libs/version" -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib/qt5/mkspecs/linux-g++ -isystem /usr/include/KF5/KConfig -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/KF5 -isystem /usr/include/qt5/QtConcurrent -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtXml -isystem /usr/include/KF5/KI18n -fomit-frame-pointer -O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g -DNDEBUG -fno-operator-names -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fext-numeric-literals -fexceptions -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wno-suggest-override -Wextra -Wno-class-memaccess -fPIC -std=gnu++14 -MD -MT libs/multiarch/CMakeFiles/kritamultiarch.dir/KisSupportedArchitectures.cpp.o -MF CMakeFiles/kritamultiarch.dir/KisSupportedArchitectures.cpp.o.d -o CMakeFiles/kritamultiarch.dir/KisSupportedArchitectures.cpp.o -c "/home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221122T141643~dc6901340/libs/multiarch/KisSupportedArchitectures.cpp"
Looking at a copy of i686-linux-gnu-gcc on Ubuntu 20.04 LTS under Docker, it seems its default is `-march=i686` which doesn't cover SSE. Assigning to myself.
A possibly relevant merge request was started @ https://invent.kde.org/graphics/krita/-/merge_requests/1655
Created attachment 153951 [details] krita build log It fails elsewhere with the change applied. log attached
with the last changes in your branch: [ 275s] make[2]: *** [libs/image/CMakeFiles/kritaimage.dir/build.make:3541: libs/image/CMakeFiles/kritaimage.dir/kis_gauss_circle_mask_generator.cpp.o] Error 1 [ 275s] make[2]: *** Waiting for unfinished jobs.... [ 275s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/global/KisHalfTraits.h:14, [ 275s] from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/pigment/KoColorSpaceMaths.h:109, [ 275s] from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_math_toolbox.cpp:20: [ 275s] /usr/include/Imath/halfLimits.h:17:2: warning: #warning "ImathLimits is deprecated; use #include <half.h>" [-Wcpp] [ 275s] 17 | #warning "ImathLimits is deprecated; use #include <half.h>" [ 275s] | ^~~~~~~ [ 276s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_curve_circle_mask_generator.cpp:15: [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'xsimd::batch_bool<float, A> KisAntialiasingFadeMaker1D<BaseFade>::needFade(xsimd::batch<float, A>&)': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:96:23: error: 'set_one' is not a member of 'xsimd' [ 276s] 96 | dist = xsimd::set_one(dist, outsideMask); [ 276s] | ^~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'void KisAntialiasingFadeMaker2D<BaseFade>::apply2DFader(xsimd::batch<float, A>&, xsimd::batch_bool<float, A>&, xsimd::batch<float, A>&, xsimd::batch<float, A>&) const': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:24: error: 'truncate_to_type' is not a member of 'xsimd' [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^~~~~~~~~~~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:49: error: expected primary-expression before '>' token [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:245:25: error: 'all' is not a member of 'xsimd' [ 276s] 245 | if (!xsimd::all(fadeXStartMask)) { [ 276s] | ^~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:255:25: error: 'all' is not a member of 'xsimd' [ 276s] 255 | if (!xsimd::all(fadeYStartMask)) { [ 276s] | ^~~ [ 276s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_gauss_rect_mask_generator.cpp:22: [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'xsimd::batch_bool<float, A> KisAntialiasingFadeMaker1D<BaseFade>::needFade(xsimd::batch<float, A>&)': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:96:23: error: 'set_one' is not a member of 'xsimd' [ 276s] 96 | dist = xsimd::set_one(dist, outsideMask); [ 276s] | ^~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'void KisAntialiasingFadeMaker2D<BaseFade>::apply2DFader(xsimd::batch<float, A>&, xsimd::batch_bool<float, A>&, xsimd::batch<float, A>&, xsimd::batch<float, A>&) const': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:24: error: 'truncate_to_type' is not a member of 'xsimd' [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^~~~~~~~~~~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:49: error: expected primary-expression before '>' token [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:245:25: error: 'all' is not a member of 'xsimd' [ 276s] 245 | if (!xsimd::all(fadeXStartMask)) { [ 276s] | ^~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:255:25: error: 'all' is not a member of 'xsimd' [ 276s] 255 | if (!xsimd::all(fadeYStartMask)) { [ 276s] | ^~~ [ 276s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_curve_rect_mask_generator.cpp:14: [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'xsimd::batch_bool<float, A> KisAntialiasingFadeMaker1D<BaseFade>::needFade(xsimd::batch<float, A>&)': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:96:23: error: 'set_one' is not a member of 'xsimd' [ 276s] 96 | dist = xsimd::set_one(dist, outsideMask); [ 276s] | ^~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'void KisAntialiasingFadeMaker2D<BaseFade>::apply2DFader(xsimd::batch<float, A>&, xsimd::batch_bool<float, A>&, xsimd::batch<float, A>&, xsimd::batch<float, A>&) const': [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:24: error: 'truncate_to_type' is not a member of 'xsimd' [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^~~~~~~~~~~~~~~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:49: error: expected primary-expression before '>' token [ 276s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 276s] | ^ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:245:25: error: 'all' is not a member of 'xsimd' [ 276s] 245 | if (!xsimd::all(fadeXStartMask)) { [ 276s] | ^~~ [ 276s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:255:25: error: 'all' is not a member of 'xsimd' [ 276s] 255 | if (!xsimd::all(fadeYStartMask)) { [ 276s] | ^~~ [ 276s] make[2]: *** [libs/image/CMakeFiles/kritaimage.dir/build.make:3557: libs/image/CMakeFiles/kritaimage.dir/kis_gauss_rect_mask_generator.cpp.o] Error 1 [ 276s] make[2]: *** [libs/image/CMakeFiles/kritaimage.dir/build.make:3729: libs/image/CMakeFiles/kritaimage.dir/kis_curve_circle_mask_generator.cpp.o] Error 1 [ 276s] make[2]: *** [libs/image/CMakeFiles/kritaimage.dir/build.make:3745: libs/image/CMakeFiles/kritaimage.dir/kis_curve_rect_mask_generator.cpp.o] Error 1
sorry, the error is before that: [ 275s] In file included from /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_gauss_circle_mask_generator.cpp:19: [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'xsimd::batch_bool<float, A> KisAntialiasingFadeMaker1D<BaseFade>::needFade(xsimd::batch<float, A>&)': [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:96:23: error: 'set_one' is not a member of 'xsimd' [ 275s] 96 | dist = xsimd::set_one(dist, outsideMask); [ 275s] | ^~~~~~~ [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h: In member function 'void KisAntialiasingFadeMaker2D<BaseFade>::apply2DFader(xsimd::batch<float, A>&, xsimd::batch_bool<float, A>&, xsimd::batch<float, A>&, xsimd::batch<float, A>&) const': [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:24: error: 'truncate_to_type' is not a member of 'xsimd' [ 275s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 275s] | ^~~~~~~~~~~~~~~~ [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:241:49: error: expected primary-expression before '>' token [ 275s] 241 | xsimd::truncate_to_type<uint16_t>(vValue); [ 275s] | ^ [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:245:25: error: 'all' is not a member of 'xsimd' [ 275s] 245 | if (!xsimd::all(fadeXStartMask)) { [ 275s] | ^~~ [ 275s] /home/abuild/rpmbuild/BUILD/krita-5.1.40git.20221123T004548~942c5936e/libs/image/kis_antialiasing_fade_maker.h:255:25: error: 'all' is not a member of 'xsimd' [ 275s] 255 | if (!xsimd::all(fadeYStartMask)) { [ 275s] | ^~~
I've updated the MR with all the instances of xsimd usage being checked for a valid architecture available, except the detection code itself. Let me know if that suffices, if not, please attach the backtrace again.
Git commit f115e01a2e37c2cd0481dd31e23ce0b071b06d53 by Halla Rempt, on behalf of L. E. Segovia. Committed on 29/11/2022 at 11:34. Pushed by rempt into branch 'master'. xsimd: Do not allow usage without a supported architecture present M +29 -29 benchmarks/kis_composition_benchmark.cpp M +2 -2 libs/image/kis_antialiasing_fade_maker.h M +1 -1 libs/image/kis_brush_mask_processor_factories.cpp M +1 -1 libs/image/kis_brush_mask_vector_applicator.h M +1 -1 libs/image/vc_extra_math.h M +1 -1 libs/multiarch/xsimd_extensions/xsimd.hpp M +1 -1 libs/pigment/KoAlphaMaskApplicator.h M +1 -1 libs/pigment/KoColorTransferFunctions.h M +4 -0 libs/pigment/compositeops/KoStreamedMath.h M +1 -1 libs/pigment/tests/KoRgbU8ColorSpaceTester.cpp M +6 -6 plugins/impex/heif/kis_heif_import_tools.cpp https://invent.kde.org/graphics/krita/commit/f115e01a2e37c2cd0481dd31e23ce0b071b06d53
Git commit d495e79e01aeaa659c1819e237b9f36ff7d53396 by L. E. Segovia. Committed on 29/11/2022 at 14:52. Pushed by lsegovia into branch 'krita/5.1'. xsimd: Do not allow usage without a supported architecture present (cherry picked from commit f115e01a2e37c2cd0481dd31e23ce0b071b06d53) M +29 -29 benchmarks/kis_composition_benchmark.cpp M +2 -2 libs/image/kis_antialiasing_fade_maker.h M +1 -1 libs/image/kis_brush_mask_processor_factories.cpp M +1 -1 libs/image/kis_brush_mask_vector_applicator.h M +1 -1 libs/image/vc_extra_math.h M +1 -1 libs/multiarch/xsimd_extensions/xsimd.hpp M +1 -1 libs/pigment/KoAlphaMaskApplicator.h M +88 -78 libs/pigment/KoColorTransferFunctions.h M +4 -0 libs/pigment/compositeops/KoStreamedMath.h M +1 -1 libs/pigment/tests/KoRgbU8ColorSpaceTester.cpp https://invent.kde.org/graphics/krita/commit/d495e79e01aeaa659c1819e237b9f36ff7d53396