From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Marusich Subject: Why do we not cross-compile bootstrap binaries? Date: Thu, 23 Nov 2017 16:47:51 -0800 Message-ID: <87lgiwsds8.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53012) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eI29u-000513-F6 for guix-devel@gnu.org; Thu, 23 Nov 2017 19:47:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eI29r-00016F-D0 for guix-devel@gnu.org; Thu, 23 Nov 2017 19:47:58 -0500 Received: from mail-pf0-x235.google.com ([2607:f8b0:400e:c00::235]:38721) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eI29r-000152-65 for guix-devel@gnu.org; Thu, 23 Nov 2017 19:47:55 -0500 Received: by mail-pf0-x235.google.com with SMTP id r62so14092417pfd.5 for ; Thu, 23 Nov 2017 16:47:55 -0800 (PST) Received: from garuda.local (c-24-18-253-84.hsd1.wa.comcast.net. [24.18.253.84]) by smtp.gmail.com with ESMTPSA id t2sm38244847pfk.90.2017.11.23.16.47.51 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 23 Nov 2017 16:47:52 -0800 (PST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: guix-devel@gnu.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, We have bootstrap binaries for various platforms. For example, commit 3b88f3767d9f3ad2cc64173525cd53d429bfe7e7 adds bootstrap binaries for aarch64-linux. Judging by the commit message, my guess is that these bootstrap binaries were built (cross-compiled, I presume) using Guix at commit 8f8f250bdca917b3ce38aa0902f01b19081859a4 and then checked into the Git repository. My understanding is that we could choose, in theory, to cross-compile the bootstrap binaries from a "base" platform. This choice would reduce the number of bootstrap binaries we need to check into the Git repository. However, my guess is that we do not want to treat one particular platform as special: we would like to be able to bootstrap everything from any supported architecture. For example, it would be unfortunate if bootstrapping an armhf-linux machine required the use of an x86_64-linux machine. To avoid this "asymmetry" in the bootstrap path, we choose to check in the built artifacts instead of cross-compiling them. Is my understanding correct? I couldn't find an explicit explanation of the motivation for this choice by looking at email archives, source code, or the manual, so I thought I'd ask here. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAloXbDcACgkQ3UCaFdgi Rp3qkQ//e25azKZfSimSv4nmwJubc7zBkCjRHydMmCAhrc9q7Ynss6ssGk0f2VQC 6/mo3n2I+IHa5Rk6x+vWgglCQor47vwfBYBFnmwfeQhnsO/iZIwXwTP6oBDi54Zg 4TMXuCRGSKG7nMtbIPI6Dklc6RYwZ08U4NhYS3aNQ3ABqWzpPWcmAuq0PzZdPZSa CCpLKnnXfkRPvGpGS4Z6dc5hXFRRBfI78r6fFaxZBCSyTy/Wp3lIuwXmHnoOIuCX aSwD8K/WMdHKHa/2q7EFu5gXpTA3FL1GzxmQnBHdErDycAdOM1ud+z2JZMqANGyv ih5s1Sy2FF0LVsuPhw4hG2UkPpjr6LE0OzvGKHDT/tMW2YG7d0dBms5tlAc7GiIQ Jg/9oXD0XoPLdarknv4XeSpM6gr2+zinbX77n54YlsALUjLjuQQLdI8qwG5+ux+G Xr3grpwgh1lAxa9wtlI8ncBk0exbItgzhiAcn/VhZ+rCGvh4PGOICbldf7sppgqg FRs9RQ7Dert6Yn0UuNqx5TBxgh3A0aiVmzhWBUQYr2jN3SfTSkMn3SqMI2sriMWJ X8+4U/0Xp8gEE6jWQmBWKb/mcVswrXx5yGiYkOgz+HHTUT8Ju5K9gQqIJoEJluR/ hu4IIDEQd9cFrRaJOw8iOvMK+gRpB2a12wcXIVT3opq5SoHL444= =m+My -----END PGP SIGNATURE----- --=-=-=--