Package: thin-provisioning-tools
Version: 0.5.6-1
Severity: important
User: [email protected]
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