Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 13 Aug 2023 23:37:56 +0200
From:      Juraj Lutter <otis@FreeBSD.org>
To:        Mark Millard <marklmi@yahoo.com>
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:  <D9B03C8B-6A38-4638-BA65-2FB9F70A1C10@FreeBSD.org>
In-Reply-To: <3C630E2F-959E-46BC-8DAE-DA19C3A6912E@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> <3C630E2F-959E-46BC-8DAE-DA19C3A6912E@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help


> On 13 Aug 2023, at 23:13, Mark Millard <marklmi@yahoo.com> wrote:
>=20
> On Aug 13, 2023, at 14:01, Mark Millard <marklmi@yahoo.com> wrote:
>=20
>> 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
>=20

If you look closer, you will see that:

WITH_LLVM_TARGET_AARCH64=3Dyes
WITH_LLVM_TARGET_X86=3Dyes

is in effect when I do =E2=80=9Cmake buildworld=E2=80=9D without any =
TARGET and TARGET_ARCH, i.e. when I build the OS for the host (that is, =
14.0/amd64).

But once I specify make TARGET=3Darm64 TARGET_ARCH=3Daarch64, only the =
lines:

WITH_LLVM_TARGET_AARCH64=3Dyes
WITH_LLVM_TARGET_ARM=3Dyes

are in effect. The line =E2=80=9CWITH_LLVM_TARGET_ARM=3Dyes=E2=80=9D has =
only been added today for a test, but it did not make any difference.


=E2=80=94
Juraj Lutter
otis@FreeBSD.org




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D9B03C8B-6A38-4638-BA65-2FB9F70A1C10>