SIGILL when running BlocksDrawing on BeagleBone Black


The Lightpad Block shows up correctly as a Midi device on my BeagleBoneBlack :

$ amidi -l
Dir Device    Name
IO  hw:1,0,0  Lightpad BLOCK MIDI 1

and I can succesfully dump some Midi sysex to the console with amidi -d -p hw:1,0,0

I started from the BlocksDrawing example, turned it into a console application and successfully built it as such on Mac.
I copied the whole JUCE folder to the BeagleBone Black and built the LinuxMakefile build. After installing the dependencies I manage to build it, but I get a segmentation fault when I start the application:

$ ./build/BlocksDrawing
JUCE v4.3.0
Segmentation fault

Here is what I could get from gdb:

root@bela ~/JUCE/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile$ gdb build/BlocksDrawing
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
This GDB was configured as "arm-linux-gnueabihf".
Reading symbols from build/BlocksDrawing...done.
(gdb) r
Starting program: /root/JUCE/examples/BLOCKS/BlocksDrawing/Builds/LinuxMakefile/build/BlocksDrawing
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/".
Cannot access memory at address 0x0

Program received signal SIGILL, Illegal instruction.
0xb68ed788 in ?? () from /usr/lib/arm-linux-gnueabihf/
(gdb) bt
#0  0xb68ed788 in ?? () from /usr/lib/arm-linux-gnueabihf/
#1  0xb68eb52c in OPENSSL_cpuid_setup () from /usr/lib/arm-linux-gnueabihf/
#2  0xb6fe2236 in call_init (l=<optimized out>, argc=1, argv=0xbefffbd4, env=0xbefffbdc) at dl-init.c:78
#3  0xb6fe22c8 in _dl_init (main_map=0xb6fff958, argc=1, argv=0xbefffbd4, env=0xbefffbdc) at dl-init.c:126
#4  0xb6fd7bf2 in _dl_start_user () from /lib/
Backtrace stopped: previous frame identical to this frame (corrupt stack?)


Have you tried running other JUCE command line apps on the BeagleBone? Do you see the same behaviour for a simple ‘Hello World’ console app?


Seems like curl is somehow crashing. Try disabling curl support in the Projucer:


Disabling CURL in the options resolves the issue. Note that even disabling it will still require libcurl to be installed, which may not be expected behaviour