From e297a6060c9f04524cf0ebbf25e9c1769419e4d4 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Wed, 4 Sep 2024 19:11:18 +0200 Subject: [PATCH] feat: add buildable libstdc++ to arm gcc toolchain 12.3 --- ruther/packages/embedded.scm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ruther/packages/embedded.scm b/ruther/packages/embedded.scm index fb37de7..a86cf89 100644 --- a/ruther/packages/embedded.scm +++ b/ruther/packages/embedded.scm @@ -77,6 +77,9 @@ "--enable-languages=c,c++" "--with-gnu-as" "--with-gnu-ld" + "--enable-multilib" + "--with-host-libstdcxx=-static-libgcc \ +-Wl,-Bstatic,-lstdc++,-Bdynamic -lm" "--with-multilib-list=aprofile,rmprofile") (delete "--disable-multilib" #$flags))))) (native-search-paths @@ -166,8 +169,13 @@ C library variant NEWLIB." directories)))))) (propagated-inputs `(("binutils" ,(cross-binutils "arm-none-eabi")) - ;; TODO make work with libstdc++... - ;; ("libstdc++" ,((@@ (gnu packages embedded) make-libstdc++-arm-none-eabi) xgcc newlib-with-xgcc)) + ("libstdc++" ,(let ((base ((@@ (gnu packages embedded) make-libstdc++-arm-none-eabi) xgcc newlib-with-xgcc))) + (package + (inherit base) + (arguments (substitute-keyword-arguments (package-arguments base) + ((#:configure-flags flags) + #~(cons* "--with-target-subdir=yes" + #$flags))))))) ("gcc" ,xgcc) ("newlib" ,newlib-with-xgcc))) (synopsis "Complete GCC tool chain for ARM bare metal development") -- 2.48.1