Date: Sun, 13 Aug 2023 14:01:11 -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: <B1A70DF1-994F-47D9-95F2-B79E559EF747@yahoo.com> In-Reply-To: <3AE647E3-B988-4387-BF56-A2DB6533B5FD@FreeBSD.org> References: <3B0BBEB1-D16C-405A-B2FA-F53022CFC925.ref@yahoo.com> <3B0BBEB1-D16C-405A-B2FA-F53022CFC925@yahoo.com> <3AE647E3-B988-4387-BF56-A2DB6533B5FD@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 13, 2023, at 13:19, Juraj Lutter <otis@freebsd.org> wrote: >> 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 Starting below this is wrong presuming all builds are actually done on amd64: > .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 Ending here. 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. You want the one llvm/clang/lld toolchain that includes everything required to build any/all of: A) amd64 B) i386 for amd64's lib32 C) aarch64 D) armv7 for aarch64's lib32 So the *_LLVM_TARGET_* parts would be more like: WITHOUT_PROFILE=3Dyes WITHOUT_TESTS=3Dyes WITHOUT_STATIC=3Dyes 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 So: outside the later conditional logic. (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.) > make.conf is empty, git workdir has `main=E2=80=99 checked out, = without any modifications (git status reports clean workdir) >=20 =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?B1A70DF1-994F-47D9-95F2-B79E559EF747>