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,

Reply via email to