@@ -188,3 +188,39 @@ usable on embedded products.")
"--enable-newlib-nano-formatted-io"
"--disable-nls"))))))
+(define (arm-none-eabi-toolchain xgcc newlib-arm-none-eabi)
+ (let ((newlib (newlib-arm-none-eabi xgcc)))
+ (package
+ (name "arm-none-eabi-toolchain")
+ (version
+ (cond ((string=? (package-name newlib) "newlib")
+ (package-version xgcc))
+ ((string=? (package-name newlib) "newlib-nano")
+ (string-append "nano-" (package-version xgcc)))))
+ (source #f)
+ (build-system trivial-build-system)
+ (arguments '(#:builder (mkdir %output)))
+ (propagated-inputs
+ `(("binutils" ,xbinutils-arm-none-eabi)
+ ("gcc" ,xgcc)
+ ("newlib" ,newlib)))
+ (synopsis "Complete GCC tool chain for ARM bare metal development")
+ (description "This package provides a complete GCC tool chain for ARM
+bare metal development. This includes the GCC arm-none-eabi cross compiler and
+newlib (or newlib-nano) as the C library. The supported programming languages
+are C and C++.")
+ (home-page (package-home-page xgcc))
+ (license (package-license xgcc)))))
+
+(define-public arm-none-eabi-toolchain-4.9
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-toolchain-6
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-6 newlib-arm-none-eabi))
+
+(define-public arm-none-eabi-toolchain-nano-4.9
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-4.9 newlib-nano-arm-none-eabi))
+
+(define-public arm-none-eabi-toolchain-nano-6
+ (arm-none-eabi-toolchain gcc-arm-none-eabi-6 newlib-nano-arm-none-eabi))
+