Hi all, I build LibreOffice from source on an openSUSE 15.4 -x64 and it breaks inside the skia module. I made a fresh git checkout today and it breaks inside that module. I tried to remove the last three commits inside that module (step by step), but that didn't solve the issue. The build breaks with the following compiler messages: ---- begin compiler messages ------- [LNK] Executable/bestreversemap [CXX] external/skia/source/SkMemory_malloc.cxx [CXX] external/skia/source/skia_compiler.cxx [CXX] external/skia/source/skia_opts.cxx [CXX] workdir/UnpackedTarball/skia/src/base/SkArenaAlloc.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkBlockAllocator.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkBuffer.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkContainers.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkCubics.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkDeque.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkFloatingPoint.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkHalf.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkMalloc.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkMathPriv.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkQuads.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkSafeMath.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkSemaphore.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkSharedMutex.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkSpinlock.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkTDArray.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkThreadID.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkTSearch.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkUtils.cpp [CXX] workdir/UnpackedTarball/skia/src/base/SkUTF.cpp [CXX] workdir/UnpackedTarball/skia/src/codec/SkAndroidCodecAdapter.cpp [CXX] workdir/UnpackedTarball/skia/src/codec/SkAndroidCodec.cpp [CXX] workdir/UnpackedTarball/skia/src/codec/SkBmpBaseCodec.cpp /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp: In static member function ‘static SkSpan<const float> SkBezierQuad::Intersect(double, double, double, double, double, double, double, float*)’: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: error: class template argument deduction failed: return SkSpan{intersectionStorage, intersectionCount}; ^ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: error: no matching function for call to ‘SkSpan(<brace-enclosed initializer list>)’ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:122:1: note: candidate: template<class Container> SkSpan(Container&&)-> SkSpan<typename std::remove_pointer<decltype (std::data(declval<Container>()))>::type> SkSpan(Container&&) -> ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:122:1: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: couldn't deduce template parameter ‘Container’ return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:79:5: note: candidate: template<class T> SkSpan(std::initializer_list<_Tp>)-> SkSpan<T> SkSpan(std::initializer_list<T> il SK_CHECK_IL_LIFETIME) ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:79:5: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: deduced conflicting types for parameter ‘_Tp’ (‘float*’ and ‘int’) return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:78:15: note: candidate: template<class T, class Container> SkSpan(Container&&)-> SkSpan<T> constexpr SkSpan(Container&& c) : SkSpan(std::data(c), std::size(c)) { } ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:78:15: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: couldn't deduce template parameter ‘T’ return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:76:34: note: candidate: template<class T, long unsigned int N> SkSpan(T (&)[N])-> SkSpan<T> template<size_t N> constexpr SkSpan(T(&a)[N]) : SkSpan(a, N) { } ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:76:34: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: deduced conflicting types for parameter ‘T’ (‘float*’ and ‘int’) return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:75:15: note: candidate: template<class T> SkSpan(const SkSpan<T>&)-> SkSpan<T> constexpr SkSpan(const SkSpan& o) = default; ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:75:15: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: couldn't deduce template parameter ‘T’ return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:74:15: note: candidate: template<class T, class U, class> SkSpan(const SkSpan<U>&)-> SkSpan<T> constexpr SkSpan(const SkSpan<U>& that) : fPtr(std::data(that)), fSize(std::size(that)) {} ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:74:15: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: couldn't deduce template parameter ‘T’ return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:69:15: note: candidate: template<class T, class Integer, typename std::enable_if<is_integral_v<Integer>, bool>::type <anonymous> > SkSpan(T*, Integer)-> SkSpan<T> constexpr SkSpan(T* ptr, Integer size) : fPtr{ptr}, fSize{SkToSizeT(size)} { ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:69:15: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: candidate expects 2 arguments, 1 provided return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:66:15: note: candidate: template<class T> SkSpan()-> SkSpan<T> constexpr SkSpan() : fPtr{nullptr}, fSize{0} {} ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:66:15: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: candidate expects 0 arguments, 1 provided return SkSpan{intersectionStorage, intersectionCount}; ^ In file included from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.h:10:0, from /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:8: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:64:7: note: candidate: template<class T> SkSpan(SkSpan<T>)-> SkSpan<T> class SkSpan { ^~~~~~ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/include/private/base/SkSpan_impl.h:64:7: note: template argument deduction/substitution failed: /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: note: couldn't deduce template parameter ‘T’ return SkSpan{intersectionStorage, intersectionCount}; ^ /home/andreas/libogitrepos/libreoffice/workdir/UnpackedTarball/skia/src/base/SkBezierCurves.cpp:185:57: error: too many initializers for ‘<type error>’ make[1]: *** [/home/andreas/libogitrepos/libreoffice/solenv/gbuild/LinkTarget.mk:404: /home/andreas/libogitrepos/libreoffice/workdir/GenCxxObject/UnpackedTarball/skia/src/base/SkBezierCurves.o] Fehler 1 make[1]: *** Es wird auf noch nicht beendete Prozesse gewartet.... make: *** [Makefile:289: build] Fehler 2 ------ end compiler messages ---------- I created a fresh branch and reseted it hard to commit 9a5329a266bd74abc4794f1fcbae3db07582dbde, the latest one before the update to skia m116. And this solved the issue and the skia module builds. Regards, Andreas -- ## Free Software Advocate ## Plone add-on developer ## My blog: http://www.amantke.de/blog