Re: arm64 system clang & llvm

From: Mark Millard <marklmi_at_yahoo.com>
Date: Wed, 31 Jan 2024 01:17:06 UTC
On Jan 30, 2024, at 13:02, void <void@f-m.fm> wrote:

> Hi Mark,
> 
> On Tue, Jan 30, 2024 at 09:14:22AM -0800, Mark Millard wrote:
>> 
>> #Disables avoiding bootstrap: WITHOUT_LLVM_TARGET_ALL=
> 
> this means (if it's uncommented) it doesn't avoid bootstrap?

It used to cause unnecessary bootstrap rebuils
during the overall buildworld .

>> MALLOC_PRODUCTION=
>> WITH_MALLOC_PRODUCTION=
> 
> aren't these the same thing? (for -current context)

I frequently have files designed to be allowed in
a range of FreeBSD vintages that might not recognize
newer (or even older) notations. I change before
needing the new notation. I eventually get rid of the
older notation.

So I happen to have shown both notations.

>> 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?
> 
> What's EL0?

EL: Exception Level. Suggestive are:

EL0: Unprivileged execution (user space).

In increasing execution privilege order . . .

El1: Normal operating system kernel execution.

EL2: Non-secure state of execution for Hypervior execution (virtualization)

EL3: Allows the security state associated with the execution to be changed
     between insecure and secure (for secure monitor operation)

So hardware with only EL0 for AArch32/armv7 execution can not
boot a AArch32/armv7 kernel. But the OS can allow user code
to be AArch32/armv7 and run.

I'll note that even before lib32 was implemented, a
armv7 world could be installed into a directory
tree and one could then chroot (or jail) into that
directory tree and run AArch32/armv7 user code.
Now one does not need to involved a chroot/jail
to execution AARch32/armv7 code unless one wants
to.

> WITHOUT_LIB32= is also in src.conf

WITHOUT_LIB32 does not prevent the chroot/jail
technique from being used. But it does avoid
building any AArch32/armv7 code in the
buildworld (which is what you were after).

===
Mark Millard
marklmi at yahoo.com