On Fri, Nov 17, 2023 at 12:11:14PM +0100, Theo Buehler wrote: > On Wed, Nov 15, 2023 at 12:01:15PM +0000, Stuart Henderson wrote: > > On 2023/11/15 08:26, Otto Moerbeek wrote: > > > Any reason to not commit this? > > > > I didn't manage to get a bulk done before the llvm 16 carnage - here's > > an updated diff against -current, but it will be hard to get good > > testing at the moment. > > Ran this through a bulk with clang-13. Very little fallout. clang-16 > seems to have stabilized somewhat, but it's probably better to wait a > bit. I'll upgrade my builder to 16 and what happens. C++ is sensitive > to updates... > > Some have very simple fixes which I'll commit soonish: > > graphics/simgear #include <array> -> flightgear builds > inputmethods/libime #include <map> -> fcitx dependencies build > textproc/vislcg3 #include <array> -> apertium dicts build > > A few will need some digging: > > cad/prusaslicer > games/freeorion > geo/postgis ImageMagick weirdness is this even related? > graphics/mapnik > > cad/prusaslicer: > > /tmp/pobj/prusaslicer-2.6.1/PrusaSlicer-version_2.6.1/src/slic3r/GUI/Plater.cpp:5313:11: > error: call to member function 'load_files' is ambiguous > if (! load_files({ into_path(filename) }).empty()) { > ^~~~~~~~~~ > > games/freeorion > > ld: error: duplicate symbol: boost::phoenix::placeholders::uarg1 > >>> defined at ArithmeticRules.cpp > >>> > >>> CMakeFiles/freeorionparseobj.dir/parse/ArithmeticRules.cpp.o:(boost::phoenix::placeholders::uarg1) > >>> defined at BuildingsParser.cpp > >>> > >>> CMakeFiles/freeorionparseobj.dir/parse/BuildingsParser.cpp.o:(.bss+0x0) > > ld: error: duplicate symbol: boost::phoenix::placeholders::uarg2 > >>> defined at ArithmeticRules.cpp > >>> > >>> CMakeFiles/freeorionparseobj.dir/parse/ArithmeticRules.cpp.o:(boost::phoenix::placeholders::uarg2) > >>> defined at BuildingsParser.cpp > >>> > >>> CMakeFiles/freeorionparseobj.dir/parse/BuildingsParser.cpp.o:(.bss+0x2) > > graphics/mapnik: > > In file included from src/image_filter_grammar.cpp:24: > In file included from include/mapnik/image_filter_grammar_impl.hpp:29: > In file included from /usr/local/include/boost/spirit/include/phoenix.hpp:14: > In file included from /usr/local/include/boost/phoenix.hpp:11: > In file included from /usr/local/include/boost/phoenix/phoenix.hpp:19: > In file included from /usr/local/include/boost/phoenix/stl.hpp:14: > In file included from /usr/local/include/boost/phoenix/stl/tuple.hpp:115: > In file included from > /usr/local/include/boost/preprocessor/iteration/detail/local.hpp:818: > /usr/local/include/boost/preprocessor/iteration/detail/limits/local_256.hpp:16:9: > error: no member n > amed 'arg1' in namespace 'boost::phoenix::placeholders' > BOOST_PP_LOCAL_MACRO(1) > ^~~~~~~~~~~~~~~~~~~~~~~ > /usr/local/include/boost/phoenix/stl/tuple.hpp:114:71: note: expanded from > macro 'BOOST_PP_LOCAL_MACRO' > boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ > > geo/postgis: > > convert: attempt to perform an operation not allowed by the security policy > `@generator-E9FTPr/draw0 > ' @ error/string.c/FileToString/1020. > Failure return code (1) from command: convert -size 200x200 xc:none -fill > none -stroke "#6495ED" -st > rokewidth 4 -draw '@generator-E9FTPr/draw0' -flip > generator-E9FTPr/tmp0.pngreading styles from wkt/s > tyles.conf > > graphics/simgear: > > missing #include <array> > > /tmp/pobj/simgear-2020.3.17/simgear-2020.3.17/simgear/scene/viewer/Compositor.hxx:137:34: > error: imp > licit instantiation of undefined template > 'std::array<osg::ref_ptr<osg::Uniform>, 14>' > BuiltinUniforms _uniforms; > ^ > > > inputmethods/libime: > > missing #inlcude <map> > > /tmp/pobj/libime-1.0.17/libime-1.0.17/tools/libime_prediction.cpp:32:10: > error: implicit instantiat > ion of undefined template 'std::array<char, 28>' > auto state = model.nullState(); > ^ > /usr/include/c++/v1/__tuple:219:64: note: template is declared here > template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array; > ^ > 1 error generated. > > textproc/vislcg3 > > missing '#include <array>: > > /tmp/pobj/vislcg3-1.3.2/cg3-1.3.2/src/inlines.hpp:766:16: error: implicit > instantiation of undefined > template 'std::array<unsigned long long, 31>' > constexpr auto make_array_helper(Function f, std::index_sequence<Indices...>) > -> std::array<typename > invoke_result<Function, std::size_t>::type, sizeof...(Indices)> {
Attached is a patch you can add to your patches/ dir for Boost to fix a build issue with Boost::beast when building it as a dependency for downstream proecjts when using Clang 16.
https://github.com/boostorg/beast/commit/72c2eeb3980ed0dc530de9241e25b247517de018 [PATCH] ssl_stream doesn't use BOOST_BEAST_ASYNC_TPARAM1 due to clang errors. Index: boost/beast/ssl/ssl_stream.hpp --- boost/beast/ssl/ssl_stream.hpp.orig +++ boost/beast/ssl/ssl_stream.hpp @@ -673,7 +673,7 @@ class ssl_stream (public) ssl_stream<SyncStream>& stream, boost::system::error_code& ec); - template<class AsyncStream, BOOST_BEAST_ASYNC_TPARAM1 TeardownHandler> + template<class AsyncStream, typename TeardownHandler> friend void async_teardown( @@ -697,7 +697,7 @@ teardown( } template<class AsyncStream, - BOOST_BEAST_ASYNC_TPARAM1 TeardownHandler = net::default_completion_token_t<beast::executor_type<AsyncStream>>> + typename TeardownHandler = net::default_completion_token_t<beast::executor_type<AsyncStream>>> void async_teardown( boost::beast::role_type role,