I compile Ardour for years. So far, everything was fine, but recently I upgraded my Kubuntu to the latest release and I cannot compile Ardour anymore.
The error appears at the very end of compilation (linking).
I will be grateful for your help.
Skygge
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/10/…/…/…/x86_64-linux-gnu/libdbus-1.a(libdbus_1_la-dbus-sysdeps-pthread.o): in function _dbus_platform_condvar_new': (.text+0x1e9): undefined reference to pthread_condattr_setclock’
collect2: error: ld returned 1 exit status
Waf: Leaving directory `/cd/ardour-git/ardour/build’
Build failed
-> task in ‘ardour-request-device’ failed with exit status 1:
{task 140108249883808: cprogram reserve.c.2.o,request_device.c.2.o -> ardour-request-device}
[’/usr/bin/gcc’, ‘libs/ardouralsautil/reserve.c.2.o’, ‘libs/ardouralsautil/request_device.c.2.o’, ‘-o/cd/ardour-git/ardour/build/libs/ardouralsautil/ardour-request-device’, ‘-Wl,-Bstatic’, ‘-Wl,-Bdynamic’, ‘-lm’, ‘-ldbus-1’]
It happens if I add the Alsa backend (–with-backends=jack,pulseaudio,alsa) only.
If I remove alsa backend the compilation is OK.
PS.
With Ardour6, you do not have to specify --with-backend=... anymore. Available backends are auto-detected. The option is only needed if you want to explicitly override this. If you do this, I’d recommend to also include the dummy backend, since various session-utils depend on it.
@x42 : without specifying backends the error is the same:
Build failed
-> task in ‘ardour-request-device’ failed with exit status 1 (run with -v to display more information)
@lsdfjksdjfh : I followed the instructions provided on this page but it changes nothing.
OK, that’s new enough to include to add -pthread as compile flag, which should fix the issue.
I’m out of ideas. Searching the web for this specific error ("_dbus_platform_condvar_new’ undefined reference to pthread_condattr_setclock’") also does not yield any other helpful results.
Can you try a full rebuild (rm -rf build; ./waf configure ...; ./waf), just in case the flag was not picked up in incremental builds after a git pull.
But chances are that it’s likely something specific to your system, since may Linux distros build it just fine, incl. recent Ubuntu.
If it helps, I’ve just compiled the master branch on a Kubuntu 20.10 system. Possibly my steps may suggest something you omitted.
sudo apt-get build-dep ardour
mkdir ardour
cd ardour
git clone https://github.com/Ardour/ardour.git 6.5
cd 6.5
(edit first line of waf to be #!/usr/bin/env python2 - my system has no default python)
./waf configure
sudo apt-get install soundtouch
./waf configure
./waf
cd gtk2_ardour
./ardev