On Tue, 2023-09-26 at 10:44 +0200, Miklos Vajna wrote: > Hi, > > On Mon, Sep 25, 2023 at 01:48:01PM +0300, Stephan Bergmann <sbergman@xxxxxxxxxx> wrote: > > Was that maybe an intermittent Clang bug? It apparently doesn't hit the > > Jenkins Clang builds, and I don't see it with trunk Clang 18 either, but > > have dim memories that there was some issue with too-eager evaluation > > causing something like this at some point. Do you have a way to check with > > another Clang version, to substantiate that assumption? > > Yes, I can confirm downgrading to clang-12 would work around the > problem. > The phrase "too-eager evaluation" caught my eye here. What I see may be something else entirely, but here goes. I hesitate to bring it up, because I am getting along just fine without building skia, but maybe this will save someone a few minutes of investigation. I am running debian-sid with clang-14 and libstdc++-13-dev. With -std=c++20, clang++ complains about /usr/include/c++/13/chrono: /usr/include/c++/13/chrono:2320:48: error: call to consteval function 'std::chrono::hh_mm_ss::_S_fractional_width' is not a constant expression static constexpr unsigned fractional_width = {_S_fractional_width()}; ^ /usr/include/c++/13/chrono:2320:48: note: undefined function '_S_fractional_width' cannot be used in a constant expression /usr/include/c++/13/chrono:2275:2: note: declared here _S_fractional_width() I see the problem only with C++20 and that version of the compiler and libstdc++. I see no error message with - gcc version 13.2.0-7 - libstdc++ version 12: both _S_fractional_width and fractional_width are constexpr - default version of C++ I shall copy in an excerpt from typescript of the failing build of LO at the end of this message. Terry. excerpt from typescript of build -------------------------------- [0m[37;40m[[0m[32;40mCXX[0m[37;40m][0m workdir/UnpackedTarball/skia/src/core/SkBitmapDevice.cpp In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/core/SkBitmapDevice.cpp:8: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/core/SkBitmapDevice.h:19: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/core/SkImageFilterTypes.h:20: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/core/SkSpecialImage.h:19: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/gpu/ganesh/GrSurfaceProxyView.h:1 8: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/gpu/ganesh/GrSurfaceProxy.h:22: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/gpu/ganesh/GrGpuResource.h:14: In file included from /home/terry/lo_hacking/git/libo6/workdir/UnpackedTarball/skia/src/gpu/GpuTypesPriv.h:13: /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/chrono:2320:48: error: call to consteval function 'std::chrono::hh_mm_ss::_S_fractional_width' is not a constant expression static constexpr unsigned fractional_width = {_S_fractional_width()}; ^ /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/chrono:2320:48: note: undefined function '_S_fractional_width' cannot be used in a constant expression /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/chrono:2275:2: note: declared here _S_fractional_width() ^