Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Aug 2023 14:13:51 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Juraj Lutter <otis@freebsd.org>
Cc:        Mike Karels <mike@karels.net>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, Current FreeBSD <freebsd-current@freebsd.org>
Subject:   Re: Error crosscompiling 14.0-ALPHA1 on amd64 for arm64.aarch64
Message-ID:  <3C630E2F-959E-46BC-8DAE-DA19C3A6912E@yahoo.com>
In-Reply-To: <B1A70DF1-994F-47D9-95F2-B79E559EF747@yahoo.com>
References:  <3B0BBEB1-D16C-405A-B2FA-F53022CFC925.ref@yahoo.com> <3B0BBEB1-D16C-405A-B2FA-F53022CFC925@yahoo.com> <3AE647E3-B988-4387-BF56-A2DB6533B5FD@FreeBSD.org> <B1A70DF1-994F-47D9-95F2-B79E559EF747@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 13, 2023, at 14:01, Mark Millard <marklmi@yahoo.com> wrote:

> On Aug 13, 2023, at 13:19, Juraj Lutter <otis@freebsd.org> wrote:
>=20
>>> On 13 Aug 2023, at 21:13, Mark Millard <marklmi@yahoo.com> wrote:
>>>=20
>>> But the offical CI builds on amd64 do not have the problem.
>>>=20
>>> We still have not found what is different about your context from =
the
>>> standard context used for CI builds and snapshot builds, all of =
which
>>> have worked find building on amd64 to target aarch64 with armv7 =
support.
>>=20
>> My src.conf:
>>=20
>> WITHOUT_PROFILE=3Dyes
>> WITHOUT_TESTS=3Dyes
>> WITHOUT_STATIC=3Dyes
>>=20
>> WITHOUT_LLVM_TARGET_ALL=3Dyes
>=20
> Starting below this is wrong presuming all
> builds are actually done on amd64:
>=20
>> .if "${TARGET}" =3D=3D "arm64" && "${TARGET_ARCH}" =3D=3D "aarch64"
>> KERNCONF?=3DGENERIC-MMCCAM
>> REPODIR?=3D/data/poudriere/packages/pkgbase
>> MODULES_EXTRA=3D"rpi_ft5406"
>> WITH_LLVM_TARGET_AARCH64=3Dyes
>> WITH_LLVM_TARGET_ARM=3Dyes
>> .else
>> KERNCONF?=3DGENERIC-NODEBUG
>> REPODIR?=3D/data/poudriere/packages/pkgbase
>> WITH_LLVM_TARGET_AARCH64=3Dyes
>> WITH_LLVM_TARGET_X86=3Dyes
>> .endif
>=20
> Ending here.
>=20
> This is written as if there were separate toolchains for
> each target. That is not how llvm/clang/lld works,
> unlike gcc. One toolchain covers all the targets. That
> is what the FreBSD llvm support is structured for.
>=20
> You want the one llvm/clang/lld toolchain that includes
> everything required to build any/all of:
>=20
> A) amd64
> B) i386 for amd64's lib32
> C) aarch64
> D) armv7 for aarch64's lib32
>=20
> So the *_LLVM_TARGET_* parts would be more like:
>=20
> WITHOUT_PROFILE=3Dyes
> WITHOUT_TESTS=3Dyes
> WITHOUT_STATIC=3Dyes
>=20
> WITHOUT_LLVM_TARGET_ALL=3Dyes
> WITH_LLVM_TARGET_AARCH64=3Dyes
> WITH_LLVM_TARGET_X86=3Dyes
> WITH_LLVM_TARGET_AARCH64=3Dyes
> WITH_LLVM_TARGET_ARM=3Dyes

Dumb editing error, not having an AMD64 line
and having two AARCH64 lines. So, instead:

WITHOUT_LLVM_TARGET_ALL=3Dyes
WITH_LLVM_TARGET_AMD64=3Dyes
WITH_LLVM_TARGET_X86=3Dyes
WITH_LLVM_TARGET_AARCH64=3Dyes
WITH_LLVM_TARGET_ARM=3Dyes

> So: outside the later conditional logic.
>=20
> (Your REPODIR?=3D lines are identical and could also be factored
> out of the conditional logic if they are not expected to be
> independently changed. Only the KERNCONF?=3D lines are actually
> target specific, needing to be in the conditional logic.)
>=20
>> make.conf is empty, git workdir has `main=E2=80=99 checked out, =
without any modifications (git status reports clean workdir)
>>=20
>=20

I should have noted that if the existing toolchain does not
cover all of ARM64, X86, AARCH64, and ARM then it may take
special activity to get to the point of having all 4 spanned
in each instance of the toolchain. Once in place, things
should be more self-propagating.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3C630E2F-959E-46BC-8DAE-DA19C3A6912E>