summary refs log tree commit diff
path: root/gnu/packages/embedded.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/embedded.scm')
-rw-r--r--gnu/packages/embedded.scm97
1 files changed, 48 insertions, 49 deletions
diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm
index 91c600353a..e89f5570b0 100644
--- a/gnu/packages/embedded.scm
+++ b/gnu/packages/embedded.scm
@@ -416,13 +416,15 @@ language.")
 with a layered architecture of JTAG interface and TAP support.")
     (license license:gpl2+)))
 
-;; The commits for all propeller tools are the latest versions as published
-;; here: https://github.com/dbetz/propeller-gcc
+;; The commits for all propeller tools are the stable versions published at
+;; https://github.com/propellerinc/propgcc in the release_1_0.  According to
+;; personal correspondence with the developers in July 2017, more recent
+;; versions are currently incompatible with the "Simple Libraries".
 
 (define propeller-binutils
   (let ((xbinutils (cross-binutils "propeller-elf"))
-        (commit "3bfba30076f8ce160a2f42914fdb68f24445fd44")
-        (revision "1"))
+        (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
+        (revision "2"))
     (package
       (inherit xbinutils)
       (name "propeller-binutils")
@@ -430,28 +432,24 @@ with a layered architecture of JTAG interface and TAP support.")
       (source (origin (inherit (package-source xbinutils))
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/totalspectrum/binutils-propeller.git")
+                      (url "https://github.com/parallaxinc/propgcc.git")
                       (commit commit)))
                 (file-name (string-append name "-" commit "-checkout"))
                 (sha256
                  (base32
-                  "1v3rgxwj7b8817wy5ccf8621v75qcxvcxygk4acr3hbc6yqybr8h"))))
+                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
+                (patch-flags (list "-p1" "--directory=binutils"))))
       (arguments
-       `(;; FIXME: For some reason there are many test failures.  Some of them
-         ;; appear to be due to regular expression mismatch, but it's not
+       `(;; FIXME: For some reason there are many test failures.  It's not
          ;; obvious how to fix the failures.
          #:tests? #f
          #:phases
          (modify-phases %standard-phases
-           (add-after 'unpack 'patch-/bin/sh-in-tests
-             (lambda _
-               (substitute* '("sim/testsuite/Makefile.in"
-                              "sim/testsuite/mips64el-elf/Makefile.in"
-                              "sim/testsuite/d10v-elf/Makefile.in"
-                              "sim/testsuite/sim/cris/asm/badarch1.ms")
-                 (("/bin/sh") (which "sh")))
-               #t)))
-         ,@(package-arguments xbinutils)))
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "binutils") #t)))
+         ,@(substitute-keyword-arguments (package-arguments xbinutils)
+            ((#:configure-flags flags)
+             `(cons "--disable-werror" ,flags)))))
       (native-inputs
        `(("bison" ,bison)
          ("flex" ,flex)
@@ -497,26 +495,33 @@ with a layered architecture of JTAG interface and TAP support.")
 
 (define-public propeller-gcc-4
   (let ((xgcc propeller-gcc-6)
-        (commit "f1b01001b760d691a91ff1db4830d41bb712557f")
-        (revision "1"))
+        (commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
+        (revision "2"))
     (package (inherit xgcc)
       (name "propeller-gcc")
       (version (string-append "4.6.1-" revision "." (string-take commit 9)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/dbetz/propgcc-gcc.git")
+                      (url "https://github.com/parallaxinc/propgcc.git")
                       (commit commit)))
                 (file-name (string-append name "-" commit "-checkout"))
                 (sha256
                  (base32
-                  "15mxrhk2v4vqmdkvcqy33ag1wrg9x9q20kx2w33kkw8pkrijknbi"))
+                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))
+                (patch-flags (list "-p1" "--directory=gcc"))
                 (patches
                  (append
                   (origin-patches (package-source gcc-4.7))
                   (search-patches "gcc-4.6-gnu-inline.patch"
                                   "gcc-cross-environment-variables.patch")))))
-      (home-page "https://github.com/dbetz/propgcc-gcc")
+      (arguments
+       (substitute-keyword-arguments (package-arguments propeller-gcc-6)
+         ((#:phases phases)
+          `(modify-phases ,phases
+             (add-after 'unpack 'chdir
+               (lambda _ (chdir "gcc") #t))))))
+      (home-page "https://github.com/parallaxinc/propgcc")
       (supported-systems (delete "aarch64-linux" %supported-systems)))))
 
 ;; Version 6 is experimental and may not work correctly.  This is why we
@@ -524,23 +529,25 @@ with a layered architecture of JTAG interface and TAP support.")
 ;; provided by Parallax Inc.
 (define-public propeller-gcc propeller-gcc-4)
 
-;; There is no release, so we take the latest version as referenced from here:
-;; https://github.com/dbetz/propeller-gcc
+
+;; FIXME: We do not build the tiny library because that would require C++
+;; headers, which are not available.  This may require adding a propeller-elf
+;; variant of the libstdc++ package.
 (define-public proplib
-  (let ((commit "844741fe0ceb140ab2fdf9d0667f68c1c39c31da")
-        (revision "1"))
+  (let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
+        (revision "2"))
     (package
       (name "proplib")
       (version (string-append "0.0.0-" revision "." (string-take commit 9)))
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/totalspectrum/proplib.git")
+                      (url "https://github.com/parallaxinc/propgcc.git")
                       (commit commit)))
                 (file-name (string-append name "-" commit "-checkout"))
                 (sha256
                  (base32
-                  "0q7irf1x8iqx07n7lzksax9armrdkizs49swsz76nbks0mw67wiv"))))
+                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f ; no tests
@@ -550,12 +557,11 @@ with a layered architecture of JTAG interface and TAP support.")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure)
-           (add-after 'unpack 'fix-Makefile
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "lib") #t))
+           (add-after 'chdir 'fix-Makefile
              (lambda _
                (substitute* "Makefile"
-                 ;; The GCC sources are not part of this package, so we cannot
-                 ;; install the out-of-tree license file.
-                 (("cp \\.\\..*") "")
                  ;; Control the installation time of the headers.
                  ((" install-includes") ""))
                #t))
@@ -575,23 +581,14 @@ with a layered architecture of JTAG interface and TAP support.")
                                       "/propeller-elf/include:"
                                       (or (getenv "CROSS_C_INCLUDE_PATH") "")))
                #t))
-           (add-after 'build 'build-tiny
-             (lambda* (#:key make-flags #:allow-other-keys)
-               (zero? (apply system* "make" "tiny" make-flags))))
-           ;; The build of the tiny libraries depends on the includes to be
-           ;; available.  Since we set CROSS_C_INCLUDE_PATH to the output
-           ;; directory, we have to install the includes first.
-           (add-before 'build-tiny 'install-includes
+           (add-before 'install 'install-includes
              (lambda* (#:key make-flags #:allow-other-keys)
-               (zero? (apply system* "make" "install-includes" make-flags))))
-           (add-after 'install 'install-tiny
-             (lambda* (#:key make-flags #:allow-other-keys)
-               (zero? (apply system* "make" "install-tiny" make-flags)))))))
+               (zero? (apply system* "make" "install-includes" make-flags)))))))
       (native-inputs
        `(("propeller-gcc" ,propeller-gcc)
          ("propeller-binutils" ,propeller-binutils)
          ("perl" ,perl)))
-      (home-page "https://github.com/totalspectrum/proplib")
+      (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "C library for the Parallax Propeller")
       (description "This is a C library for the Parallax Propeller
 micro-controller.")
@@ -655,20 +652,20 @@ code.")
     (license license:expat)))
 
 (define-public propeller-load
-  (let ((commit "ba9c0a7251cf751d8d292ae19ffa03132097c0c0")
-        (revision "1"))
+  (let ((commit "4c46ecbe79ffbecd2ce918497ace5b956736b5a3")
+        (revision "2"))
     (package
       (name "propeller-load")
       (version "3.4.0")
       (source (origin
                 (method git-fetch)
                 (uri (git-reference
-                      (url "https://github.com/dbetz/propeller-load.git")
+                      (url "https://github.com/parallaxinc/propgcc.git")
                       (commit commit)))
                 (file-name (string-append name "-" commit "-checkout"))
                 (sha256
                  (base32
-                  "1qv3xaapl9fmj3zn58b60sprp4rnvnlpci8ci0pdrzkw6fhvx3pg"))))
+                  "0w0dff3s7wv2d9m78a4jhckiik58q38wx6wpbba5hzbs4yxz35ck"))))
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f ; no tests
@@ -677,11 +674,13 @@ code.")
                (string-append "TARGET=" (assoc-ref %outputs "out")))
          #:phases
          (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "loader") #t))
            (delete 'configure))))
       (native-inputs
        `(("openspin" ,openspin)
          ("propeller-toolchain" ,propeller-toolchain)))
-      (home-page "https://github.com/dbetz/propeller-load")
+      (home-page "https://github.com/parallaxinc/propgcc")
       (synopsis "Loader for Parallax Propeller micro-controllers")
       (description "This package provides the tool @code{propeller-load} to
 upload binaries to a Parallax Propeller micro-controller.")