Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2021 15:09:32 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Kevin Oberman <rkoberman@gmail.com>, FreeBSD ports <freebsd-ports@freebsd.org>, Brooks Davis <brooks@FreeBSD.org>
Subject:   Re: Large builds with poudriere
Message-ID:  <51FBF726-0FD7-43CA-98D4-F24B5AE5D974@yahoo.com>
References:  <51FBF726-0FD7-43CA-98D4-F24B5AE5D974.ref@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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:
>=20
> > 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_OPT=
IONS_LIST=3DBE_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+=3D=
BE_AMDGPU
> >
> > =
/usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_UNSET=
+=3DBE_FREEBSD
> >
> > =
/usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_SET+=3D=
BE_NATIVE
> >
> > =
/usr/local/etc/poudriere.d/options/devel_llvm10/options:OPTIONS_FILE_UNSET=
+=3DBE_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.
> >
> > =3D=3D=3D
> > 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.
>=20
> 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} =3D=3D arm64
_NATIVE_BACKENDS=3D       AAarch64


FYI (from one of the test environments):

# uname -apKU
FreeBSD CA72_4c8G_ZFS 13.0-RELEASE FreeBSD 13.0-RELEASE #0 =
releng/13.0-n244733-ea31abc261ff-dirty: Thu Apr 29 21:53:20 PDT 2021     =
root@CA72_4c8G_ZFS:/usr/obj/BUILDs/13_0R-CA72-nodbg-clang/usr/13_0R-src/ar=
m64.aarch64/sys/GENERIC-NODBG-CA72  arm64 aarch64 1300139 1300139


=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?51FBF726-0FD7-43CA-98D4-F24B5AE5D974>