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 )
 { //{{{

Reply via email to