From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id KJL7HFQ+/2QbZgAAauVa8A:P1 (envelope-from ) for ; Mon, 11 Sep 2023 18:20:36 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:4789::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id KJL7HFQ+/2QbZgAAauVa8A (envelope-from ) for ; Mon, 11 Sep 2023 18:20:36 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 33C384DAA4 for ; Mon, 11 Sep 2023 18:20:36 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=deH9zO2t; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1694449236; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=zHcSOGQ32JQd1AblHIBC7GPIdP/15E0/kYf51rIac2Q=; b=t+QOSf2LTzQEys/maAEYY7F2L906XcAFMz3SaaZXFbHTIPsUXmt7rMp6r3Y9oMVjrdbQgk +jpCcf9CRN0fWufRC18JvhPROdix6OTtwNEq719CzA4YgAlzCTW5WyMwdI9gFB112oIyBw MhffBMgFhusPzbCzUcEBGLzbjHCyJGszqudY3zyHBk4IGAZ0DhdO5sPV2qRWZFtNV1e+WW fvzXSbEahuK77X7p/1PpUr5PlB0RC3YlUvs0foG0bpKZhAg5joXAFixlUYYfmDFXp6KECZ jNUzqQz5+Qp55sSZs2vqgVWGR3h3sXiaopq608obk3R987vnlAmYQBfOk5qe4Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=deH9zO2t; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=key1; d=yhetil.org; t=1694449236; a=rsa-sha256; cv=none; b=qrq/mg6RePlh4hBpYU7DEDaKlKZ41JiJmRLNglYc3dPJR695E1GFw8YbQ+Q7pVRc+LwxQF u8YkE/yQgM6s5KQiuzWWKmByn8bNt6tA9ukhAmfTMCeRY5X0a1UQ+L087C/U8wf1O7CNQV nYl0hc/KE3dqFg8wR8YhWwmp4DX6Pwvr5hhEnA+/o9LuOMNkBuBCmT21z140BbrArF9jM+ JsOa41h05BizqU7uuXpHbK/CVENy6920gmTEm5Cn48nZD5tsHVAmVY6tdBgNoL6uOiPNdv LbqMNH5xEGKtg3z91ECyfqkL/bJfSDdirVeZ1BsnkDAuSpj/6exy6NQILDyrcQ== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfjdy-0007h5-85; Mon, 11 Sep 2023 12:20:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qfjdu-0007gE-U7 for guix-devel@gnu.org; Mon, 11 Sep 2023 12:20:07 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfjds-0005L2-7g; Mon, 11 Sep 2023 12:20:06 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-31f7c87353eso430226f8f.0; Mon, 11 Sep 2023 09:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694449202; x=1695054002; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:from:to:cc:subject:date:message-id :reply-to; bh=zHcSOGQ32JQd1AblHIBC7GPIdP/15E0/kYf51rIac2Q=; b=deH9zO2tmEWvb8/U8mRcdCEbhscJNETJqrA9TGjHS9oNkcQTh38DFFDsrghVq58P/o CABOxEYxWL7Gg5XOH9A+aYk9VtfUT7I+fasFRssTx41JM8+2mHjRAn7L5W6CQ9/Kcm6M 4JYalSARDCp7bYMXNAs3P6D9iFi1Tujl/DYEf68TlBKPGXPaXCBfjVv6u/EisGM2zMUQ z5rQRt+5ikP5P4k5B0v6oSvZxvJrykYjZLN4guDAVJ0YdKv2ML2peWQhJhjgpA9L1fCz hlcTZCEw82pnOoVIMb8ZiNKc0Rg4F+SqwEtM/45kSaWYATLVvIqcg+3lkMZFGSX9DENh 0+yQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694449202; x=1695054002; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zHcSOGQ32JQd1AblHIBC7GPIdP/15E0/kYf51rIac2Q=; b=pxumEADe1BVepMIDGRJGlxujnwmFlALeX1Vb0w9Aa3JRpKM7W4wT5ZZLAtDpDgwLkE gfdf2RHKIfk3jfjvBQGpaIVcCgedwVkfKhVBrYlHjIFQ47JBn3YgO4I1nYzVihA97SSI 9YaYXRdCUdZMi20sW+CGSUIh2I6UWNVZD5QqIx6NymFmc541rbw04cq4a947H1tLQ2cA rw0N41JVd08VDHQOx99H0BmWP4Sbtq9siGQG+PYt7vWPQa9DKMY3Qlhxgu6dJu7dztgF GIRBcKvI12YTWKw0DIjnCAh1/16WhmswiUW1GoYphWyQcAZJNv6bM0/KGkxItUyBsdbO N8sA== X-Gm-Message-State: AOJu0YyX4Hfbem64fYfRPFtlObFrJy+6PTemnPiAZTSQr3WBfPqA0CVL fobKLTs/byo6uRoyd7YFjoY= X-Google-Smtp-Source: AGHT+IFCcay2DijEABeVZYLRayo9GNXer0SzgYXCia6G/qSoQWmCK+DaEdKKLN8Me7EjYKRdx8wdFA== X-Received: by 2002:a05:6000:3c4:b0:31f:a717:f1cc with SMTP id b4-20020a05600003c400b0031fa717f1ccmr3069746wrg.5.1694449202097; Mon, 11 Sep 2023 09:20:02 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id w6-20020adfe046000000b0031f82743e25sm8983357wrh.67.2023.09.11.09.20.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 09:20:01 -0700 (PDT) From: Simon Tournier To: Mathieu Othacehe , guix-devel Cc: andrew@trop.in, bjoern.hoefling@bjoernhoefling.de, guix@cbaines.net, efraim@flashner.co.il, julien@lepiller.eu, cox.katherine.e+guix@gmail.com, lars@6xq.net, liliana.prikler@gmail.com, rekado@elephly.net, jgart@dismail.de Subject: Re: Cross compilation status In-Reply-To: <87lede2xvu.fsf@gnu.org> References: <87lede2xvu.fsf@gnu.org> Date: Mon, 11 Sep 2023 18:19:51 +0200 Message-ID: <87o7i8hec8.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=zimon.toutoune@gmail.com; helo=mail-wr1-x42e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list 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+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx1.migadu.com X-Migadu-Spam-Score: -8.07 X-Spam-Score: -8.07 X-Migadu-Queue-Id: 33C384DAA4 X-TUID: aYKLrIl9QH24 Hi Mathieu, On Sun, 10 Sep 2023 at 11:14, Mathieu Othacehe wrote: > Here is a status of cross-compilation in Guix. For cross-compilation to > work, the build-system needs to support cross-compilation. > > The following build-systems explicitly refuse cross-compiling packages: > > haskell, agda, waf, chicken, rakudo, julia, python, emacs, rebar, cargo, = ruby, renpy, dub, android-ndk, scons, dune, ant, pyproject, maven, asdf, r,= ocaml, node > [...] > --8<---------------cut here---------------start------------->8--- > Total packages: 28076 > > clojure: 13 > qt: 317 > copy: 134 > minetest-mod: 22 > tree-sitter: 35 > raw: 2 > linux-module: 17 > glib-or-gtk: 139 > asdf/source: 794 > go: 632 > cmake: 1278 > minify: 12 > perl: 839 > trivial: 250 > guile: 49 > elm: 30 > font: 101 > gnu: 4178 > asdf/ecl: 753 > asdf/sbcl: 814 > meson: 504 > mozilla: 2 > texlive: 4150 > Cross-compilation OK: 15065 > > ocaml: 61 > haskell: 812 > maven: 2 > chicken: 12 > node: 57 > emacs: 1370 > dune: 289 > android-ndk: 12 > waf: 21 > julia: 300 > pyproject: 433 > r: 2441 > cargo: 3535 > ruby: 597 > rebar: 22 > scons: 15 > rakudo: 22 > agda: 6 > ant: 559 > python: 2488 > Cross-compilation KO: 13054 > --8<---------------cut here---------------end--------------->8--- The build-systems renpy, dub is listed in =E2=80=9Crefuse=E2=80=9C but not = then in Cross-compilation KO. Is it expected? The build-system asdf is listed as refuse but appears in the list Cross-compilation OK. Is it expected? > Over the 28076 packages in Guix, 15065 are part of build-systems with > cross-compilation support and 13054 are part of build-systems without > cross-compilation support. > > Overall 46.5% of our packages will refuse to cross-compile with errors > such as: > > --8<---------------cut here---------------start------------->8--- > mathieu@meije ~$ guix build --target=3Daarch64-linux-gnu librsvg > guix build: error: gnu/packages/gnome.scm:3500:2: librsvg@2.54.5: build s= ystem `cargo' does not support cross builds > --8<---------------cut here---------------end--------------->8--- > > I'd like to help converge towards the situation where all build-systems > support cross-compilation. Considering Julia, the =E2=80=9Cjulia compiler=E2=80=9D support of upstream= [1] reads: + ARMv8 (64-bit): Tier 2 + ARMv7 (32-bit): Tier 3 + PowerPC (64-bit): Tier 3 + then stuff about CUDA, ROCM, oneAPI where: + Tier 2: Julia is guaranteed to build from source using the default build options, but may or may not pass all tests. Official binaries are available on a case-by-case basis. + Tier 3: Julia may or may not build. If it does, it is unlikely to pass tests. Binaries may be available in some cases. When they are, they should be considered experimental. Ongoing support is dependent on community efforts. But I guess, these are about native compilation. To my tiny knowledge on that topic, Julia supports some cross-compilation. However, Julia depends on heavy packages as =E2=80=99suitesparse=E2=80=99 or =E2=80=99open= blas=E2=80=99 and I do not know if we already cross-compile them. Since Julia is used for scientific computations, I do not know if the effort is worth.=20 1: https://julialang.org/downloads/ > I have CC'ed members of the python, java, ruby, rust, r, haskell and > emacs teams. Any plans adding cross-compilation support to your > build-system, barriers to overcome? About Haskell, from experience, we are already not able to maintain an usable ecosystem for i686, but that=E2=80=99s another story. :-) Well, I do not know if cross-compilation is well-supported by the Haskell compiler GHC. Maybe some resources seems there: https://github.com/input-output-hk/haskell.nix About R, similarly as Julia, since they are mainly used for scientific computations, I do not know if supporting cross-compilation is worth our effort. Cheers, simon