Large builds with poudriere
marklmi at yahoo.com
Fri May 21 04:58:36 UTC 2021
On 2021-May-20, at 21:10, Chris <portmaster at bsdforge.com> wrote:
> On 2021-05-20 13:47, Mark Millard wrote:
>> Chris portmaster at bsdforge.com wrote on
>> Thu May 20 20:09:29 UTC 2021 :
>>> On 2021-05-20 12:21, Kevin Oberman wrote:
>>> > . . .
>>> > You can greatly reduce the build-time for devel/llvm* by changing the
>>> > config to BE_NATIVE to avoid building backends for all FreeBSD supported
>>> > platforms. Obviously this is not acceptable for many cases, but if you
>>> > never cross-compile for other platforms, it's a really big win.
>>> If I understand correctly. Isn't your suggestion synonymous with
>> So far as I know, devel/llvm* builds make no use of WITHOUT_CROSS_COMPILER
>> definitions ( documented in src.conf ) or what I mention below (also from
>> src.conf documentation).
>> As for what is analogous in src.conf's documentation for system
>> builds: BE_NATIVE in an devel/llvm* for a given context would be
>> analogous to using a specific mix of:
>> WITHOUT_LLVM_TARGET_AARCH64 vs. WITH_LLVM_TARGET_AARCH64
>> WITHOUT_LLVM_TARGET_ARM vs. WITH_LLVM_TARGET_ARM
>> WITHOUT_LLVM_TARGET_MIPS vs. WITH_LLVM_TARGET_MIPS
>> WITHOUT_LLVM_TARGET_POWERPC vs. WITH_LLVM_TARGET_POWERPC
>> WITHOUT_LLVM_TARGET_RISCV vs. WITH_LLVM_TARGET_RISCV
>> WITHOUT_LLVM_TARGET_X86 vs. WITH_LLVM_TARGET_X86
>> Some of the mixes would simulate the various devel/llvm* ports
>> BE_NATIVE's intent for various platforms. (BE_NATIVE does not
>> work in all contexts, last I tried it anyway.)
> Ahh. My mistake I guess. I somehow got the idea that defining
> WITHOUT_CROSS_COMPILER caused llvm to build only what's needed
> build/bootstrap for the arch it's (currently) running on. Which
> would, of course. Slim down the buildtime/installed footprint.
(I'm not trying to have my wording below cover older gcc based
13.x of FreeBSD building 14.0 (for example) generally uses a
bootstrap compiler even for the same architecture. A difference
is the default target of the two compilers, such as:
even if that were the only difference at the time. (A different
form of "cross"?)
devel/llvm* does not have this bootstrapping issue that
is driven by FreeBSD definitions for building FreeBSD
--instead of by processor architecture.
WITHOUT_CROSS_COMPILER for a FreeBSD system build
and so can not be used for the 13.x to 14.0
example: such is not an example of "close"
if I understand right:
Set to not build any cross compiler in the cross-tools stage of
buildworld. When compiling a different version of FreeBSD than
what is installed on the system, provide an alternate compiler
with XCC to ensure success. When compiling with an identical
version of FreeBSD to the host, this option may be safely used.
This option may also be safe when the host version of FreeBSD is
close to the sources being built, but all bets are off if there
have been any changes to the toolchain between the versions.
When set, it enforces these options:
(One might have compilers around for XCC and such symbol use
but that is a different kind of context.)
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-ports