Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2021 21:58:30 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Chris <portmaster@bsdforge.com>
Cc:        FreeBSD ports <freebsd-ports@freebsd.org>
Subject:   Re: Large builds with poudriere
Message-ID:  <4BCB41F0-AAFD-4563-AC1D-7811874D5180@yahoo.com>
In-Reply-To: <5d6792d4d7ebd472624e7469645a7878@bsdforge.com>
References:  <3C5D2230-D408-486A-A2AC-9E1F64E9F43D.ref@yahoo.com> <3C5D2230-D408-486A-A2AC-9E1F64E9F43D@yahoo.com> <5d6792d4d7ebd472624e7469645a7878@bsdforge.com>

next in thread | previous in thread | raw e-mail | index | archive | help


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
>>> WITHOUT_CROSS_COMPILER?
>> 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
FreeBSD alternatives.)

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:

aarch64-unknown-freebsd13.0
vs.
aarch64-unknown-freebsd14.0

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
causes:

             WITHOUT_CLANG_BOOTSTRAP
             WITHOUT_ELFTOOLCHAIN_BOOTSTRAP
             WITHOUT_LLD_BOOTSTRAP

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:

  WITHOUT_CROSS_COMPILER
             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:

             WITHOUT_CLANG_BOOTSTRAP
             WITHOUT_ELFTOOLCHAIN_BOOTSTRAP
             WITHOUT_LLD_BOOTSTRAP

(One might have compilers around for XCC and such symbol use
but that is a different kind of context.)


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BCB41F0-AAFD-4563-AC1D-7811874D5180>