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