From patchwork Sat Feb 18 08:34:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?6Lev6L6J?= X-Patchwork-Id: 47098 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 2B78316A08; Sat, 18 Feb 2023 08:35:28 +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=-3.7 required=5.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=ham 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 DE600169D6 for ; Sat, 18 Feb 2023 08:35:26 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pTIgT-0003Hr-8S; Sat, 18 Feb 2023 03:35:05 -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 1pTIgR-0003HZ-2y for guix-patches@gnu.org; Sat, 18 Feb 2023 03:35:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pTIgQ-0000dv-O7 for guix-patches@gnu.org; Sat, 18 Feb 2023 03:35:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pTIgQ-000499-BP for guix-patches@gnu.org; Sat, 18 Feb 2023 03:35:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#61600] Subject: [PATCH 2/2] gnu: add mips and riscv cross toolchain References: In-Reply-To: Resent-From: =?utf-8?b?6Lev6L6J?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 Feb 2023 08:35:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61600 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 61600@debbugs.gnu.org Received: via spool by 61600-submit@debbugs.gnu.org id=B61600.167670925615883 (code B ref 61600); Sat, 18 Feb 2023 08:35:02 +0000 Received: (at 61600) by debbugs.gnu.org; 18 Feb 2023 08:34:16 +0000 Received: from localhost ([127.0.0.1]:42411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTIff-000487-P4 for submit@debbugs.gnu.org; Sat, 18 Feb 2023 03:34:16 -0500 Received: from mail-ed1-f68.google.com ([209.85.208.68]:38592) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTIfd-00047t-Vz for 61600@debbugs.gnu.org; Sat, 18 Feb 2023 03:34:14 -0500 Received: by mail-ed1-f68.google.com with SMTP id g29so7968768eda.5 for <61600@debbugs.gnu.org>; Sat, 18 Feb 2023 00:34:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=N6V7LQ+kFSDPUq4oDXq/JZ9xmfOwPIdqsnomgu0tDvc=; b=cJItRWlYE+pDXytPW7ilOVCkHQ0vDNaubjnr+lN6EVFT9sQ5Zyi8RNX4wAnOTthQD6 61uiJpRmoAvg6WOVevZSFp1aDZTukeWEHzLCeC1Bw58EBnGgyitOg8qB5awy1PUOJKSk J9THVfwUpHca1X5lPAuUJNsTz6NZZGZrTFmnZnZ2GZXBHqw2YDFNzov97PYVOOiLchtt ci6Bk/vg0cauFASIfSsOnHPC5Ca88KwjQ+q1brrYDNz0WjPawpdz3/J9qzdjV0qffAmk t6qiR89zfXmH/B8BgldwMQa2gxCbc6qU0v2Py/Mfwh4/zAfn5Rqe/+csdDS7o8wlAGm/ x4Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N6V7LQ+kFSDPUq4oDXq/JZ9xmfOwPIdqsnomgu0tDvc=; b=wZZLv1wMV9MlznnQqS/B6C9sbGDlsjUbgNNeLaUYRNyX25bz6jbB41d8+BI65PViwr 5GHt1cKXs5PdAHMlO2CBtPd1C1SRepsq2hPKNNenvwr0Cvf5T6nIklOigkzRI4+fDrb8 kbqn1LLUSvUhrD9kmKeo5ULivOQwU5552Dwe+QXlMgDZtixN5EzR1NYdvek2SR9nf528 72Xie5LAhxo5VvRmIiCotgwuAFigX4dn2JovVgj6/KJ3IXLAoXUhcKrp1aQl2fWS6F5w 8mp13p8GQgkiHfKHdcxybkSi4vZ45fcIjGLa3XQKKKlwcZ5hNaCJSLL64Qj8GjBiLizy 256Q== X-Gm-Message-State: AO0yUKUpgqzJ2fk2B/mtApuk2gpJ0xuEtOE/faoeCTZwpAYjT1KRH8Ma Agcx0yT7D1I7SFcKvQZjQPWe50yAc6cAIYFN7bVY4Pz+D0fakw== X-Google-Smtp-Source: AK7set/Zgkm279Qk+8Sh699f4SUXKECprmOBJ9hjIRkz0Agm3cemaxCJpz4kA+TFEoMpUqFI0CtfUa8sa1+WrKyQXfs= X-Received: by 2002:a17:906:d83:b0:8b1:30da:b585 with SMTP id m3-20020a1709060d8300b008b130dab585mr1704198eji.6.1676709247805; Sat, 18 Feb 2023 00:34:07 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a05:6f02:8341:b0:47:ad96:cfca with HTTP; Sat, 18 Feb 2023 00:34:07 -0800 (PST) From: =?utf-8?b?6Lev6L6J?= Date: Sat, 18 Feb 2023 08:34:07 +0000 Message-ID: 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 From 841c23f6919a16890cb2ec595019a12b656c4c68 Mon Sep 17 00:00:00 2001 From: LuHui Date: Sat, 18 Feb 2023 16:20:20 +0800 Subject: [PATCH 2/2] gnu: add mips and riscv cross toolchain * gnu/packages/embedded.scm: add mips and riscv cross toolchain --- gnu/packages/embedded.scm | 78 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 87c572ba0f..d6e0a17fae 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -12,6 +12,7 @@ ;;; Copyright © 2021 Morgan Smith ;;; Copyright © 2022 Mathieu Othacehe ;;; Copyright © 2022 Maxim Cournoyer +;;; Copyright © 2023 Lu Hui ;;; ;;; This file is part of GNU Guix. ;;; @@ -48,6 +49,7 @@ (define-module (gnu packages embedded) #:use-module (gnu packages bison) #:use-module (gnu packages boost) #:use-module (gnu packages check) + #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages cross-base) #:use-module (gnu packages dejagnu) @@ -1747,3 +1749,79 @@ (define-public ts4900-utils @item tssilomon @end itemize") (license license:bsd-2)))) + +(define (make-cross-gcc-toolchain target) + (let* ((gcc (cross-gcc target)) + (binutils (cross-binutils target))) + (package + (name (string-append "gcc-" target "-toolchain")) + (version (package-version gcc)) + (source #f) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build union)) + #:builder + (begin + (use-modules (ice-9 match) + (guix build union)) + (match %build-inputs + (((names . directories) ...) + (union-build (assoc-ref %outputs "out") + directories) + #t))))) + (propagated-inputs + (list binutils gcc)) + (synopsis (package-synopsis gcc-toolchain)) + (description (package-description gcc-toolchain)) + (home-page (package-home-page gcc-toolchain)) + (license (package-license gcc-toolchain))))) + +(define (make-cross-gdb target) + (package + (inherit gdb) + (name (string-append "gdb-" target)) + (arguments + `(#:configure-flags '(,(string-append "--target=" target) + "--enable-multilib" + "--enable-interwork" + "--enable-languages=c,c++" + "--disable-nls") + ,@(package-arguments gdb))))) + +;; A lot of cross toolchain for bare metal development + +(define-public gcc-mipsel-elf-toolchain + (make-cross-gcc-toolchain "mipsel-elf")) + +(define-public gcc-mips-elf-toolchain + (make-cross-gcc-toolchain "mips-elf")) + +(define-public gdb-mipsel-elf + (make-cross-gdb "mipsel-elf")) + +(define-public gdb-mips-elf + (make-cross-gdb "mips-elf")) + +(define-public gcc-mips64el-elf-toolchain + (make-cross-gcc-toolchain "mips64el-elf")) + +(define-public gcc-mips64-elf-toolchain + (make-cross-gcc-toolchain "mips64-elf")) + +(define-public gdb-mips64el-elf + (make-cross-gdb "mips64el-elf")) + +(define-public gdb-mips64-elf + (make-cross-gdb "mips64-elf")) + +(define-public gcc-riscv32-elf-toolchain + (make-cross-gcc-toolchain "riscv32-elf")) + +(define-public gcc-riscv64-elf-toolchain + (make-cross-gcc-toolchain "riscv64-elf")) + +(define-public gdb-riscv32-elf + (make-cross-gdb "riscv32-elf")) + +(define-public gdb-riscv64-elf + (make-cross-gdb "riscv64-elf"))