DaisyWiki
DaisyWiki copied to clipboard
Libraries do not compile under Linux with the latest ARM compiler
The installation instructions for the Linux toolchain point to this page to download the toolchain.
I have downloaded gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz but it gives an internal compiler error when trying to build the libraries. You can find the error messages attached: ErrorMessages.txt. It mainly consists of the following error:
building libDaisy . . .
In file included from src/daisy.h:5,
from src/daisy_seed.h:5,
from src/daisy_field.h:4,
from src/daisy_field.cpp:1:
src/daisy_core.h:81:5: internal compiler error: Illegal instruction
81 | return ((float)x - 127.f) * U82F_SCALE;
| ^~~~~~
Steps to reproduce
- Download gcc-arm-11.2-2022.02-x86_64-arm-none-eabi.tar.xz.
- Decompress the archive.
- Make sure that the bin folder of the archive is in your path.
- Go to your working directory of the DaisyExamples repository.
- Execute:
./ci/build_libs.sh
Workaround
The workaround is to go to the page with the older releases and to download gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 from there and to use that release.
Proposed solution
Please consider to update the Wiki page so that it also points to the older releases of the compilers: https://developer.arm.com/downloads/-/gnu-rm. A pointer to the last known good release would also be helpful.
Please also consider to give more specific information about what is the correct download for the most frequent case of an x86_64 Linux machine. For me it was quite confusing to make sense of all the options on the ARM page.
i ran into this exact same issue, and i just updated the wiki to reflect it. i think anyone can update the wiki, which is probably not the best idea :thinking: but at least others won't need to spend time troubleshooting like we did!
There's probably also an issue with the source code if a newer compiler throws an error. You should probably open an issue on the library itself.
oh most certainly, good idea i will open issue and point to here since i'm not interested in troubleshooting further at the moment.