Hi! Im trying to compile some JUCE code to run on bela and have come across many issues, managing to find a solution to each one by one. However, I've reached a point where I'm afraid I might break things apart.
I've managed to set a virtual cross compilation environment (a virtualBox xenomai image), to speed up builds for the embedded platform. In the pursuit of trying to get a successful build and linked binary, I ended up using the latest g++ arm-linux-gnueabihf (version 9) to have access to some of the latest features of c++17, and now the executable won't run on bela because of a GLIBC mismatch (requires version 2.28 but has 2.24 installed).
I know upgrading glibc, while keeping the same linux kernel might be risky so I wonder what you guys recommend in this case. Below are the possible solutions in order of preference and minimum risk that I'm thinking of:
Upgrading firmware on bela with the latest march version and hoping that supports the latest g++ 9 version
(current version: Bela image, v0.3.7a, 16 October 2019,
Linux version 4.4.113-ti-xenomai-r149 (root@giulio-VirtualBox) (gcc version 5.5.0 (Linaro GCC 5.5-2017.10) ) #1 PREEMPT Wed Sep 26 15:40:33 BST 2018)Having some kind of virtual environment on bela with the required GLIBC 2.28 and somehow update runpath LD flags of my app to use that instead of the default ones
Manually update the glibc version on bela and hope that it will actually be backwards compatible
I have a feeling that option 1 falls immediately, from what I've seen on the bela-image-builder repo. So please let me know which one would be the best option (or some other that I have not thought of)
p.s. I know I could go and edit the code and get rid of the latest features of c++17, but it's too much work and changes would be intrusive so I have excluded this from the start