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,