Compiling mixxx on Raspberry pi-ubuntu Mate 16.04

Hi,
I am fairly new in the compling world, so please be a bit pacient.

I am trying to complie mixxx on a Rasberry pi 3 running ubuntu mate. I have installed all the dependencies + freeglut3-dev to avoid the opengl error.

For some reason I can’t get around this error at the very beggining of the process:

Configuring BuildTime Configuring QDebug Configuring Verbose Configuring Optimize Configuring FAAD Configuring WavPack Configuring ModPlug Configuring TestSuite Configuring Vamp *** Error in `gcc': double free or corruption (!prev): 0x00c465d8 *** Checking for C library vamp-hostsdk... no *** Error in `gcc': double free or corruption (!prev): 0x004e78d8 *** Checking for C library dl... no *** Error in `gcc': double free or corruption (!prev): 0x002e68d8 *** Checking for C library libdl... no *** Error in `gcc': double free or corruption (!prev): 0x013318d8 *** Checking for C library X11... no *** Error in `gcc': double free or corruption (!prev): 0x003928d8 *** Checking for C library libX11... no *** Error in `gcc': double free or corruption (!prev): 0x016678d8 *** Checking for C header file fftw3.h... no *** Error in `gcc': double free or corruption (!prev): 0x003918d8 *** Checking for C library fftw3... no Configuring AutoDjCrates Configuring ColorDiagnostics Configuring AddressSanitizer Configuring LocaleCompare *** Error in `gcc': double free or corruption (top): 0x00626f38 *** Checking for C library sqlite3... no ERROR:root:Unmet dependency: Missing libsqlite3 -- exiting! Configuring PerfTools Configuring AsmLib Configuring IPod Configuring FFMPEG ERROR:root:Build had unmet dependencies. Exiting.

and after that it stops and I get a crash window message. It is odd because libsqlite3 is installed:

mixxx@mixxx-desktop:~/Desktop/mixxx-2.0.0$ sudo apt-get install libsqlite3-dev Reading package lists... Done Building dependency tree Reading state information... Done libsqlite3-dev is already the newest version (3.11.0-1ubuntu1).

And I attempted to compile it before -in mate 15.10 - and I did not have this particular issue.

Many thanks for your help.

p.s. If I manage to compile it, I promise to upload the build.

Fonzi,

I’m on Rasbian (jessie / sept 2016) getting the same issue. I clearly have all the dependancies installed but they aren’t being found by scons.

Did you end up having any luck finding the fix?

Configuring Vamp
*** Error in `gcc': double free or corruption (top): 0x020a93e8 ***
Checking for C library vamp-hostsdk... no
*** Error in `gcc': double free or corruption (top): 0x0012f430 ***
Checking for C library dl... no
*** Error in `gcc': double free or corruption (top): 0x01631430 ***
Checking for C library libdl... no
*** Error in `gcc': double free or corruption (top): 0x008ef430 ***
Checking for C header file fftw3.h... no
*** Error in `gcc': double free or corruption (top): 0x004d5430 ***
Checking for C library fftw3... no
Configuring ColorDiagnostics
Configuring AddressSanitizer
Configuring LocaleCompare
*** Error in `gcc': double free or corruption (top): 0x00d6b430 ***
Checking for C library sqlite3... no
ERROR:root:Unmet dependency: Missing libsqlite3 -- exiting!

as suggested in another recent post (and after experiencing something similar on windows), either try to run scons -c and/or delete the .sconf_temp folder and .sconsign.dblite file in the sources dir.

JosepMa: Thanks. No luck though. I have learned more as I’ve debugged (see further down this reply)

I had tried part of that scons -c and had not explicitly deleted those files to ensure the scons was starting from a completely fresh brain. Deleted those and tried again with same result.

It appears to me that everything dependency/compile issue it is having an issue with in the dependancies is the stuff that is housed in the

.

I am not familiar enough with scons setup to know how to force it to look in there for it’s dependancies. I’ve tried setting the LD_LIBRARY_PATH with no luck.

My end goal is to to try compiling the latest Mixxx on a RaspberryPi3 in such a way I am sure it is compiled against the latest graphics/opengl libraries and see if that makes the interface more responsive. Currently the apt installed mixxx (v1.11) works (plays and mixes audio smoothly) but the interface is not anywhere close to what you would call smooth or responsive.

I should also note: I am doing this on the latest Raspbian (jessie) and not pi-ubuntu Mate and I am getting exact same issues as the pi-ubuntu user leading me to think it is a more fundamental arm architecture dependency detection issue in scons.

more details after further debugging

Turns out the option causing sadness is the -march=native.

Focusing on the sqlite compile test I looked in the config.log and grabbed the compile line for the sqlite test:

gcc -o .sconf_temp/conftest_40.o -c -pipe -Wall -Wextra -g -pthread -O3 -ffast-math -funroll-loops -fomit-frame-pointer -march=native -mfloat-abi=hard -mfpu=neon -Darmv7l -DMIXXX_BUILD_DEBUG -D__LINUX__ -D__UNIX__ -DSETTINGS_PATH=\".mixxx/\" -DSETTINGS_FILE=\"mixxx.cfg\" -DUNIX_SHARE_PATH=\"/usr/local/share/mixxx\" -DUNIX_LIB_PATH=\"/usr/local/lib/mixxx\" -D__PORTAUDIO__ -DQT_TABLET_SUPPORT -DQT_SHARED -DQT_CORE_LIB -DQT_GUI_LIB -DQT_OPENGL_LIB -DQT_XML_LIB -DQT_SVG_LIB -DQT_SQL_LIB -DQT_SCRIPT_LIB -DQT_NETWORK_LIB -DQT_SHARED -D__SNDFILE__ -D__MAD__ -D__HID__ -D__BULK__ -D__VINYLCONTROL__ -D__BROADCAST__ -D__OPUS__ -D__VAMP__ -Dkiss_fft_scalar=double -Ilin32_build -Isrc -Ilib/soundtouch-1.9.2 -Ilib/replaygain -Ilib/libebur128-1.1.0/ebur128 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtScriptTools -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtCore -Ilib/gtest-1.7.0/include -Ilib/fidlib-0.9.10 -I/usr/include/taglib -Ilib/qtscript-bytearray -Ilib/reverb -Ilib/portaudio -I/usr/include/libusb-1.0 -Ilib/hidapi-0.8.0-rc1/hidapi -Ilib/xwax -Ilib/scratchlib -I/usr/include/opus -Ilib/vamp-2.6 .sconf_temp/conftest_40.c

Then removing just the -march=native and running the same way:

gcc -o .sconf_temp/conftest_40.o -c -pipe -Wall -Wextra -g -pthread -O3 -ffast-math -funroll-loops -fomit-frame-pointer -mfloat-abi=hard -mfpu=neon -Darmv7l -DMIXXX_BUILD_DEBUG -D__LINUX__ -D__UNIX__ -DSETTINGS_PATH=\".mixxx/\" -DSETTINGS_FILE=\"mixxx.cfg\" -DUNIX_SHARE_PATH=\"/usr/local/share/mixxx\" -DUNIX_LIB_PATH=\"/usr/local/lib/mixxx\" -D__PORTAUDIO__ -DQT_TABLET_SUPPORT -DQT_SHARED -DQT_CORE_LIB -DQT_GUI_LIB -DQT_OPENGL_LIB -DQT_XML_LIB -DQT_SVG_LIB -DQT_SQL_LIB -DQT_SCRIPT_LIB -DQT_NETWORK_LIB -DQT_SHARED -D__SNDFILE__ -D__MAD__ -D__HID__ -D__BULK__ -D__VINYLCONTROL__ -D__BROADCAST__ -D__OPUS__ -D__VAMP__ -Dkiss_fft_scalar=double -Ilin32_build -Isrc -Ilib/soundtouch-1.9.2 -Ilib/replaygain -Ilib/libebur128-1.1.0/ebur128 -I/usr/include/qt4 -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSvg -I/usr/include/qt4/QtSql -I/usr/include/qt4/QtXmlPatterns -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtTest -I/usr/include/qt4/QtScriptTools -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtScript -I/usr/include/qt4/QtCore -Ilib/gtest-1.7.0/include -Ilib/fidlib-0.9.10 -I/usr/include/taglib -Ilib/qtscript-bytearray -Ilib/reverb -Ilib/portaudio -I/usr/include/libusb-1.0 -Ilib/hidapi-0.8.0-rc1/hidapi -Ilib/xwax -Ilib/scratchlib -I/usr/include/opus -Ilib/vamp-2.6 .sconf_temp/conftest_40.c

Successfully compiles.

Took this to the other dependancies failing during the configuration tests the removal of -march=native from the compile tests of the failing vamp-hostsdk, libdl, fftw3, and sqlite3 causes all the tests to successfully compile.

I guess question is how do I remove the -march=native from the options scons decides to use when on the Arm architecture?

Try running scons with the “optimize=portable” option.

Be. you rock.

That worked - the build is now going. Thanks!

I did notice along the way that it mentioned OpenGL-ES support was disabled - which getting out of software rendered opengl was the initiator of me going down the compile by hand mode.

OpenGL-ES >= 2.0 support [Experimental]... Disabled

I am going to let it go forth and see if it finishes and if it runs before digging into that. Feeling good watching the little Pi crunch away at building Mixxx.

To help wrap up this thread that started out by fonzi with unable to compile due to missing dependancies on arm (ubuntu/raspbian).

The trick is to use the optimize=portable option when doing scons: scons optimize=portable -j 2

While the compile was successful for me I did not get a hardware rendered opengl build which I am currently assuming, with software rendering, is the cause of the rather laggy interface. However that is a topic for a new/different thread.

Thanks all for the help.

It looks like you hit a known gcc bug:
gcc.gnu.org/bugzilla/show_bug.cgi?id=70132

The default setting should be already “optimize=portable”
github.com/mixxxdj/mixxx/blob/8 … es.py#L985
Did you ever touch this setting in your very first attempt?

What is the output of
gcc --version
and
gcc -march=native -Q --help=target -v
on your target?

cat /proc/cpuinfo

could be also interesting.