-
Notifications
You must be signed in to change notification settings - Fork 155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Needed -latomic linker flag to generate examples on Raspberry Pi 4 #54
Comments
I was able to generate the examples and build Projucer and the StepSequencerDemo without observing the -latomic issue on an Nvidia Jetson Nano DevKit platform which runs 64-bit Ubuntu 18.0.4 on 64-bit Linux kernel for aarch64 architecture. |
I was able to do the same without observing the -latomic issue on my NanoPi M4 board which runs 64-bit FriendlyElec OS on 64-bit Linux kernel for aarch64 architecture. |
We're in the process of transitioning to the cmake generated examples. If you run those, they should include the |
I have cmake 3.20.1 compiled from sources and installed on the PATH. I see CMakeLists.txt in Projucer and StepSequencerDemo folders. I didn't see an example of how I should invoke cmake to generate Projucer or the StepSequencerDemo demo. I can try to guess at it. |
You just have to |
I see -latomic in the CMakeFiles/StepSequencerDemo.dir/link.txt generated by cmake. Building StepSequencerDemo with the Makefile generated by CMake produced the following error on the same Raspberry Pi 4: [ 96%] Building CXX object CMakeFiles/StepSequencerDemo.dir/home/pi/src/github.com/Tracktion/tracktion_engine/modules/tracktion_graph/tracktion_graph.cpp.o |
On the aarch64 Jetson Nano DevKit, I see the following error and many warnings with CMake whereas the build with the published procedure was clean and no warnings. $ make |
To be honest, those examples were never configured to run on ARM Pis. Try that first to see if it will compile. We build Waveform on Pi 32 & 64 bit so it should find the |
Thanks. I understand. It is great that it works with generate_examples script for ARM. It was clean for 64-bit ARM, at least on two of my aarch64 boards. For 32-bit armv7l Raspberry Pi 4, I just had to add the -latomic flag. That's relatively less work for now than with CMake. I will explore the CMake path since it may be heading that way. |
Ok, let me know what you find. |
As an alternative workaround for Raspberry Pi 4 running 32-bit Raspbian 10 (buster) for armv7l, I can compile the StepSequencerDemo with either of the following commands: $ make LDFLAGS=-latomic CONFIG=Release |
To resolve the "-m64" issue for CMake method on 64-bit ARM, I edited the CMakeLists.txt as follows:
With the above change, I was able to build the StepSequencerDemo using the CMake method on three of my aarch64 boards, the Nvidia Jetson Nano DevKit, the NanoPi M4, and the Google Coral Dev board. |
I can build the StepSequencerDemo using the CMake method for 32-bit armv7l on my Raspberry Pi 4 with clang++ as follows:
|
The following is the output of cmake command using clang++ 10.0.0 as the compiler:
|
I observed issues due to missing -latomic linker flag when executing tests/linux/generate_examples on 32-bit Raspbian 10 (buster) for armv7l with g++ 8.3.0.
As a workaround, I edited the Makefiles for Projucer and StepSequencerDemo demo, which I was trying to build, by adding the linker flag -latomic. For more information about the specific system environment, please refer to the video I recorded on my YouTube channel as well as the video description.
Raspberry Pi 4: Compiled StepSequencerDemo From Tracktion Engine on Raspbian 10 (buster)
https://youtu.be/7Rxsc66khE0
Regards,
Alan Mikhak
The text was updated successfully, but these errors were encountered: