Morgan.J.Smith@outlook.com schreef op zo 26-09-2021 om 10:51 [-0400]: > From: Morgan Smith > > * gnu/packages/embedded.scm (newlib-msp430): New variable. > --- > gnu/packages/embedded.scm | 35 +++++++++++++++++++++++++++++++++++ > 1 file changed, 35 insertions(+) > > diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm > index 7073168b57..49f3eda5fb 100644 > --- a/gnu/packages/embedded.scm > +++ b/gnu/packages/embedded.scm > @@ -563,6 +563,41 @@ languages are C and C++.") > (variable "CROSS_LIBRARY_PATH") > (files '("msp430-elf/lib")))))))) > > +(define-public newlib-msp430 > + (package > + (name "newlib") > + (version "2.4.0") > + (source (origin > + (method url-fetch) > + (uri (string-append "ftp://sourceware.org/pub/newlib/newlib-" > + version ".tar.gz")) > + (sha256 > + (base32 > + "01i7qllwicf05vsvh39qj7qp5fdifpvvky0x95hjq39mbqiksnsl")))) > + (build-system gnu-build-system) There already is a newlib package: newlib-arm-none-eabi. Could you use (package (inherit "newlib-msp430") ...) to reduce duplication? Also, could you (a) change the name to, say, "newlib-msp430" or (b) instead of defining a new "newlib" package, keep a single newlib package and make the architecture-dependent tweaks depend on (%current-target-system)? such that "newlib@2.4.0" is an unambigious specification (or, at least, not more ambigious than it was before), usable for "specification->package"? > + (arguments > + `(#:out-of-source? #t > + #:phases > + (modify-phases %standard-phases > + (add-after 'unpack 'fix-references-to-/bin/sh > + (lambda _ > + (substitute* '("libgloss/msp430/Makefile.in" > + "libgloss/libnosys/Makefile.in" > + "libgloss/Makefile.in") > + (("/bin/sh") (which "sh")))))) This duplication can be removed by inheriting from 'newlib-arm-none-eabi'. > + #:configure-flags '("--target=msp430-elf"))) I'd suggest adding #:target "msp430-elf" to 'arguments' instead of setting #:configure-flags directly. That way, guix knows we are cross-compiling and won't try to run tests and won't try to run 'ldconfig'. Greetings, Maxime.