* arm-none-eabi toolchain and compiling C++ stuff
@ 2023-12-20 20:28 Attila Lendvai
2023-12-20 20:53 ` Ekaitz Zarraga
2023-12-21 16:11 ` Ricardo Wurmus
0 siblings, 2 replies; 4+ messages in thread
From: Attila Lendvai @ 2023-12-20 20:28 UTC (permalink / raw)
To: guix-devel
dear Guix,
i'm trying to compile something to a raspberry rp2040 microcontroller (https://codeberg.org/Riku_V/pico-serprog).
$ guix shell gcc-toolchain cmake make pkg-config -e "((@ (gnu packages embedded) make-arm-none-eabi-toolchain-7-2018-q2-update))"
$ cd _deps
$ git clone https://github.com/raspberrypi/pico-sdk.git pico_sdk-src
$ cd ..
$ cmake .
$ make
so far, so good. it compiles for a while, but then it fails with:
[ 14%] Building CXX object CMakeFiles/pico_serprog.dir/_deps/pico_sdk-src/src/rp2_common/pico_standard_link/new_delete.cpp.obj
In file included from pico-serprog/_deps/pico_sdk-src/src/rp2_common/pico_standard_link/new_delete.cpp:11:0:
/gnu/store/7i9fw82x6hljy6sb4g10v2dl53l7pybl-profile/arm-none-eabi/include/c++/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
if i read this right, it tries to cross compile some C++ stuff, but a header file is missing.
$ guix locate stdlib.h
[...]
gcc-toolchain@13.2.0 /gnu/store/dpfxpfyghkc19wz8jwaw31llhnvn8ngx-gcc-toolchain-13.2.0/include/stdlib.h
gcc-toolchain@11.3.0 /gnu/store/5vn4pkf70ql7v1svrfknfkfsh4m3737h-gcc-toolchain-11.3.0/include/stdlib.h
clang-toolchain@15.0.7 /gnu/store/6m5gi7l7bi93gnzm2j422q9wawq3p6al-clang-toolchain-15.0.7/include/stdlib.h
[...]
i.e. it's usually part of the gcc-toolchain package... but it's not part of the cross-compiling ones?
is that a bug in (gnu packages embedded)? shall i look into fixing it?
or am i the one who has invalid expectations?
--
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“If money is your hope for independence you will never have it. The only real security that a man will have in this world is a reserve of knowledge, experience, and ability.”
— Henry Ford (1863–1947)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arm-none-eabi toolchain and compiling C++ stuff
2023-12-20 20:28 arm-none-eabi toolchain and compiling C++ stuff Attila Lendvai
@ 2023-12-20 20:53 ` Ekaitz Zarraga
2023-12-21 16:11 ` Ricardo Wurmus
1 sibling, 0 replies; 4+ messages in thread
From: Ekaitz Zarraga @ 2023-12-20 20:53 UTC (permalink / raw)
To: Attila Lendvai, guix-devel
On 2023-12-20 21:28, Attila Lendvai wrote:
> dear Guix,
>
> i'm trying to compile something to a raspberry rp2040 microcontroller (https://codeberg.org/Riku_V/pico-serprog).
>
> $ guix shell gcc-toolchain cmake make pkg-config -e "((@ (gnu packages embedded) make-arm-none-eabi-toolchain-7-2018-q2-update))"
> $ cd _deps
> $ git clone https://github.com/raspberrypi/pico-sdk.git pico_sdk-src
> $ cd ..
> $ cmake .
> $ make
>
> so far, so good. it compiles for a while, but then it fails with:
>
> [ 14%] Building CXX object CMakeFiles/pico_serprog.dir/_deps/pico_sdk-src/src/rp2_common/pico_standard_link/new_delete.cpp.obj
> In file included from pico-serprog/_deps/pico_sdk-src/src/rp2_common/pico_standard_link/new_delete.cpp:11:0:
> /gnu/store/7i9fw82x6hljy6sb4g10v2dl53l7pybl-profile/arm-none-eabi/include/c++/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
> #include_next <stdlib.h>
>
> if i read this right, it tries to cross compile some C++ stuff, but a header file is missing.
>
> $ guix locate stdlib.h
> [...]
> gcc-toolchain@13.2.0 /gnu/store/dpfxpfyghkc19wz8jwaw31llhnvn8ngx-gcc-toolchain-13.2.0/include/stdlib.h
> gcc-toolchain@11.3.0 /gnu/store/5vn4pkf70ql7v1svrfknfkfsh4m3737h-gcc-toolchain-11.3.0/include/stdlib.h
> clang-toolchain@15.0.7 /gnu/store/6m5gi7l7bi93gnzm2j422q9wawq3p6al-clang-toolchain-15.0.7/include/stdlib.h
> [...]
>
> i.e. it's usually part of the gcc-toolchain package... but it's not part of the cross-compiling ones?
>
> is that a bug in (gnu packages embedded)? shall i look into fixing it?
>
> or am i the one who has invalid expectations?
>
Hi Attila,
I reported the very same problem some time ago. This should just work in
Guix. I don't think your expectations are wrong.
It should work.
In fact, there is a proposal:
https://lists.gnu.org/archive/html/guix-devel/2023-10/msg00014.html
That claims to fix this.
We should take a look into it.
Thanks for raising a little bit more of awareness on this... I have some
Picos at home and they are literally unusable at this point :)
Cheers,
Ekaitz
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: arm-none-eabi toolchain and compiling C++ stuff
2023-12-20 20:28 arm-none-eabi toolchain and compiling C++ stuff Attila Lendvai
2023-12-20 20:53 ` Ekaitz Zarraga
@ 2023-12-21 16:11 ` Ricardo Wurmus
1 sibling, 0 replies; 4+ messages in thread
From: Ricardo Wurmus @ 2023-12-21 16:11 UTC (permalink / raw)
To: Attila Lendvai; +Cc: guix-devel
Attila Lendvai <attila@lendvai.name> writes:
> is that a bug in (gnu packages embedded)? shall i look into fixing it?
>
> or am i the one who has invalid expectations?
FWIW I have successfully been using
make-arm-none-eabi-nano-toolchain-4.9 with the Axoloti DSP board (via
the axoloti-patcher package). The 2018 toolchain you are using should
also just work (perhaps after setting *_CROSS_* variables). So this
could very well be a bug in the package.
--
Ricardo
^ permalink raw reply [flat|nested] 4+ messages in thread
* arm-none-eabi toolchain and compiling C++ stuff
@ 2024-09-06 16:01 Rutherther
0 siblings, 0 replies; 4+ messages in thread
From: Rutherther @ 2024-09-06 16:01 UTC (permalink / raw)
To: attila; +Cc: guix-devel
Hello Attila,
lately I've been trying to make arm-none-eabi toolchain with gcc 12.3,
since the older ones cannot be used with QMK. I also stumbled accross
this issue. The issue is actually caused by wrong order of paths in
"CROSS_CPLUS_INCLUDE_PATH". The C include path has to come after the C++ path.
So as a workaround, remove the /include from beginning of this, and
append it instead as last.
Apart from that you will probably have an issue with linking against the
libstdc++, since it's inside of "lib" folder instead or "arm-none-eabi/lib"
that is in CROSS_LIBRARY_PATH. As a workaround, just add
"$GUIX_ENVIRONMENT/lib" to "CROSS_LIBRARY_PATH".
I will try to submit the 12.3 patch soon. In the mean time I have it
inside of my own channel https://github.com/Rutherther/guix-exprs/blob/main/ruther/packages/embedded.scm
Redards,
Rutherther
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-09-07 8:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-20 20:28 arm-none-eabi toolchain and compiling C++ stuff Attila Lendvai
2023-12-20 20:53 ` Ekaitz Zarraga
2023-12-21 16:11 ` Ricardo Wurmus
-- strict thread matches above, loose matches on Subject: below --
2024-09-06 16:01 Rutherther
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).