From: Jean-Pierre De Jesus DIAZ via Guix-patches via <guix-patches@gnu.org>
To: 66263@debbugs.gnu.org
Cc: Jean-Pierre De Jesus DIAZ <jean@foundationdevices.com>
Subject: [bug#66263] [PATCH v1 16/22] gnu: Add cross-gcc-toolchain procedure.
Date: Tue, 28 Nov 2023 12:34:59 +0100 [thread overview]
Message-ID: <20231128113510.11214-16-jean@foundationdevices.com> (raw)
In-Reply-To: <20230929091333.7623-1-jean@foundationdevices.com>
* gnu/packages/cross-base.scm (cross-gcc-toolchain/implementation): New procedure.
* gnu/packages/cross-base.scm (cross-gcc-toolchain): New procedure.
Change-Id: I994067eac094d0a50a7399e61bda944eded9187f
---
gnu/packages/cross-base.scm | 51 ++++++++++++++++++++++++++++++++++++-
1 file changed, 50 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 72f786dc35..0a8a0bb95c 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -34,6 +34,7 @@ (define-module (gnu packages cross-base)
#:use-module (gnu packages linux)
#:use-module (gnu packages hurd)
#:use-module (gnu packages mingw)
+ #:use-module (guix memoization)
#:use-module (guix platform)
#:use-module (guix packages)
#:use-module (guix diagnostics)
@@ -41,6 +42,7 @@ (define-module (gnu packages cross-base)
#:use-module (guix i18n)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system trivial)
#:use-module (guix gexp)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
@@ -50,7 +52,8 @@ (define-module (gnu packages cross-base)
cross-libc
cross-gcc
cross-mig
- cross-kernel-headers))
+ cross-kernel-headers
+ cross-gcc-toolchain))
(define-syntax %xgcc
;; GCC package used as the basis for cross-compilation. It doesn't have to
@@ -727,6 +730,52 @@ (define* (cross-libc* target
#:xgcc xgcc))
(else #f)))
+(define* (cross-gcc-toolchain/implementation target
+ #:key
+ (base-gcc %xgcc)
+ (xbinutils (cross-binutils target))
+ (libc (cross-libc
+ target
+ #:xgcc (cross-gcc target #:xgcc base-gcc)
+ #:xbinutils xbinutils))
+ (xgcc (cross-gcc target
+ #:xgcc base-gcc
+ #:libc libc
+ #:xbinutils xbinutils)))
+ "Returns PACKAGE that contains a cross-compilation tool chain for TARGET
+with XBINUTILS, XGCC and LIBC (if exists for TARGET)."
+ (package
+ (name (string-append (package-name xgcc) "-toolchain"))
+ (version (package-version xgcc))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments
+ (list #:modules '((guix build union))
+ #:builder
+ #~(begin
+ (use-modules (ice-9 match)
+ (guix build union))
+
+ (match %build-inputs
+ (((names . directory) ...)
+ (union-build #$output directory))))))
+ (inputs `(,xbinutils ,xgcc ,@(if libc (list libc) '())))
+ (home-page (package-home-page xgcc))
+ (synopsis
+ (format #f "Complete GCC tool chain for C/C++ development (~a)" target))
+ (description "This package provides a complete GCC cross toolchain for
+C/C++ development to be installed in user profiles. This includes GCC, as
+well as libc (headers and binariesl), and Binutils. GCC is the GNU Compiler
+Collection.")
+ (license (delete-duplicates `(,(package-license xgcc)
+ ,(package-license xbinutils)
+ ,@(if libc
+ (list (package-license libc))
+ '()))))))
+
+(define cross-gcc-toolchain
+ (memoize cross-gcc-toolchain/implementation))
+
\f
;;; Concrete cross tool chains are instantiated like this:
;;
--
2.41.0
next prev parent reply other threads:[~2023-11-28 11:37 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-29 9:13 [bug#66263] [PATCH 00/23] guix: Add avr as a platform Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 01/23] gnu: cross-libc: Return #f if no libc available Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 02/23] guix: gnu: Handle platforms without libc Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 03/23] gnu: Add avr platform Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 04/23] guix: utils: Add target-avr? Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-04 14:07 ` Efraim Flashner
2023-09-29 9:16 ` [bug#66263] [PATCH 05/23] gnu: cross-gcc: Enable multilib for avr Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 4:15 ` [bug#66263] [PATCH 00/23] guix: Add avr as a platform Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 06/23] gnu: microscheme: Move to avr-xyz Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-04 14:07 ` Efraim Flashner
2023-10-05 4:19 ` [bug#66263] [PATCH 00/23] guix: Add avr as a platform Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 07/23] gnu: Add AVR phases to cross-gcc-build-phases Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 08/23] gnu: avr-libc: Convert to procedure Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 4:17 ` [bug#66263] [PATCH 00/23] guix: Add avr as a platform Maxim Cournoyer
2023-10-05 4:23 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 09/23] gnu: Add make-cross-gcc-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-04 14:07 ` Efraim Flashner
2023-10-05 4:34 ` [bug#66263] [PATCH 00/23] guix: Add avr as a platform Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 10/23] gnu: Add binutils-cross-avr Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 14:46 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 11/23] gnu: avr-binutils: Deprecate package Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 14:48 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 12/23] gnu: Remove various AVR packages Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 14:51 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 13/23] gnu: cross-libc: Add AVR Libc case Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 14:52 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 14/23] gnu: cross-gcc-arguments: Handle AVR target Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 14:59 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 15/23] guix: meson-configuration: Fix boolean assigment Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:00 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 16/23] gnu: cross-gcc-search-paths: Handle AVR target Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:08 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 17/23] gnu: cross-gcc: Handle inputs for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:08 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 18/23] gnu: Add avr-libc Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:10 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 19/23] gnu: Add gcc-cross-avr-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:11 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 20/23] gnu: Add avr-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-09-29 9:16 ` [bug#66263] [PATCH 21/23] guix: meson-build-system: Support AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:13 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 22/23] guix: meson-build-system: Disable PIC for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:14 ` Maxim Cournoyer
2023-09-29 9:16 ` [bug#66263] [PATCH 23/23] gnu: Add unity Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-10-05 15:19 ` Maxim Cournoyer
2023-09-29 9:18 ` [bug#66263] [PATCH 00/23] guix: Add avr as a platform Jean-Pierre De Jesus Diaz via Guix-patches via
2023-10-04 13:01 ` Mathieu Othacehe
2023-10-05 15:20 ` Maxim Cournoyer
2023-12-06 21:57 ` Ludovic Courtès
2023-11-28 11:34 ` [bug#66263] [PATCH v1 01/22] gnu: cross-libc: Return #f if no libc available Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 02/22] guix: gnu-build-system: Handle missing libc Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 03/22] guix: Add avr platform Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 04/22] guix: Add target-avr? Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 05/22] gnu: microscheme: Move to avr-xyz Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 06/22] gnu: make-avr-libc: Fix synopsis Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 07/22] gnu: cross-gcc: Enable multilib for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 08/22] gnu: cross-gcc: Handle target include paths Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 09/22] gnu: cross-libc: Add AVR Libc support Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 10/22] gnu: cross-gcc: Handle AVR inputs Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 11/22] gnu: cross-toolchain: Add set-cross-path for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 12/22] gnu: cross-gcc: Find AVR Libc files Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 13/22] gnu: cross-gcc: Only C and C++ for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 14/22] guix: meson-build-system: Support AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` [bug#66263] [PATCH v1 15/22] guix: meson-build-system: Disable PIC for AVR Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:34 ` Jean-Pierre De Jesus DIAZ via Guix-patches via [this message]
2023-11-28 11:35 ` [bug#66263] [PATCH v1 17/22] gnu: Add gcc-cross-avr-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:35 ` [bug#66263] [PATCH v1 18/22] gnu: make-ergodox-firmware: Use AVR target Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:35 ` [bug#66263] [PATCH v1 19/22] gnu: make-qmk-firmware: " Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:35 ` [bug#66263] [PATCH v1 20/22] gnu: lufa: " Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:35 ` [bug#66263] [PATCH v1 21/22] gnu: Add gcc-cross-i686-w64-mingw32-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:35 ` [bug#66263] [PATCH v1 22/22] gnu: Add gcc-cross-x86_64-w64-mingw32-toolchain Jean-Pierre De Jesus DIAZ via Guix-patches via
2023-11-28 11:50 ` [bug#66263] Updated patch series Jean-Pierre De Jesus Diaz via Guix-patches via
2023-12-11 11:58 ` bug#66263: " Efraim Flashner
2023-12-11 12:30 ` [bug#66263] " Jean-Pierre De Jesus Diaz via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231128113510.11214-16-jean@foundationdevices.com \
--to=guix-patches@gnu.org \
--cc=66263@debbugs.gnu.org \
--cc=jean@foundationdevices.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.