From patchwork Tue Jan 2 07:27:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Efraim Flashner X-Patchwork-Id: 58310 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 3D16A27BBE9; Tue, 2 Jan 2024 07:29:49 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0624927BBE2 for ; Tue, 2 Jan 2024 07:29:48 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rKZD3-0008Iv-Fm; Tue, 02 Jan 2024 02:29:09 -0500 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 1rKZCy-0008Hg-Bw for guix-patches@gnu.org; Tue, 02 Jan 2024 02:29:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rKZCv-0004rP-V3; Tue, 02 Jan 2024 02:29:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rKZCv-0006cK-VF; Tue, 02 Jan 2024 02:29:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68202] [PATCH 1/5] gnu: Add support for x86_64-linux-gnux32. Resent-From: Efraim Flashner Original-Sender: "Debbugs-submit" Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Tue, 02 Jan 2024 07:29:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68202 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 68202@debbugs.gnu.org Cc: Efraim Flashner , Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice X-Debbugs-Original-Xcc: Christopher Baines , Josselin Poiret , Ludovic =?utf-8?q?Court=C3=A8s?= , Mathieu Othacehe , Ricardo Wurmus , Simon Tournier , Tobias Geerinckx-Rice Received: via spool by 68202-submit@debbugs.gnu.org id=B68202.170418048425320 (code B ref 68202); Tue, 02 Jan 2024 07:29:01 +0000 Received: (at 68202) by debbugs.gnu.org; 2 Jan 2024 07:28:04 +0000 Received: from localhost ([127.0.0.1]:49267 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKZBz-0006aF-H7 for submit@debbugs.gnu.org; Tue, 02 Jan 2024 02:28:04 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:53558) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKZBw-0006Zb-IK for 68202@debbugs.gnu.org; Tue, 02 Jan 2024 02:28:01 -0500 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-33686649b72so9315351f8f.3 for <68202@debbugs.gnu.org>; Mon, 01 Jan 2024 23:27:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704180472; x=1704785272; darn=debbugs.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=75rljB82Z0AUYQBx5Lesz+PrwTDAJtLE1WtBImkb+4g=; b=eMMxSgEP1RMo6jatkCzsn/2bK5bYpmXjbZ4rxr3ywiDFbqEYd3lHaRn5z9mrYQgjWr J3xeBBDSygDI2J5BL76tlWwNGjV7nUpuRq9FwIM0LA4YFzlw1ul8wfakmp7xkKtscCya eny6X0hIkSTjMftaqDKZ0xaSATrK1auckCwSjIGHTcVpbuj9Ilag2yU906faiMNYoOY1 GP3uh7K/vVklLcyunFK0JlkHnfEk0Rvij+8VA7Ye8x0EAgQB4yV8nv/GgDltogpIYtph LgJIwJrFaB868CAZpfaSCuDa4hxQmhFoshykOE1EKkxeC+h4hHqztuh9ex8iTyjeL+69 5IOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704180472; x=1704785272; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=75rljB82Z0AUYQBx5Lesz+PrwTDAJtLE1WtBImkb+4g=; b=ZJjeOceMUoVhVhhD/3MZdiG/BvnQ2PYkO7gxN2TDhgKhuMS/OgtsH3VCuK6ycNeY0R vr7SHI8h9mkDSYGiiS1Lrmsas6eZzDNd78yE7aj6iSFP6gaZwgWZFrHMe1VtEOUJijwm e+XUJMfKpHYNvfrHYws6KTxHS9hac4uW5LovGUv/ukrXzgYlD5N8XIPPLMiPIbLj8kiM LUqmFZxdWOSVc9rnmto+FWWheOrrc+VdzV54NnM1gaXISnjOtMVmwFSqleRBF1M6XJcu dTRJlfuelPlT8QBwwzkQP+J193bqa91ilhO0gFV8g9XiEzqt1TeLIa1p+VblhGbx6H38 UZIw== X-Gm-Message-State: AOJu0Ywd2Mns4Ts7wAsaWYJapYF4bprrNAFazaqhd6wYMSdJcZbi7CIe 5e9Ha737PJmZWGbFm1+VxQQAs/1FJ/+B9g== X-Google-Smtp-Source: AGHT+IHmpSQg+a/AEjRBXEvuNMqwlemICzYNXZkzxZS+tlUNkPgAPjOQXEZu4DckYeN04gOZWGKvhQ== X-Received: by 2002:a5d:4481:0:b0:336:6293:9c0b with SMTP id j1-20020a5d4481000000b0033662939c0bmr8369085wrq.104.1704180472188; Mon, 01 Jan 2024 23:27:52 -0800 (PST) Received: from localhost ([141.226.15.142]) by smtp.gmail.com with ESMTPSA id r10-20020adfce8a000000b00336781490dcsm27626042wrn.69.2024.01.01.23.27.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jan 2024 23:27:51 -0800 (PST) From: Efraim Flashner Date: Tue, 2 Jan 2024 09:27:32 +0200 Message-ID: <626cb5a810638e59f9d3f2b7ca8b5664e91c3a36.1704179455.git.efraim@flashner.co.il> X-Mailer: git-send-email 2.41.0 In-Reply-To: References: MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches * gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add entry for x86_64-linux-gnux32. * gnu/packages/gcc.scm (gcc-configure-flags-for-triplet): Add configure-flag for x86_64-linux-gnux32. * guix/platforms/x86.scm (x86_64-linux-gnux32): New variable. * guix/utils.scm (gnu-triplet->nix-system): Force x86_64-linux-gnux32 to output a different nix-system than x86_64-linux-gnu. Change-Id: I519fea2f8357e4b9895ede05fe8a5e373e9b034a --- gnu/packages/bootstrap.scm | 5 ++++- gnu/packages/gcc.scm | 5 ++++- guix/platforms/x86.scm | 10 ++++++++++ guix/utils.scm | 4 +++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index 602d8f26c5..a36bb289cd 100644 --- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2015, 2018, 2019 Mark H Weaver -;;; Copyright © 2017, 2020 Efraim Flashner +;;; Copyright © 2017, 2020, 2024 Efraim Flashner ;;; Copyright © 2018, 2020, 2022 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2019 Carl Dong ;;; Copyright © 2019 Léo Le Bouter @@ -323,6 +323,9 @@ (define* (glibc-dynamic-linker ((string=? system "powerpc64-linux") "/lib/ld64.so.1") ((string=? system "alpha-linux") "/lib/ld-linux.so.2") + ;; TODO: Differentiate between x86_64-linux-gnu and x86_64-linux-gnux32. + ((string=? system "x86_64-linux-gnux32") "/lib/ld-linux-x32.so.2") + ;; XXX: This one is used bare-bones, without a libc, so add a case ;; here just so we can keep going. ((string=? system "arm-eabi") "no-ld.so") diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index a8b74a3632..5590cd3d7e 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2014, 2015, 2016, 2017, 2019, 2021 Ricardo Wurmus ;;; Copyright © 2015, 2023 Andreas Enge -;;; Copyright © 2015-2018, 2020-2023 Efraim Flashner +;;; Copyright © 2015-2018, 2020-2024 Efraim Flashner ;;; Copyright © 2016 Carlos Sánchez de La Lama ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2020, 2022 Marius Bakke @@ -75,6 +75,9 @@ (define (gcc-configure-flags-for-triplet target) "--with-mode=thumb" "--with-fpu=neon")) + ((string-match "x86_64-linux-gnux32" target) + '("--with-abi=mx32")) + ((and (string-suffix? "-gnu" target) (not (string-contains target "-linux"))) ;; Cross-compilation of libcilkrts in GCC 5.5.0 to GNU/Hurd fails diff --git a/guix/platforms/x86.scm b/guix/platforms/x86.scm index 4ed5638c14..0c8fc7296c 100644 --- a/guix/platforms/x86.scm +++ b/guix/platforms/x86.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2022 Mathieu Othacehe +;;; Copyright © 2023, 2024 Efraim Flashner ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,6 +22,7 @@ (define-module (guix platforms x86) #:use-module (guix records) #:export (i686-linux x86_64-linux + x86_64-linux-x32 i686-mingw x86_64-mingw i586-gnu)) @@ -41,6 +43,14 @@ (define x86_64-linux (rust-target "x86_64-unknown-linux-gnu") (glibc-dynamic-linker "/lib/ld-linux-x86-64.so.2"))) +(define x86_64-linux-x32 + (platform + (target "x86_64-linux-gnux32") + (system #f) + (linux-architecture "x86_64") + (rust-target "x86_64-unknown-linux-gnux32") + (glibc-dynamic-linker "/lib/ld-linux-x32.so.2"))) + (define i686-mingw (platform (target "i686-w64-mingw32") diff --git a/guix/utils.scm b/guix/utils.scm index 8e71f97e1c..f4bf965e9a 100644 --- a/guix/utils.scm +++ b/guix/utils.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015 David Thompson ;;; Copyright © 2017 Mathieu Othacehe ;;; Copyright © 2018, 2020 Marius Bakke -;;; Copyright © 2020, 2021 Efraim Flashner +;;; Copyright © 2020, 2021, 2024 Efraim Flashner ;;; Copyright © 2020, 2021, 2022 Maxim Cournoyer ;;; Copyright © 2021 Simon Tournier ;;; Copyright © 2021 Chris Marusich @@ -634,6 +634,8 @@ (define (gnu-triplet->nix-system triplet) (else triplet)))) (cond ((string-match "^arm[^-]*-([^-]+-)?linux-gnueabihf" triplet) "armhf-linux") + ;; Otherwise it will show up as x86_64-linux... which isn't wrong. + ((string-match "x86_64-linux-gnux32" triplet) "x86_64-linux-gnux32") ((string-match "^([^-]+)-([^-]+-)?linux-gnu.*" triplet) => (lambda (m)