guix-patches
[Top][All Lists]
Advanced

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

[bug#48767] [PATCH 2/7] gnu: Add gcc-msp430.


From: Morgan . J . Smith
Subject: [bug#48767] [PATCH 2/7] gnu: Add gcc-msp430.
Date: Mon, 31 May 2021 23:09:47 -0400

From: Morgan Smith <Morgan.J.Smith@outlook.com>

* gnu/packages/embedded.scm (gcc-msp430): New variable.
---
 gnu/packages/bootstrap.scm |  1 +
 gnu/packages/embedded.scm  | 46 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+)

diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index c598cedc0a..54a028e977 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -311,6 +311,7 @@ (define* (glibc-dynamic-linker
         ((string=? system "arm-eabi") "no-ld.so")
         ((string=? system "xtensa-elf") "no-ld.so")
         ((string=? system "avr") "no-ld.so")
+        ((string=? system "msp430-elf") "no-ld.so")
         ((string=? system "propeller-elf") "no-ld.so")
         ((string=? system "i686-mingw") "no-ld.so")
         ((string=? system "x86_64-mingw") "no-ld.so")
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 3e66382eed..cf48c61a93 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -530,6 +530,52 @@ (define-public gcc-msp430-support-files
      `(("unzip" ,unzip)))
     (license license:bsd-3)))
 
+(define-public gcc-msp430
+  (let ((xgcc (cross-gcc "msp430-elf"
+                         #:xgcc gcc-9
+                         #:xbinutils (cross-binutils "msp430-elf"))))
+    (package
+      (inherit xgcc)
+      (name "gcc-msp430")
+      (native-inputs
+       `(("gcc" ,gcc-9)
+         ,@(package-native-inputs xgcc)))
+      (arguments
+       (substitute-keyword-arguments (package-arguments xgcc)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'set-paths 'augment-CPLUS_INCLUDE_PATH
+               (lambda* (#:key inputs #:allow-other-keys)
+                 (let ((gcc (assoc-ref inputs  "gcc")))
+                   ;; Remove the default compiler from CPLUS_INCLUDE_PATH to
+                   ;; prevent header conflict with the GCC from native-inputs.
+                   (setenv "CPLUS_INCLUDE_PATH"
+                           (string-join
+                            (delete (string-append gcc "/include/c++")
+                                    (string-split (getenv "CPLUS_INCLUDE_PATH")
+                                                  #\:))
+                            ":"))
+                   (format #t
+                           "environment variable `CPLUS_INCLUDE_PATH' changed 
to ~a~%"
+                           (getenv "CPLUS_INCLUDE_PATH"))
+                   #t)))))
+         ((#:configure-flags flags)
+          `(append (list
+                    "--target=msp430-elf"
+                    "--enable-languages=c,c++"
+                    "--disable-nls"
+                    "--enable-initfini-array"
+                    "--enable-target-optspace"
+                    "--enable-newlib-nano-formatted-io")
+                   ,flags))))
+      (native-search-paths
+       (list (search-path-specification
+              (variable "CROSS_C_INCLUDE_PATH")
+              (files '("msp430-elf/include")))
+             (search-path-specification
+              (variable "CROSS_LIBRARY_PATH")
+              (files '("msp430-elf/lib"))))))))
+
 (define-public libjaylink
   (package
     (name "libjaylink")
-- 
2.31.1






reply via email to

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