Bug#853491: libffado: ftbfs with GCC-7

Philip Chung philipchung1995 at yahoo.com
Mon Sep 4 17:51:26 UTC 2017


Control: tags -1 patch
Control: affects 871274 src:libffado

On Tue, 31 Jan 2017 09:32:52 +0000 Matthias Klose <doko at debian.org> wrote:
> Package: src:libffado
> Version: 2.3.0-2
> Severity: normal
> Tags: sid buster
> User: debian-gcc at lists.debian.org
> Usertags: ftbfs-gcc-7
> 
> Please keep this issue open in the bug tracker for the package it
> was filed for.  If a fix in another package is required, please
> file a bug for the other package (or clone), and add a block in this
> package. Please keep the issue open until the package can be built in
> a follow-up test rebuild.
> 
> The package fails to build in a test rebuild on at least amd64 with
> gcc-7/g++-7, but succeeds to build with gcc-6/g++-6. The
> severity of this report may be raised before the buster release.
> There is no need to fix this issue in time for the stretch release.
> 
> The full build log can be found at:
> http://people.debian.org/~doko/logs/gcc7-20170126/libffado_2.3.0-2_unstable_gcc7.log
> The last lines of the build log are at the end of this report.
> 
> To build with GCC 7, either set CC=gcc-7 CXX=g++-7 explicitly,
> or install the gcc, g++, gfortran, ... packages from experimental.
> 
>   apt-get -t=experimental install g++ 
> 
> Common build failures are new warnings resulting in build failures with
> -Werror turned on, or new/dropped symbols in Debian symbols files.
> For other C/C++ related build failures see the porting guide at
> http://gcc.gnu.org/gcc-7/porting_to.html
> 
> [...]
> /usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> In file included from src/fireworks/fireworks_device.cpp:30:0:
> src/fireworks/audiofire/audiofire_device.h:37:39: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
>      AudioFire( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
>                                        ^~~~~~~~
> In file included from /usr/include/c++/7/memory:80:0,
>                  from /usr/include/libxml++-2.6/libxml++/parsers/saxparser.h:14,
>                  from /usr/include/libxml++-2.6/libxml++/libxml++.h:53,
>                  from src/libutil/serialize_libxml.h:29,
>                  from src/libutil/serialize.h:32,
>                  from src/libieee1394/configrom.h:32,
>                  from src/devicemanager.h:30,
>                  from src/fireworks/fireworks_device.cpp:25:
> /usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here
>    template<typename> class auto_ptr;
>                             ^~~~~~~~
> src/fireworks/fireworks_device.cpp:52:39: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
>  Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
>                                        ^~~~~~~~
> In file included from /usr/include/c++/7/memory:80:0,
>                  from /usr/include/libxml++-2.6/libxml++/parsers/saxparser.h:14,
>                  from /usr/include/libxml++-2.6/libxml++/libxml++.h:53,
>                  from src/libutil/serialize_libxml.h:29,
>                  from src/libutil/serialize.h:32,
>                  from src/libieee1394/configrom.h:32,

Attached is a patch that will fix the compilation errors.

The errors occur because pointers are being compared against the
character literal '\0' rather than 0. An initial reading of the code
suggests that the intent is to dereference the pointers first. The patch
dereferences the pointers using array syntax.

The code now compiles, the package still fails to build because of
linking problems with libconfig++ [1].

[1] https://bugs.debian.org/871274
-------------- next part --------------
A non-text attachment was scrubbed...
Name: null-terminators.patch
Type: text/x-patch
Size: 1070 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20170904/4a27628c/attachment.bin>


More information about the pkg-multimedia-maintainers mailing list