On Sat, Dec 04, 2021 at 10:11:19AM +0000, Stuart Henderson wrote:
> On 2021/12/04 10:37, Sebastien Marie wrote:
> > I started to look at sparc64: it will an interesting arch, as c++
> > ports are using estdc++ by default. For now I don't copied the related
> > code from devel/llvm to devel/llvm13 (to make clang-13 to use estdc++
> > instead of libc++ for generated code), as I am unsure it would be
> > useful for building programs (but building libraries would be
> > problematic as mixing estdc++ and libc++ code will not work). For now,
> > I am experimenting.
> 
> libestdc++ is necessary for building programs too, if they link against
> any library that uses C++ itself. I suppose this probably doesn't matter
> for your needs though.

yes, but I need to properly think about it: we are building programs
and libraries which are used to build programs and libraries (it is
commonly called a compiler).

here, I don't have particular requirement regarding libc++ or estdc++
for libLLVM itself, neither for rustc or zig. but the resulting binary
(rustc or zig compilers) should be able to properly build
programs/libraries with libc++ or estdc++ (on sparc64) in order to
interact properly in port tree.


> No objection as a temporary measure (as long as it's clear that it's
> to support rust/zig rather than for general use), but I do hope it's fairly
> short-lived.
> 

It should be possible to remove at least some binaries (maybe clang,
clang++, etc...) from the port and only keep libraries. It would
enforce the "only for supporting rust/zig". But it could also help to
do some tests on base/ports with more recent clang version (seeing
which new warning option is breaking the build).

Regarding the live time, for Rust, it should be fine to go back
quickly to devel/llvm (as soon it is version >=12). rustc changed
the minimal llvm support due to codegen problems with llvm10 and
llvm11. Currently, they supports both llvm12 and llvm13.

But zig is only supporting one llvm release at time. the 0.8.x series
we have in ports is using llvm12 (I made the port to embedded it), and
the next serie (currently the main branch, which will be 0.9.x) is
using llvm13.

I could go back to have embedded llvm version in zig when they will
use llvm14, or go back to devel/llvm14 for zig and rust (if rust
supports it at this time).

Thanks.
-- 
Sebastien Marie

Reply via email to