Morgan.J.Smith@outlook.com schreef op zo 26-09-2021 om 10:51 [-0400]: > From: Morgan Smith > > * gnu/packages/embedded.scm (gcc-msp430): New variable. > --- > gnu/packages/bootstrap.scm | 1 + > gnu/packages/embedded.scm | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 34 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 @@ or false to signal an error." > ((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 f1f17e83a7..7073168b57 100644 > --- a/gnu/packages/embedded.scm > +++ b/gnu/packages/embedded.scm > @@ -530,6 +530,39 @@ languages are C and C++.") > `(("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") > + (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"))))))))) > + (native-search-paths Shouldn't these be 'search-paths' instead of 'native-search-paths', as "gcc-msp430" is a cross-compiler? (I know other GCC cross-compiler packages in (gnu packages embedded) are using native-search-paths as well, but I don't understand why.) > + (list (search-path-specification > + (variable "CROSS_C_INCLUDE_PATH") > + (files '("msp430-elf/include"))) > + (search-path-specification > + (variable "CROSS_LIBRARY_PATH") > + (files '("msp430-elf/lib")))))))) Greetings, Maxime.