Re: Error crosscompiling 14.0-ALPHA1 on amd64 for arm64.aarch64

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 13 Aug 2023 17:50:03 UTC
On Aug 13, 2023, at 10:10, Juraj Lutter <otis@FreeBSD.org> wrote:

> Mark,
> 
>> On 13 Aug 2023, at 19:04, Mark Millard <marklmi@yahoo.com> wrote:
>> 
>> No arm64.aarch64/tmp/ SYSTEM_COMPILER or SYSTEM_LINKER bootstrap compiler/linker were built.
>> 
>> From what I can tell, this leads to:
>> 
>> cc -march=armv7 -m32 -target armv7-unknown-freebsd14.0-gnueabihf  -DCOMPAT_LIBCOMPAT=\"32\"  -DCOMPAT_libcompat=\"32\"  -DCOMPAT_LIB32  --sysroot=/usr/obj/usr/src/arm64.aarch64/tmp  -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/lib32  -O2 -pipe -fno-common -fPIC  -g -gz=zlib -MD  -MF.depend.libssp_nonshared.o -MTlibssp_nonshared.o -std=gnu99 -Wno-format-zero-length -fstack-protector-strong -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts -Wnested-externs -Wold-style-definition -Wno-pointer-sign -Wdate-time -Wmissing-variable-declarations -Wthread-safety -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-error=unused-but-set-parameter  -Qunused-arguments    -c /usr/src/lib/libssp_nonshared/libssp_nonshared.c -o libssp_nonshared.o
>> 
>> using the pre-existing system compiler that, in your context, gets:
>> 
>> error: unable to create target: 'No available targets are compatible with triple "armv7-unknown-freebsd14.0-gnueabihf"'
>> 1 error generated.
>> 
> 
> True, exactly the same error I’m getting.

It was extracted from a copy of your log file.

>> I doubt that "make package" was tested for being able to handle
>> the lib32 addition to aarch64 builds for SYSTEM_COMPILER or
>> SYSTEM_LINKER bootstrap cases.
>> 
> 
> I’m getting it in buildworld, not in packages (it does not come to packages target)
> 

Sorry. Looks like I misapplied one of your messages mentioning
use of "make package" as specifying the context for the log file.

Still, your log file does not show an arm64.aarch64/tmp/ time
frame build of the SYSTEM_COMPILER or SYSTEM_LINKER bootstrap
compiler/linker.

There should have also been:

tmp/obj-tools/lib/clang/libllvm...]
tmp/obj-tools/lib/clang/libclang...]
tmp/obj-tools/lib/clang/headers...]
tmp/obj-tools/usr.bin/clang/clang...]
tmp/obj-tools/usr.bin/clang/lld...]

to go with:

make[1]: "/usr/src/Makefile.inc1" line 340: SYSTEM_COMPILER: libclang will be built for bootstrapping a cross-compiler.
make[1]: "/usr/src/Makefile.inc1" line 345: SYSTEM_LINKER: libclang will be built for bootstrapping a cross-linker.

So it still looks to me like a build infrastructure problem:
it did not do what it said it would do. I've no clue about
why at this point.

I'll note that clang and lld do not get per-target builds like
gcc does. "bootstrap" means for getting version differences early
on in this context, not the targeting.


—
Juraj Lutter
otis@FreeBSD.org



===
Mark Millard
marklmi at yahoo.com