Bug#811652: FTBFS with GCC 6: cannot convert x to y

Martin Michlmayr tbm at hpe.com
Wed Jan 20 00:38:58 UTC 2016


Package: thin-provisioning-tools
Version: 0.5.6-1
Severity: important
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-6 gcc-6-cannot-convert

This package fails to build with GCC 6.  GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.

Note that only the first error is reported; there might be more.  You
can find a snapshot of GCC 6 in experimental.  To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.

> sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
> g++ -c -I. -I. -I./thin-provisioning -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -DSTRERROR_R_CHAR_P -o thin-provisioning/metadata_dumper.o thin-provisioning/metadata_dumper.cc
> In file included from ./persistent-data/block.h:154:0,
>                  from ./thin-provisioning/metadata.h:24,
>                  from ./thin-provisioning/metadata_dumper.h:23,
>                  from thin-provisioning/metadata_dumper.cc:20:
> ./persistent-data/block.tcc: In instantiation of 'persistent_data::block_manager<BlockSize>::write_ref::~write_ref() [with unsigned int BlockSize = 4096u]':
> /usr/include/c++/6/bits/stl_pair.h:128:12:   required from here
> ./persistent-data/block.tcc:193:68: warning: throw will always call terminate() [-Wterminate]
>      throw std::runtime_error("write_ref ref_count going below zero");
>                                                                     ^
> 
> ./persistent-data/block.tcc:193:68: note: in C++11 destructors default to noexcept
> g++ -c -I. -I. -I./thin-provisioning -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -DSTRERROR_R_CHAR_P -o thin-provisioning/restore_emitter.o thin-provisioning/restore_emitter.cc
> thin-provisioning/restore_emitter.cc: In member function 'bool {anonymous}::restorer::device_exists(thin_provisioning::thin_dev_t) const':
> thin-provisioning/restore_emitter.cc:144:11: error: cannot convert 'persistent_data::btree<1u, thin_provisioning::device_tree_detail::device_details_traits>::maybe_value {aka boost::optional<thin_provisioning::device_tree_detail::device_details>}' to 'bool' in return
>     return v;
>            ^
> 
> In file included from ./persistent-data/block.h:154:0,
>                  from ./thin-provisioning/metadata.h:24,
>                  from ./thin-provisioning/restore_emitter.h:23,
>                  from thin-provisioning/restore_emitter.cc:19:
> ./persistent-data/block.tcc: In instantiation of 'persistent_data::block_manager<BlockSize>::write_ref::~write_ref() [with unsigned int BlockSize = 4096u]':
> /usr/include/c++/6/bits/stl_pair.h:128:12:   required from here
> ./persistent-data/block.tcc:193:68: warning: throw will always call terminate() [-Wterminate]
>      throw std::runtime_error("write_ref ref_count going below zero");
>                                                                     ^
> 
> ./persistent-data/block.tcc:193:68: note: in C++11 destructors default to noexcept
> Makefile:128: recipe for target 'thin-provisioning/restore_emitter.o' failed

-- 
Martin Michlmayr
Linux for HPE Helion, Hewlett Packard Enterprise



More information about the pkg-lvm-maintainers mailing list