daemon: build fails on gnu/linux with portaudio enabled
Issue generated from Tuleap's migration script. Originally submitted by: Marcin (marcin82)
There is issue in ring-daemon building with portaudio. The software change is upgraded opendht to latest stable release 1.0.0. Others build requirements are met. The error is:
make[3]: Entering directory '/home/marcin/src/rpm/BUILD/ring-daemon-2.2.0/src'
CXX libring\_la-smartools.lo
make[3]: Leaving directory '/home/marcin/src/rpm/BUILD/ring-daemon-2.2.0/src'
make[3]: Entering directory '/home/marcin/src/rpm/BUILD/ring-daemon-2.2.0/src'
CXXLD libring.la
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::getAudioDeviceName(int, ring::DeviceType) const':
portaudiolayer.cpp:(.text+0x3b): undefined reference to `Pa\_GetDeviceInfo'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::handleError(int const&) const':
portaudiolayer.cpp:(.text+0x67): undefined reference to `Pa\_GetErrorText'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::getAudioDeviceIndex(std::string const&, ring::DeviceType) const':
portaudiolayer.cpp:(.text+0xa5): undefined reference to `Pa\_GetDeviceCount'
portaudiolayer.cpp:(.text+0xcc): undefined reference to `Pa\_GetDeviceInfo'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::stopStream()':
portaudiolayer.cpp:(.text+0x158): undefined reference to `Pa\_StopStream'
portaudiolayer.cpp:(.text+0x169): undefined reference to `Pa\_CloseStream'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::terminate() const':
portaudiolayer.cpp:(.text+0x22c): undefined reference to `Pa\_Terminate'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::init()':
portaudiolayer.cpp:(.text+0x26c): undefined reference to `Pa\_Initialize'
portaudiolayer.cpp:(.text+0x2b3): undefined reference to `Pa\_GetDeviceInfo'
portaudiolayer.cpp:(.text+0x2f0): undefined reference to `Pa\_GetDeviceInfo'
portaudiolayer.cpp:(.text+0x365): undefined reference to `Pa\_GetDefaultOutputDevice'
portaudiolayer.cpp:(.text+0x392): undefined reference to `Pa\_GetDeviceInfo'
portaudiolayer.cpp:(.text+0x3d1): undefined reference to `Pa\_GetDefaultInputDevice'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::initStream()':
portaudiolayer.cpp:(.text+0x560): undefined reference to `Pa\_GetDeviceInfo'
portaudiolayer.cpp:(.text+0x5b3): undefined reference to `Pa\_OpenStream'
portaudiolayer.cpp:(.text+0x5ec): undefined reference to `Pa\_GetDeviceInfo'
portaudiolayer.cpp:(.text+0x642): undefined reference to `Pa\_OpenStream'
portaudiolayer.cpp:(.text+0x67d): undefined reference to `Pa\_StartStream'
./media/.libs/libmedia.a(portaudiolayer.o): In function `ring::PortAudioLayer::getDeviceByType(bool const&) const':
portaudiolayer.cpp:(.text+0x1227): undefined reference to `Pa\_GetDeviceCount'
portaudiolayer.cpp:(.text+0x1293): undefined reference to `Pa\_GetDeviceInfo'
collect2: error: ld returned 1 exit status
Makefile:666: recipe for target 'libring.la' failed
make[3]: \*\*\* [libring.la] Error 1
make[3]: Leaving directory '/home/marcin/src/rpm/BUILD/ring-daemon-2.2.0/src'
Makefile:930: recipe for target 'all-recursive' failed
make[2]: \*\*\* [all-recursive] Error 1
Makefile:519: recipe for target 'all-recursive' failed
make[1]: \*\*\* [all-recursive] Error 1
Makefile:449: recipe for target 'all' failed
make: \*\*\* [all] Error 2
error: Bad exit status from /home/marcin/src/tmp/rpm-tmp.bvRiMZ (%build)
RPM build errors:
Bad exit status from /home/marcin/src/tmp/rpm-tmp.bvRiMZ (%build)
Build setup:
cd 'ring-daemon-2.2.0'
[ 1 -eq 1 ] || exit 0
[ 1 -eq 1 ] || exit 0
./autogen.sh
CFLAGS="${CFLAGS:--O2 -pipe -Wformat -Wp,-D\_FORTIFY\_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4}" ; export CFLAGS ;
CXXFLAGS="${CXXFLAGS:--O2 -pipe -Wformat -Wp,-D\_FORTIFY\_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4}" ; export CXXFLAGS ;
FFLAGS="${FFLAGS:--O2 -pipe -Wformat -Wp,-D\_FORTIFY\_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4}" ; export FFLAGS ;
LDFLAGS="$LDFLAGS -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id"; export LDFLAGS ;
CONFIGURE\_TOP="${CONFIGURE\_TOP:-.}";
/usr/lib/rpm/rambo/force-as-needed-for-shared-lib-in-libtool ;
/usr/lib/rpm/rambo/drop-ld-no-undefined-for-shared-lib-modules-in-libtool ;
/usr/lib/rpm/rambo/fix-libtool-ltmain-from-overlinking ;
/usr/lib/rpm/rambo/fix-libtool-from-moving-options-after-libs $CONFIGURE\_TOP ;
/usr/lib/rpm/rambo/fix-dlsearch-path-in-libtool-for-multilib $CONFIGURE\_TOP lib64 ;
[ -f $CONFIGURE\_TOP/configure.in -o -f $CONFIGURE\_TOP/configure.ac ] &&
CONFIGURE\_XPATH="--x-includes=/usr/include --x-libraries=/usr/lib64"
$CONFIGURE\_TOP/configure --build=x86\_64-mandriva-linux-gnu \\
--prefix=/usr \\
--exec-prefix=/usr \\
--bindir=/usr/bin \\
--sbindir=/usr/sbin \\
--sysconfdir=/etc \\
--datadir=/usr/share \\
--includedir=/usr/include \\
--libdir=/usr/lib64 \\
--libexecdir=/usr/lib64 \\
--localstatedir=/var \\
--sharedstatedir=/usr/com \\
--mandir=/usr/share/man \\
--infodir=/usr/share/info \\
$CONFIGURE\_XPATH \\
--with-alsa \\
--with-pulse \\
--with-jack \\
--with-portaudio \\
--with-dbus \\
--with-sdes \\
--with-gsm \\
--with-speex \\
--with-opus \\
--with-upnp \\
--enable-ipv6 \\
--disable-static \\
--with-contrib=no
make -O -j3