From: Morgan Smith <Morgan.J.Smith@outlook.com> * gnu/packages/embedded.scm (gcc-arm-none-eabi-4.9)[native-search-paths]: Change C++ header location to include/c++ * gnu/packages/embedded.scm (gcc-arm-none-eabi-7-2018-q2-update)[native-search-paths]: Change C++ header location to include/c++ * gnu/packages/embedded.scm (make-libstdc++-arm-none-eabi)[arguments]: Change C++ header install location to include/c++ Previously the headers where installed in the include folder, overwriting the C headers that where there previously --- gnu/packages/embedded.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index d6f487bd17..1af266e8cd 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,7 +144,7 @@ (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include/c++"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -313,7 +314,7 @@ usable on embedded products.") (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include/c++"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -376,7 +377,7 @@ usable on embedded products.") "--with-newlib" ,(string-append "--with-gxx-include-dir=" (assoc-ref %outputs "out") - "/arm-none-eabi/include"))))) + "/arm-none-eabi/include/c++"))))) (native-inputs `(("newlib" ,newlib) ("xgcc" ,xgcc) -- 2.29.2
From: Morgan Smith <Morgan.J.Smith@outlook.com> * gnu/packages/embedded.scm (gcc-arm-none-eabi-4.9)[native-search-paths]: Add C++ header location * gnu/packages/embedded.scm (gcc-arm-none-eabi-7-2018-q2-update)[native-search-paths]: Add C++ header location * gnu/packages/embedded.scm (make-libstdc++-arm-none-eabi)[arguments]: Change C++ header install location to include/c++ Previously the C++ headers where installed in the include folder, overwriting some C headers --- Apparently I needed to keep the original include directories as well. This patch actually builds unlike the last one. I've successfully used the generated arm-none-eabi to build a project that required stdlib.h (one of the headers that got overridden) --- gnu/packages/embedded.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index d6f487bd17..73375a211d 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2018, 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> +;;; Copyright © 2020 Morgan Smith <Morgan.J.Smith@outlook.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -143,7 +144,7 @@ (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include" "arm-none-eabi/include/c++"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -313,7 +314,7 @@ usable on embedded products.") (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include" "arm-none-eabi/include/c++"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -376,7 +377,7 @@ usable on embedded products.") "--with-newlib" ,(string-append "--with-gxx-include-dir=" (assoc-ref %outputs "out") - "/arm-none-eabi/include"))))) + "/arm-none-eabi/include/c++"))))) (native-inputs `(("newlib" ,newlib) ("xgcc" ,xgcc) -- 2.29.2
So I had previously only tested this when it was in my profile. I decided to check if other packages that depend on this worked. I determined that the following packages depend on arm-none-eabi: axoloti-runtime, axoloti-patcher, axoloti-patcher-next, arm-trusted-firmware-rk3399, rk3399-cortex-m0, raspi-arm-chainloader. With these two patches, everything builds for me except raspi-arm-chainloader but according to this, that package never built: https://data.guix.gnu.org/repository/1/branch/master/package/raspi-arm-chainloader/output-history
From: Morgan Smith <Morgan.J.Smith@outlook.com> * gnu/packages/axoloti.scm (axoloti-runtime)[arguments][phases][build]: Remove unnecessary environment variable assignments --- gnu/packages/axoloti.scm | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/gnu/packages/axoloti.scm b/gnu/packages/axoloti.scm index 3049051486..0b12e4fe29 100644 --- a/gnu/packages/axoloti.scm +++ b/gnu/packages/axoloti.scm @@ -147,18 +147,7 @@ (define-public axoloti-runtime (delete 'configure) (replace 'build ;; Build Axoloti firmware with cross-compiler - (lambda* (#:key inputs #:allow-other-keys) - (let* ((toolchain (assoc-ref inputs "cross-toolchain")) - (headers (string-append - toolchain - "/arm-none-eabi/include:" - toolchain - "/arm-none-eabi/include/arm-none-eabi/armv7e-m"))) - (setenv "CROSS_CPATH" headers) - (setenv "CROSS_CPLUS_INCLUDE_PATH" headers) - (setenv "CROSS_LIBRARY_PATH" - (string-append toolchain - "/arm-none-eabi/lib"))) + (lambda _ (with-directory-excursion "platform_linux" (invoke "sh" "compile_firmware.sh")))) (replace 'install -- 2.31.1
From: Morgan Smith <Morgan.J.Smith@outlook.com> * gnu/packages/embedded.scm (gcc-arm-none-eabi-4.9)[native-search-paths]: Add C++ header locations * gnu/packages/embedded.scm (gcc-arm-none-eabi-7-2018-q2-update)[native-search-paths]: Add C++ header locations * gnu/packages/embedded.scm (make-libstdc++-arm-none-eabi)[arguments]: Change C++ header install location to include/c++ Previously the C++ headers where installed in the include folder, overwriting some C headers --- gnu/packages/embedded.scm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gnu/packages/embedded.scm b/gnu/packages/embedded.scm index 413760ab72..a3f1d85580 100644 --- a/gnu/packages/embedded.scm +++ b/gnu/packages/embedded.scm @@ -147,7 +147,9 @@ (define-public gcc-arm-none-eabi-4.9 (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include" + "arm-none-eabi/include/c++" + "arm-none-eabi/include/c++/arm-none-eabi"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -317,7 +319,9 @@ (define-public gcc-arm-none-eabi-7-2018-q2-update (files '("arm-none-eabi/include"))) (search-path-specification (variable "CROSS_CPLUS_INCLUDE_PATH") - (files '("arm-none-eabi/include"))) + (files '("arm-none-eabi/include" + "arm-none-eabi/include/c++" + "arm-none-eabi/include/c++/arm-none-eabi"))) (search-path-specification (variable "CROSS_LIBRARY_PATH") (files '("arm-none-eabi/lib")))))))) @@ -380,7 +384,7 @@ (define (make-libstdc++-arm-none-eabi xgcc newlib) "--with-newlib" ,(string-append "--with-gxx-include-dir=" (assoc-ref %outputs "out") - "/arm-none-eabi/include"))))) + "/arm-none-eabi/include/c++"))))) (native-inputs `(("newlib" ,newlib) ("xgcc" ,xgcc) -- 2.31.1
[-- Attachment #1: Type: text/plain, Size: 343 bytes --] Pushed these two patches after testing the dependant packages still build. Sorry for taking such a long time to return to them. -- Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --]