From nobody Mon Apr 25 19:18:23 2022 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 933411A97006 for ; Mon, 25 Apr 2022 19:18:30 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: from spindle.one-eyed-alien.net (spindle.one-eyed-alien.net [199.48.129.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4KnFD55011z4cZZ for ; Mon, 25 Apr 2022 19:18:29 +0000 (UTC) (envelope-from brooks@spindle.one-eyed-alien.net) Received: by spindle.one-eyed-alien.net (Postfix, from userid 3001) id 871B73C0199; Mon, 25 Apr 2022 19:18:23 +0000 (UTC) Date: Mon, 25 Apr 2022 19:18:23 +0000 From: Brooks Davis To: "Patrick M. Hausen" Cc: "freebsd-current@freebsd.org" Subject: Re: Cross-compile worked, cross-install not so much ... Message-ID: <20220425191823.GA89506@spindle.one-eyed-alien.net> References: <3D48BE93-7D42-4AB2-82D4-88BBF4E1FD40@hausen.com> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="BOKacYhQ+x31HxR3" Content-Disposition: inline In-Reply-To: <3D48BE93-7D42-4AB2-82D4-88BBF4E1FD40@hausen.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Rspamd-Queue-Id: 4KnFD55011z4cZZ X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=none (mx1.freebsd.org: domain of brooks@spindle.one-eyed-alien.net has no SPF policy when checking 199.48.129.229) smtp.mailfrom=brooks@spindle.one-eyed-alien.net X-Spamd-Result: default: False [-1.98 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; ARC_NA(0.00)[]; FREEFALL_USER(0.00)[brooks]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-0.96)[-0.960]; NEURAL_HAM_LONG(-1.00)[-0.999]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; DMARC_NA(0.00)[freebsd.org]; AUTH_NA(1.00)[]; R_SPF_NA(0.00)[no SPF record]; NEURAL_SPAM_SHORT(0.88)[0.883]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; MLMMJ_DEST(0.00)[freebsd-current]; FORGED_SENDER(0.30)[brooks@freebsd.org,brooks@spindle.one-eyed-alien.net]; RCVD_COUNT_ZERO(0.00)[0]; SIGNED_PGP(-2.00)[]; R_DKIM_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; ASN(0.00)[asn:36236, ipnet:199.48.128.0/22, country:US]; FROM_NEQ_ENVFROM(0.00)[brooks@freebsd.org,brooks@spindle.one-eyed-alien.net] X-ThisMailContainsUnwantedMimeParts: N --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Apr 25, 2022 at 09:07:47PM +0200, Patrick M. Hausen wrote: > Hi all, >=20 > getting into FreeBSD ARM64 I tried to compile a current system on a fast = AMD64 VM and > now I am somewhat stuck - no help using search engines and the like. >=20 > 1st step: >=20 > # checkout main aka 14-CURRENT > cd /usr/src > make -j 8 TARGET=3Darm64 TARGET_ARCH=3Daarch64 buildworld buildkernel >=20 > That worked like a charm and I seem to have a well populated /usr/obj/usr= /src/arm64.aarch64. >=20 > 2nd step: >=20 > I then mounted /usr/src and /usr/obj on my Raspberry Pi via NFS. The bina= ries > in /usr/obj are the correct architecture and run perfectly well: >=20 > root@pi8:~ # file /usr/obj/usr/src/arm64.aarch64/bin/sh/sh > /usr/obj/usr/src/arm64.aarch64/bin/sh/sh: ELF 64-bit LSB pie executable,= ARM aarch64, version 1 (FreeBSD), dynamically linked, interpreter /libexec= /ld-elf.so.1, for FreeBSD 14.0 (1400057), FreeBSD-style, not stripped > root@pi8:~ # /usr/obj/usr/src/arm64.aarch64/bin/sh/sh > root@pi8:~ # ^D >=20 > 3rd step: >=20 > root@pi8:/usr/src # make TARGET=3Darm64 TARGET_ARCH=3Daarch64 installker= nel > -------------------------------------------------------------- > >>> Install check kernel > -------------------------------------------------------------- > -------------------------------------------------------------- > >>> Installing kernel GENERIC on Mon Apr 25 21:03:58 CEST 2022 > -------------------------------------------------------------- > cd /usr/obj/usr/src/arm64.aarch64/sys/GENERIC; MACHINE_ARCH=3Daarch64 = MACHINE=3Darm64 CPUTYPE=3D CC=3D"cc -target aarch64-unknown-freebsd14.0 --= sysroot=3D/usr/obj/usr/src/arm64.aarch64/tmp -B/usr/obj/usr/src/arm64.aarch= 64/tmp/usr/bin" CXX=3D"c++ -target aarch64-unknown-freebsd14.0 --sysroot= =3D/usr/obj/usr/src/arm64.aarch64/tmp -B/usr/obj/usr/src/arm64.aarch64/tmp/= usr/bin" CPP=3D"cpp -target aarch64-unknown-freebsd14.0 --sysroot=3D/usr/o= bj/usr/src/arm64.aarch64/tmp -B/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin" = AS=3D"as" AR=3D"ar" ELFCTL=3D"elfctl" LD=3D"ld" LLVM_LINK=3D"" NM=3Dnm OB= JCOPY=3D"objcopy" RANLIB=3Dranlib STRINGS=3D SIZE=3D"size" STRIPBIN=3D"st= rip" PATH=3D/usr/obj/usr/src/arm64.aarch64/tmp/bin:/usr/obj/usr/src/arm64.a= arch64/tmp/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/usr/bin:/usr/obj/usr= /src/arm64.aarch64/tmp/legacy/usr/sbin:/usr/obj/usr/src/arm64.aarch64/tmp/l= egacy/usr/bin:/usr/obj/usr/src/arm64.aarch64/tmp/legacy/bin:/usr/obj/usr/sr= c/arm64.aarch64/tmp/legacy/usr/libexec::/sbin:/bin:/usr/sbin:/usr/bin make= KERNEL=3Dkernel install > /bin/sh: make: Exec format error > *** Error code 126 >=20 > Stop. > make[1]: stopped in /usr/src > *** Error code 1 >=20 > Stop. > make: stopped in /usr/src >=20 > So via that complicated PATH setting it seems to run: /usr/obj/usr/src/ar= m64.aarch64/tmp/legacy/usr/bin/make >=20 > Which surprisingly is an amd64 binary: >=20 > root@pi8:/usr/src # file /usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/b= in/make > /usr/obj/usr/src/arm64.aarch64/tmp/legacy/usr/bin/make: ELF 64-bit LSB p= ie executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter= /libexec/ld-elf.so.1, for FreeBSD 14.0 (1400057), FreeBSD-style, stripped >=20 >=20 > So what did I do wrong? Cross install is not supported. As you have seen, certain tools are bootstrapped on the build host and used during the install process. You might be able to get away with nuking /usr/obj/usr/src/arm64.aarch64/tmp/legacy (or maybe tmp) and then running `make toolchain` to build native versions of those tools. -- Brooks --BOKacYhQ+x31HxR3 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEcBAEBAgAGBQJiZvP+AAoJEKzQXbSebgfAO2YH/AlpfPiw7YHHW9AwJS20cMKz J4cbCSEpx/g+tc22NhjOwpPFw0Mo4SrpXma1bHBHkPkGHcSCtXt4FcNJWgaxDeA/ rDkZqnR4GzPhnQk1allJp9Dnkaz2VITCyANv2h9M6VcA/kFcp9Xu3Q58XQo94zrr 9q33ckDWyKPRLAuxfTRCFYlkCLbqaSXqBolOUy/8GGHzJMCpMK5n9e2NiGJh1tjn 8geps7gZwGvhswR44b3B2K0mus8yPwQBBhBItunPErAWzCZ9RVkUsnRvLoMyeap6 sR/WtQuQayRqkKOt45V1IYinWvqD2DLrUlKvqjPBor05LYfV5YYwxr+N8HiqzIA= =/NVF -----END PGP SIGNATURE----- --BOKacYhQ+x31HxR3--