Large builds with poudriere

Brooks Davis brooks at freebsd.org
Thu May 20 23:36:08 UTC 2021


On Thu, May 20, 2021 at 03:09:32PM -0700, Mark Millard wrote:
> Kevin Oberman rkoberman at gmail.com wrote on
> Thu May 20 21:37:28 UTC 2021 :
> 
> > On Thu, May 20, 2021 at 12:48 PM Mark Millard <marklmi at yahoo.com> wrote:
> > 
> > > Kevin Oberman rkoberman at gmail.com wrote on
> > > Thu May 20 19:21:24 UTC 2021 :
> > >
> > > > 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.
> > >
> > >
> > > Unfortunately, using something like (llvm10 is just one example,
> > > llvm11 showed the same sort of problem at the time):
> > >
> > > /usr/local/etc/poudriere.d/options/devel_llvm10/options:_FILE_COMPLETE_OPTIONS_LIST=BE_AMDGPU
> > > CLANG DOCS EXTRAS LIT LLD LLDB LLD_LINK OPENMP PYCLANG BE_FREEBSD BE_NATIVE
> > > BE_STANDARD
> > >
> > > /usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_SET+=BE_AMDGPU
> > >
> > > /usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_UNSET+=BE_FREEBSD
> > >
> > > /usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_SET+=BE_NATIVE
> > >
> > > /usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_UNSET+=BE_STANDARD
> > >
> > > does not work for all platforms/targets. On a Cortex-A57
> > > this lead to:
> > >
> > > Registered Targets:
> > >   amdgcn - AMD GCN GPUs
> > >   r600   - AMD GPUs HD2XXX-HD6XXX
> > >
> > > In other words, aarch64 was missing. I had to pick
> > > BE_STANDARD or BE_FREEBSD to get something that
> > > would target aarch64 on aarch64.
> > >
> > > ===
> > > Mark Millard
> > > marklmi at yahoo.com
> > > ( dsl-only.net went
> > > away in early 2018-Mar)
> > >
> > Looks like the Makefile might need some work. I see stuff for handling
> > aach64/arm64, so it SHOULD work, but there are things I don't understand
> > about AARCH64 to figure it all out. Still, it should be detected.
> > 
> > Out of curiosity, if you do a "make -C  /usr/ports/devel/llvm10 config",
> > the line for BE_NATIVE should show the architecture you are running on. If
> > it's missing/something else, maybe you should ask brooks@ about it.
> 
> 
> On two types of Cortex-A72 context
> # make -C  /usr/ports/devel/llvm10 config
> 
> produced:
> 
> BE_NATIVE Backend(s) for this architecture ()
> 
> The same for each of:
> 
> # make -C  /usr/ports/devel/llvm80 config
> # make -C  /usr/ports/devel/llvm90 config
> # make -C  /usr/ports/devel/llvm11 config
> # make -C  /usr/ports/devel/llvm12 config
> 
> But this turns out to be because:
> 
> # make -C  /usr/ports/devel/llvm10 -V ARCH
> aarch64
> 
> yet the Makefiles have a test for arm64 instead:
> 
> .elif ${ARCH} == arm64
> _NATIVE_BACKENDS=       AAarch64

Ah, that's the key point.  I've fixed the ARCH value and fixed the
spelling of AArch64 in older ports where it was wrong.

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20210520/e855ac64/attachment.sig>


More information about the freebsd-ports mailing list