On 5/22/26 09:34, Slawa Olhovchenkov wrote:
> On Sat, Apr 25, 2026 at 02:18:54PM +0000, Dimitry Andric wrote:
>
>> The branch main has been updated by dim:
>>
>> URL:
>> https://cgit.FreeBSD.org/src/commit/?id=700637cbb5e582861067a11aaca4d053546871d2
>>
>> commit 700637cbb5e582861067a11aaca4d053546871d2
>> Merge: 6243d755fb82 3f709e42e3be
>> Author: Dimitry Andric <[email protected]>
>> AuthorDate: 2025-12-07 15:15:22 +0000
>> Commit: Dimitry Andric <[email protected]>
>> CommitDate: 2026-04-25 14:08:55 +0000
>>
>> Merge llvm-project main llvmorg-21-init-19288-gface93e724f4
>>
>> This updates llvm, clang, compiler-rt, libc++, libunwind, lld, lldb and
>> openmp to llvm-project main llvmorg-21-init-19288-gface93e724f4, the
>> last commit before the upstream release/21.x branch was created.
>>
>> PR: 292067
>> MFC after: 1 month
>
> This is broke at least graphics/krita
> I mean __type_traits/is_integral.h is incorrect now: template <class
> _Tp> struct __libcpp_is_integral defined only for
> !__has_builtin(__is_integral)
>
>
Well, use of non-public LLVM lib++ types are subject to upstream
removal or redesign at any LLVM update:
QUOTE
In file included from
/wrkdirs/usr/ports/graphics/krita/work/.build/libs/pigment/kritapigment_autogen/EWIEGA46WW/../../../../../krita-5.2.14/libs/pigment/KoColorSpaceMaths.h:109:
/wrkdirs/usr/ports/graphics/krita/work/krita-5.2.14/libs/global/KisHalfTraits.h:33:10:
error: no template named '__libcpp_is_integral'; did you mean
'__libcpp_is_final'?
33 | struct __libcpp_is_integral<half>
| ^~~~~~~~~~~~~~~~~~~~
| __libcpp_is_final
/usr/include/c++/v1/__type_traits/is_final.h:22:8: note:
'__libcpp_is_final' declared here
22 | struct __libcpp_is_final : integral_constant<bool,
__is_final(_Tp)> {};
| ^
1 error generated.
END QUOTE
Where:
work/krita-5.2.14/libs/global/KisHalfTraits.h has:
QUOTE
#elif defined _LIBCPP_VERSION
template<>
struct __libcpp_is_integral<half>
: public false_type { };
END QUOTE
That __ prefix in the __libcpp_is_integral name indicates it is only for
internal LLVM libc++ use and is subject to removal or
incompatible-redesign updates or such between any 2 libc++ updates.
graphics/krita can not validly expect to be portable across LLVM
releases as written. It is actually in violation of the C++ standards
relative to its use of names with __ prefixes.
--
===
Mark Millard
marklmi at yahoo.com