NOTE: llvm-project 13.0.0 merged to stable/12 (was: Re: /stable/12 future)

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 25 Dec 2021 20:08:28 UTC
On 8 Dec 2021, at 20:47, Jan Beich <jbeich@FreeBSD.org> wrote:
> 
> 12.3-RELEASE still uses Clang/libc++ 10 from 1 year ago. Do you plan
> to update in future as /stable/12 is supported until 2024-06-30?
> 
> libc++ lags behind libstdc++ on C++20 features and sticking to an old
> version puts the entire branch on a deathbed. Given drm-kmod on
> /stable/12 is stuck with Linux 4.16 era (discontinued after 2018-06-26)
> /stable/12 is already mostly dead from desktop POV.
> 
> See also
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215193
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260139

After https://cgit.freebsd.org/src/commit/?h=stable/12&id=0b7be89b329e
(which bumps __FreeBSD_version to 1203505), stable/12 has llvm-project
13.0.0, the same version as stable/13 and main.

I had to add a few fixes here and there to cope with the architectures
that have disappeared in later branches, i.e. arm.arm (aka armv4), mips
and sparc64. So if you have such systems, please check if everything
still works as expected.

Note that arm.arm was switched to use clang with lld, instead of clang
with ld.bfd 2.17.50, otherwise the BFD linker would crash in various
interesting ways. (And unfortunately any fix falls under GPLv3 so cannot
be imported.)

The other old architectures, mips and sparc64, still use gcc 4.2.1 with
ld.bfd 2.17.50 by default. If there is any interest, we could attempt to
switch mips to using clang and lld. But I don't think that will work for
sparc64.

-Dimitry