Re: arm64 system clang & llvm

From: Mark Millard <marklmi_at_yahoo.com>
Date: Tue, 30 Jan 2024 17:14:22 UTC
On Jan 30, 2024, at 08:01, void <void@f-m.fm> wrote:

> context is main-n267804 arm64
> 
> I'd like to avoid building base compilers for arches I'll never use.
> I want aarch64 *only*
> 
> To achieve this, there's the following in /etc/src.conf
> 
> ###
> # LLVM
> WITHOUT_LLVM_TARGET_ALL=
> WITH_LLVM_TARGET_AARCH64=
> WITHOUT_LLVM_TARGET_ARM=
> WITHOUT_LLVM_ASSERTIONS=
> 
> But looking at buildworld output, I see what *looks* like building for other arches happening. Is this the case, or am I reading it wrong, or
> is the src.conf wrong?

FYI: On aarch64, for non-debug builds I use:

#Disables avoiding bootstrap: WITHOUT_LLVM_TARGET_ALL=
WITH_LLVM_TARGET_AARCH64=
WITH_LLVM_TARGET_ARM=
WITHOUT_LLVM_TARGET_MIPS=
WITHOUT_LLVM_TARGET_POWERPC=
WITHOUT_LLVM_TARGET_RISCV=
WITHOUT_LLVM_TARGET_X86=
MALLOC_PRODUCTION=
WITH_MALLOC_PRODUCTION=
WITHOUT_ASSERT_DEBUG=
WITHOUT_LLVM_ASSERTIONS=


(I've not validated the comment in a very long time.
There used to be the odd side effect on when bootstrap
builds happened.)

As FreeBSD main [so: 15] has lib32 support by default
these days, does your aarch64 hardware support
AArch32/armv7 code, at least for EL0? Most of the
hardware around probabaly does.  Having
WITH_LLVM_TARGET_AARCH64= may override any attempt
to disable code generation for the likely
hardware-supported type of code.

But, if it is possible to have aarch64 disable
armv7 code generation, you would also need:

WITHOUT_LIB32=

Otherwise, you would be asking for armv7 code
generation to be done in order to build lib32.

(Since AARch32/armv7 also supports armv6, that
is likely also involved. But I keep the wording
generally simpler.)


===
Mark Millard
marklmi at yahoo.com