From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Re: Starting 'core-updates'? Date: Tue, 28 Jan 2020 11:47:13 +0100 Message-ID: <87sgjzhn7y.fsf@gnu.org> References: <87mua8sma4.fsf@devup.no> <87wo9carkj.fsf@gmail.com> <8736c0osm0.fsf@cbaines.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:51211) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iwOOs-00072X-Gj for guix-devel@gnu.org; Tue, 28 Jan 2020 05:47:19 -0500 In-Reply-To: <8736c0osm0.fsf@cbaines.net> (Christopher Baines's message of "Tue, 28 Jan 2020 09:08:55 +0000") 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-mx.org@gnu.org Sender: "Guix-devel" To: Christopher Baines Cc: guix-devel@gnu.org Hi! Christopher Baines skribis: > Something I'd be interested in learning more about is > cross-compilation. The Guix Data Service computes some derivations for > cross-compilation (see the table on the right of [1] for example), but > I'm not sure if these are the right one, and because there aren't any > automated builds for these derivations as far as I'm aware, it's > difficult to know if they can actually be built. > > 1: http://data.guix.gnu.org/revision/ac841750a52e44d68d7f1b02e9507421f3e3= 824f > > I'm coming to the Guix Days, so maybe it's something that can be talked > about then. Definitely! The short story though is that there=E2=80=99s confusion between =E2=80=9Cs= ystem types=E2=80=9D (like =E2=80=9Cx86-64_linux=E2=80=9D) and GNU triplets (like =E2=80=9Cx86_6= 4-linux-gnu=E2=80=9D, =E2=80=9Carm-linux-gnueabihf=E2=80=9D, etc.). The former is used by the daemon as an =E2=80=9Cinput=E2=80=9D, to distingu= ish derivations that target different CPUs or different OS kernels. It=E2=80= =99s the option you pass to =E2=80=98guix build -s=E2=80=99. The latter is used by the GNU toolchain to identify a target system: CPU, kernel, userland, and optionally hardware vendor. It=E2=80=99s what y= ou pass to =E2=80=98guix build --target=E2=80=99. (gnu ci) contains the list of cross-compilation targets (triplets) that we intend to support. I believe these are those you should be targeting. Also, we only even build cross toolchain from =E2=80=9Cx86_64-l= inux=E2=80=9D because in practice that=E2=80=99s the only well-tested (and relevant) plat= form for that. Ludo=E2=80=99.