devel/llvm10 (and 11) on aarch64: only BE_AMDGPU registered targets despite OPTIONS_FILE_SET+=BE_NATIVE also being set
Mark Millard
marklmi at yahoo.com
Fri Apr 9 17:51:42 UTC 2021
On 2021-Apr-8, at 10:46, Mark Millard <marklmi at yahoo.com> wrote:
> Building devel/llvm10 via poudriere-devel on a Cortex-A57
> system (OverDrive 1000), I ended up with just:
>
> # /usr/local/llvm10/bin/llc -version
> LLVM (http://llvm.org/):
> LLVM version 10.0.1
> Optimized build.
> Default target: aarch64-portbld-freebsd14.0
> Host CPU: (unknown)
>
> Registered Targets:
> amdgcn - AMD GCN GPUs
> r600 - AMD GPUs HD2XXX-HD6XXX
>
> from a context that has:
>
> # grep -r BE /usr/local/etc/poudriere.d/options/devel_llvm10/
> /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
>
> (I've used the combination in various llvm*'s for years,
> including using such for llvm10. Something has changed.)
>
> I'll not repeat the material here but llvm11 got the same
> sort of result.
>
> May be that "Host CPU: (unknown)" has something to do with
> it?
>
> This has been true since I built and installed back on
> 2021-Feb-11 and is true of my updating build started
> yesterday (bulk still in progress). LLVM10 pkg info
> from active install:
>
> # pkg info llvm10
> llvm10-10.0.1_5
> Name : llvm10
> Version : 10.0.1_5
> Installed on : Thu Feb 11 12:05:43 2021 PST
> Origin : devel/llvm10
> Architecture : FreeBSD:14:aarch64
> Prefix : /usr/local
> Categories : devel lang
> Licenses : MIT, BSD3CLAUSE, PD, LLVM, REGEX, LLVM2
> Maintainer : brooks at FreeBSD.org
> WWW : http://llvm.org/
> Comment : LLVM and Clang
> Options :
> BE_AMDGPU : on
> BE_FREEBSD : off
> BE_NATIVE : on
> BE_STANDARD : off
> CLANG : on
> DOCS : on
> EXTRAS : on
> LIT : on
> LLD : on
> LLDB : on
> LLD_LINK : on
> OPENMP : on
> PYCLANG : off
> Shared Libs required:
> libedit.so.0
> liblua-5.2.so
> libpython3.7m.so.1.0
> libxml2.so.2
> Shared Libs provided:
> libRemarks.so.10
> libarcher.so
> libclang-cpp.so.10
> liblldb.so.10
> libLTO.so.10
> libLLVM-10.so
> libomptarget.so
> libomp.so
> libclang.so.10
> Annotations :
> FreeBSD_version: 1400004
> repo_type : binary
> repository : custom
> Flat size : 509MiB
> Description :
> The LLVM Project is a collection of modular and reusable compiler and
> toolchain technologies.
>
> This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
> LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure
> these are built on.
>
> WWW: http://llvm.org/
>
>
> (So the above predates the git conversion.)
>
> The issue was first noticed via build failures like (from a
> log file):
>
> . . .
> Sanity testing C compiler: /usr/local/bin/clang10
> Is cross compiler: False.
> Sanity check compiler command line: /usr/local/bin/clang10 /wrkdirs/usr/ports/graphics/mesa-libs/work/mesa-20.2.3/_build/meson-private/sanitycheckc.c -o /wrkdirs/usr/ports/graphics/mesa-libs/work/mesa-20.2.3/_build/meson-private/sanitycheckc.exe -O2 -pipe -mcpu=cortex-a57 -g -fstack-protector-strong -fno-strict-aliasing -mcpu=cortex-a57 -pipe -D_FILE_OFFSET_BITS=64 -Wl,-rpath=/usr/local/llvm10/lib
> Sanity check compile stdout:
>
> -----
> Sanity check compile stderr:
> error: unable to create target: 'No available targets are compatible with triple "aarch64-portbld-freebsd14.0"'
> 1 error generated.
> . . .
>
>
> The FreeBSD is a non-debug build based on main 7381bbee29df:
>
> # ~/fbsd-based-on-what-freebsd-main.sh
> FreeBSD FBSDCA57 14.0-CURRENT FreeBSD 14.0-CURRENT mm-src-n245445-def0058cc690 GENERIC-NODBG arm64 aarch64 1400005 1400005
> def0058cc690 (HEAD -> mm-src) mm-src snapshot for mm's patched build in git context.
> merge-base: 7381bbee29df959e88ec59866cf2878263e7f3b2
> merge-base: CommitDate: 2021-03-12 20:29:42 +0000
> 7381bbee29df (freebsd/main, freebsd/HEAD, pure-src, main) cam: Run all XPT_ASYNC ccbs in a dedicated thread
> n245444 (--first-parent --count for merge-base)
Using OPTIONS_FILE_SET+=BE_STANDARD instead of
OPTIONS_FILE_SET+=BE_NATIVE did not have this
problem. (I've not tried BE_FREEBSD so far.)
Also, my Cortex-A7 (so: armv7) context did not have
the "amdgcn/r600 only" problem with
OPTIONS_FILE_SET+=BE_NATIVE :
# /usr/local/llvm10/bin/llc -version
LLVM (http://llvm.org/):
LLVM version 10.0.1
Optimized build.
Default target: armv7-portbld-freebsd14.0-gnueabihf
Host CPU: (unknown)
Registered Targets:
amdgcn - AMD GCN GPUs
arm - ARM
armeb - ARM (big endian)
r600 - AMD GPUs HD2XXX-HD6XXX
thumb - Thumb
thumbeb - Thumb (big endian)
# pkg info llvm10
llvm10-10.0.1_5
Name : llvm10
Version : 10.0.1_5
Installed on : Fri Feb 12 11:59:11 2021 PST
Origin : devel/llvm10
Architecture : FreeBSD:14:armv7
Prefix : /usr/local
Categories : devel lang
Licenses : MIT, BSD3CLAUSE, PD, REGEX, LLVM2, LLVM
Maintainer : brooks at FreeBSD.org
WWW : http://llvm.org/
Comment : LLVM and Clang
Options :
BE_AMDGPU : on
BE_FREEBSD : off
BE_NATIVE : on
BE_STANDARD : off
CLANG : on
DOCS : on
EXTRAS : on
LIT : on
LLD : on
LLDB : on
LLD_LINK : on
PYCLANG : off
Shared Libs required:
libedit.so.0
liblua-5.2.so
libpython3.7m.so.1.0
libxml2.so.2
Shared Libs provided:
libLTO.so.10
libRemarks.so.10
libLLVM-10.so
libclang-cpp.so.10
liblldb.so.10
libclang.so.10
Annotations :
FreeBSD_version: 1400004
repo_type : binary
repository : custom
Flat size : 511MiB
Description :
The LLVM Project is a collection of modular and reusable compiler and
toolchain technologies.
This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker),
LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure
these are built on.
WWW: http://llvm.org/
So somehow specific to Cortex-A57/Cortex-A72 or to aarch64
generally. (The MACCHIATObin Double Shot had the same
build problem as the OverDrive 1000.)
It might be appropriate to disable the BE_NATIVE option
for aarch64 if it is going to silently not produce aarch64
support.
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-ports
mailing list