Source: vpb-driver
Version: 4.2.59-2
Severity: important
Tags: patch
User: [email protected]
Usertags: 2.27
vpb-driver 4.2.59-2 fails to build with glibc 2.27 (2.27-0experimental0 from
experimental):
| x86_64-linux-gnu-g++ -O2 -g -Wall -W -Wpointer-arith -Wcast-qual -Wcast-align
-Wformat=2 -Wno-format-nonliteral -Wfloat-equal -Wwrite-strings
-Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -D_REENTRANT -pthread -MMD
-I../../../src/libvpb -c -o vpbecho.o ../../../src/utils/vpbecho.cpp
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/scanerl.h:25,
| from ../../../src/utils/measerl.cpp:37:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/ringstat.cpp:29:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/recwav.cpp:33:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/scanerl.h:25,
| from ../../../src/utils/vdaaerl.cpp:25:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/tonedebug.cpp:39:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/dtmfcheck.cpp:26:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/bridgeports.cpp:25:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/vpbecho.cpp:34:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/raw2wav.cpp:26:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/tonetrain.cpp:31:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/scanerl.h:25,
| from ../../../src/utils/proslicerl.cpp:25:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/sendcid.cpp:26:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/tonegen.cpp:27:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| In file included from ../../../src/libvpb/vpbapi.h:42:0,
| from ../../../src/utils/playwav.cpp:27:
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| #if VT_COMPILER_GCC(3,1)
| ^
| ../../../src/libvpb/vt_deprecated.h:55:28: warning: this use of "defined" may
not be portable [-Wexpansion-to-defined]
| ../../../src/utils/dtmfcheck.cpp: In function 'double dBFactor(double)':
| ../../../src/utils/dtmfcheck.cpp:52:46: error: 'pow10' was not declared in
this scope
| static double dBFactor( double db ) { return pow10( db / 20.0 ); }
| ^~~~~
| ../../../src/utils/dtmfcheck.cpp:52:46: note: suggested alternative: 'powl'
| static double dBFactor( double db ) { return pow10( db / 20.0 ); }
| ^~~~~
| powl
| x86_64-linux-gnu-g++ -pthread -L../../src/libvpb
-Wl,-rpath-link,../../src/libtoneg raw2wav.o -lvpb -o raw2wav
| x86_64-linux-gnu-g++ -pthread -L../../src/libvpb
-Wl,-rpath-link,../../src/libtoneg ringstat.o -lvpb -o ringstat
| <builtin>: recipe for target 'dtmfcheck.o' failed
| make[1]: *** [dtmfcheck.o] Error 1
| make[1]: *** Waiting for unfinished jobs....
| make[1]: Leaving directory '/<<PKGBUILDDIR>>/obj_shared/src/utils'
| debian/rules:128: recipe for target 'build-arch-stamp' failed
| make: *** [build-arch-stamp] Error 2
| dpkg-buildpackage: error: debian/rules build-arch subprocess returned exit
status 2
A full build logs is available there:
http://aws-logs.debian.net/2018/02/07/glibc-exp/vpb-driver_4.2.59-2_unstable_glibc-exp.log
Starting with glibc 2.27, the libm function pow10 is no longer
supported. The standard exp10 (from TS 18661-4:2015) should be used
instead. The attached patch fixes that.
--- vpb-driver-4.2.59.orig/src/utils/dtmfcheck.cpp
+++ vpb-driver-4.2.59/src/utils/dtmfcheck.cpp
@@ -49,7 +49,7 @@
printf(" --block size Granularity of analysis. Default is 16000
samples (2sec)\n");
} //}}}
-static double dBFactor( double db ) { return pow10( db / 20.0 ); }
+static double dBFactor( double db ) { return exp10( db / 20.0 ); }
static inline void LinearGain( double gain, int16_t *buf, size_t len )
{ //{{{