Sunday, October 30, 2022

[SOLVED] Missing libstdc++ headers for arm-none-eabi on Fedora Linux

Issue

I am programming the Raspberry Pi Pico-W and I would like to link against the C++ STL, in order to use some of the Standard Library functionalities and containers.

I have found the href="https://debian.pkgs.org/11/debian-main-amd64/libstdc++-arm-none-eabi-newlib_8-2019-q3-1+13_all.deb.html" rel="nofollow noreferrer">package on Ubuntu, which I used in a professional development environment and I therefore also wanted to install it on Fedora 36, but found it missing in the official and unofficial repositories.

Following packages are available to me currently, so it is really just the libstdc++ that is missing, since the C Library (newlib) is there.

arm-none-eabi-binutils-cs.x86_64                                                        
arm-none-eabi-gcc-cs.x86_64                                                               
arm-none-eabi-gcc-cs-c++.x86_64                                                 
arm-none-eabi-newlib.noarch
libstdc++.i686
libstdc++.x86_64
libstdc++-devel.x86_64

One option I got recommended was to get the headers manually from arm itself, which also includes the rest of the toolchain.

Is there some package I am missing in the Fedora repositories, or is it just really not available as one package?


Solution

Fedora does not seem to provide such packages and I have also not been able to find copr repos for that. Therefore the only solution left, was to install directly from arm. This link gives a short guide for those that need it.

Additionally, since I am using NeoVim with its built-in lsp, I need to add a flag to the clangd configuration, namely --query-driver=/*/*/bin/*gcc, which globs for the compiler found in the compile commands. But this only as a side note.

After that everything seems to work as one would expect.



Answered By - arminveres
Answer Checked By - Mary Flores (WPSolving Volunteer)