guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

09/23: gnu: cross-libc: Add AVR Libc support.


From: guix-commits
Subject: 09/23: gnu: cross-libc: Add AVR Libc support.
Date: Mon, 11 Dec 2023 06:57:41 -0500 (EST)

efraim pushed a commit to branch master
in repository guix.

commit dfc1701724186acf6fcfa9fc26ffa1e67b74c988
Author: Jean-Pierre De Jesus DIAZ <jean@foundationdevices.com>
AuthorDate: Tue Nov 28 12:34:52 2023 +0100

    gnu: cross-libc: Add AVR Libc support.
    
    * gnu/packages/avr.scm (make-avr-libc/implementation)[arguments]: Add
    avr target parameter and disable implicit cross inputs.
    [native-inputs]: Rename avr-gcc and avr-binutils to cross-gcc
    and cross-binutils to keep consistency with gnu-build-system.
    * gnu/packages/cross-base.scm (cross-libc): Add case for avr.
    
    Change-Id: I6b087946d1287a82fac61c48c513e7f2d2184794
    Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
---
 gnu/packages/avr.scm        | 21 ++++++++++++++-------
 gnu/packages/cross-base.scm |  4 ++++
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/avr.scm b/gnu/packages/avr.scm
index e3671399c1..6042c1bd55 100644
--- a/gnu/packages/avr.scm
+++ b/gnu/packages/avr.scm
@@ -33,7 +33,8 @@
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flashing-tools)
   #:use-module (gnu packages gcc)
-  #:export (make-avr-toolchain))
+  #:export (make-avr-libc
+            make-avr-toolchain))
 
 ;;; Commentary:
 ;;;
@@ -101,7 +102,10 @@ changed to ~a~%"
 (define make-avr-gcc
   (memoize make-avr-gcc/implementation))
 
-(define* (make-avr-libc/implementation #:key (xgcc gcc))
+(define* (make-avr-libc/implementation #:key
+                                       (xbinutils (cross-binutils "avr"))
+                                       (xgcc (cross-gcc "avr"
+                                                        #:xbinutils 
xbinutils)))
   (package
     (name "avr-libc")
     (version "2.0.0")
@@ -114,10 +118,13 @@ changed to ~a~%"
                 "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:out-of-source? #t
-       #:configure-flags '("--host=avr")))
-    (native-inputs `(("avr-binutils" ,(make-avr-binutils))
-                     ("avr-gcc" ,(make-avr-gcc #:xgcc xgcc))))
+     '(#:target "avr"
+       #:out-of-source? #t
+       ;; Avoid including itself as this package is a target input and cannot
+       ;; use the normal cross compilation inputs.
+       #:implicit-cross-inputs? #f))
+    (native-inputs `(("cross-binutils" ,xbinutils)
+                     ("cross-gcc" ,xgcc)))
     (home-page "https://www.nongnu.org/avr-libc/";)
     (synopsis "AVR C Library")
     (description
@@ -131,7 +138,7 @@ for use with GCC on Atmel AVR microcontrollers.")
 
 (define* (make-avr-toolchain/implementation #:key (xgcc gcc))
   (let ((avr-binutils (make-avr-binutils))
-        (avr-libc (make-avr-libc #:xgcc xgcc))
+        (avr-libc (make-avr-libc #:xgcc (cross-gcc "avr" #:xgcc xgcc)))
         (avr-gcc (make-avr-gcc #:xgcc xgcc)))
     ;; avr-libc checks the compiler version and passes "--enable-device-lib"
     ;; for avr-gcc > 5.1.0.  It wouldn't install the library for atmega32u4
diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm
index 0561fd2df8..264c8c7e15 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -28,6 +28,7 @@
 
 (define-module (gnu packages cross-base)
   #:use-module (gnu packages)
+  #:use-module (gnu packages avr)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages base)
   #:use-module (gnu packages linux)
@@ -699,6 +700,9 @@ returned."
                              '())
                        ,@(package-inputs libc) ;FIXME: static-bash
                        ,@(package-native-inputs libc)))))
+   ((? target-avr?)
+    (make-avr-libc #:xbinutils xbinutils
+                   #:xgcc xgcc))
    (else #f)))
 
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]