[pkg-boost-devel] Bug#803392: Bug#803392: boost1.55: still FTBS with g++ 5 on sid and testing

Dimitri John Ledkov xnox at debian.org
Thu Oct 29 16:47:03 UTC 2015


Hello,

This is essentially a won't fix. compiling boost with gcc5, which uses
C++11 ABI, changes boost ABI and breaks most reverse dependencies.
The boost maintainer decided against backporting fixes to older
boost1.55, and rename the sonames throughout as that would be
non-standard.
Boost 1.58 and later is the default in testing and unstable, and it
uses gcc5 and thus the C++11 ABI.

Thus your options are to use:
(a) gcc4.9 or lower, C++98 ABI, and debian's boost1.55 or lower.
(b) gcc5 or better, C++11 ABI, and debian's boost1.57 or better.

And no other combinations are supported on debian. Boost1.55 has been
removed from testing, and is still stuck in unstable which I am
planning to take actions to get it removed from there as well.

Regards,

Dimitri.

On 29 October 2015 at 15:34, Christophe Trophime
<christophe.trophime at lncmi.cnrs.fr> wrote:
> Source: boost1.55
> Version: 1.55.0+dfsg-4
> Severity: important
>
> Dear Maintainer,
>
> I've tried to backport latest boost1.55 to stretch (using pdebuild).
> I ran into some compiling errors:
>
>     "g++"  -ftemplate-depth-300 -g -O2 -fstack-protector-strong -Wformat
> -Werror=format-security -Wno-unused-local-typedefs -O3 -finline-functions -Wno-
> inline -Wall -g -D_FORTIFY_SOURCE=2 -g0 -DBOOST_ALL_NO_LIB=1
> -DBOOST_DETAIL_CONTAINER_FWD -DBOOST_FILESYSTEM_NO_DEPRECATED
> -DBOOST_FILESYSTEM_STATIC_LINK=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DNDEBUG
> -I"../.." -c -o "../../bin.v2/tools/quickbook/src/gcc-5.2.1/release/debug-
> symbols-on/link-static/files.o" "src/files.cpp"
>
> In file included from ../../boost/functional/hash/hash.hpp:540:0,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/functional/hash/extensions.hpp:54:33: error: 'template<class T,
> class A> std::size_t boost::hash_value' conflicts with a previous declaration
>      std::size_t hash_value(std::list<T, A> const& v);
>                                  ^
> ../../boost/functional/hash/extensions.hpp:52:17: note: previous declaration
> 'namespace boost { }::hash_value'
>      std::size_t hash_value(std::vector<T, A> const&);
>                  ^
> ../../boost/functional/hash/extensions.hpp:54:28: error: reference to 'list' is
> ambiguous
>      std::size_t hash_value(std::list<T, A> const& v);
>                             ^
> In file included from ../../boost/functional/hash/extensions.hpp:17:0,
>                  from ../../boost/functional/hash/hash.hpp:540,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/detail/container_fwd.hpp:139:47: note: candidates are:
> template<class T, class Allocator> class std::list
>      template <class T, class Allocator> class list;
>                                                ^
> In file included from /usr/include/c++/5/list:63:0,
>                  from ../../boost/filesystem/path_traits.hpp:27,
>                  from ../../boost/filesystem/path.hpp:25,
>                  from src/files.hpp:15,
>                  from src/files.cpp:10:
> /usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class
> _Tp, class _Alloc> class std::__cxx11::list
>      class list : protected _List_base<_Tp, _Alloc>
>            ^
> In file included from ../../boost/functional/hash/hash.hpp:540:0,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/functional/hash/extensions.hpp:54:39: error: expected primary-
> expression before ',' token
>      std::size_t hash_value(std::list<T, A> const& v);
>                                        ^
> ../../boost/functional/hash/extensions.hpp:54:42: error: expected primary-
> expression before '>' token
>      std::size_t hash_value(std::list<T, A> const& v);
>                                           ^
> ../../boost/functional/hash/extensions.hpp:54:44: error: expected primary-
> expression before 'const'
>      std::size_t hash_value(std::list<T, A> const& v);
>                                             ^
> ../../boost/functional/hash/extensions.hpp:54:52: error: expression list
> treated as compound expression in initializer [-fpermissive]
>      std::size_t hash_value(std::list<T, A> const& v);
>                                                     ^
> ../../boost/functional/hash/extensions.hpp:54:17: warning: variable templates
> only available with -std=c++14 or -std=gnu++14
>      std::size_t hash_value(std::list<T, A> const& v);
>                  ^
> ../../boost/functional/hash/extensions.hpp:85:33: error: 'template<class T,
> class A> std::size_t boost::hash_value' conflicts with a previous declaration
>      std::size_t hash_value(std::list<T, A> const& v)
>                                  ^
> ../../boost/functional/hash/extensions.hpp:67:17: note: previous declaration
> 'namespace boost { }::hash_value'
>      std::size_t hash_value(std::complex<T> const&);
>                  ^
> ../../boost/functional/hash/extensions.hpp:85:28: error: reference to 'list' is
> ambiguous
>      std::size_t hash_value(std::list<T, A> const& v)
>                             ^
> In file included from ../../boost/functional/hash/extensions.hpp:17:0,
>                  from ../../boost/functional/hash/hash.hpp:540,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/detail/container_fwd.hpp:139:47: note: candidates are:
> template<class T, class Allocator> class std::list
>      template <class T, class Allocator> class list;
>                                                ^
> In file included from /usr/include/c++/5/list:63:0,
>                  from ../../boost/filesystem/path_traits.hpp:27,
>                  from ../../boost/filesystem/path.hpp:25,
>                  from src/files.hpp:15,
>                  from src/files.cpp:10:
> /usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class
> _Tp, class _Alloc> class std::__cxx11::list
>      class list : protected _List_base<_Tp, _Alloc>
>            ^
> In file included from ../../boost/functional/hash/hash.hpp:540:0,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/functional/hash/extensions.hpp:85:39: error: expected primary-
> expression before ',' token
>      std::size_t hash_value(std::list<T, A> const& v)
>                                        ^
> ../../boost/functional/hash/extensions.hpp:85:42: error: expected primary-
> expression before '>' token
>      std::size_t hash_value(std::list<T, A> const& v)
>                                           ^
> ../../boost/functional/hash/extensions.hpp:85:44: error: expected primary-
> expression before 'const'
>      std::size_t hash_value(std::list<T, A> const& v)
>                                             ^
> ../../boost/functional/hash/extensions.hpp:85:52: error: expression list
> treated as compound expression in initializer [-fpermissive]
>      std::size_t hash_value(std::list<T, A> const& v)
>                                                     ^
> ../../boost/functional/hash/extensions.hpp:85:17: warning: variable templates
> only available with -std=c++14 or -std=gnu++14
>      std::size_t hash_value(std::list<T, A> const& v)
>                  ^
> ../../boost/functional/hash/extensions.hpp:86:5: error: expected ';' before '{'
> token
>      {
>      ^
> src/files.cpp:375:9: error: reference to 'list' is ambiguous
>          std::list<mapped_file> mapped_files;
>          ^
> In file included from ../../boost/functional/hash/extensions.hpp:17:0,
>                  from ../../boost/functional/hash/hash.hpp:540,
>                  from ../../boost/functional/hash.hpp:6,
>                  from ../../boost/unordered/unordered_map.hpp:20,
>                  from ../../boost/unordered_map.hpp:16,
>                  from src/files.cpp:12:
> ../../boost/detail/container_fwd.hpp:139:47: note: candidates are:
> template<class T, class Allocator> class std::list
>      template <class T, class Allocator> class list;
>                                                ^
> In file included from /usr/include/c++/5/list:63:0,
>                  from ../../boost/filesystem/path_traits.hpp:27,
>                  from ../../boost/filesystem/path.hpp:25,
>                  from src/files.hpp:15,
>                  from src/files.cpp:10:
> /usr/include/c++/5/bits/stl_list.h:507:11: note:                 template<class
> _Tp, class _Alloc> class std::__cxx11::list
>      class list : protected _List_base<_Tp, _Alloc>
>            ^
> In file included from ../../boost/filesystem/path_traits.hpp:23:0,
>                  from ../../boost/filesystem/path.hpp:25,
>                  from src/files.hpp:15,
>                  from src/files.cpp:10:
> ../../boost/system/error_code.hpp:222:36: warning:
> 'boost::system::posix_category' defined but not used [-Wunused-variable]
>      static const error_category &  posix_category = generic_category();
>                                     ^
> ../../boost/system/error_code.hpp:223:36: warning: 'boost::system::errno_ecat'
> defined but not used [-Wunused-variable]
>      static const error_category &  errno_ecat     = generic_category();
>                                     ^
> ../../boost/system/error_code.hpp:224:36: warning: 'boost::system::native_ecat'
> defined but not used [-Wunused-variable]
>      static const error_category &  native_ecat    = system_category();
>                                     ^
> ...failed gcc.compile.c++ ../../bin.v2/tools/quickbook/src/gcc-5.2.1/release
> /debug-symbols-on/link-static/files.o...
> gcc.compile.c++ ../../bin.v2/tools/quickbook/src/gcc-5.2.1/release/debug-
> symbols-on/link-static/input_path.o
>
> I got the same error on sid rebuilding the package with pdebuild.
>
> Best.
> C
>
>
>
> -- System Information:
> Debian Release: stretch/sid
>   APT prefers testing
>   APT policy: (1100, 'testing')
> Architecture: amd64 (x86_64)
> Foreign Architectures: i386
>
> Kernel: Linux 3.16.0-4-amd64 (SMP w/24 CPU cores)
> Locale: LANG=en_GB.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=locale: Cannot set LC_CTYPE to default locale: No such file or directory
> locale: Cannot set LC_MESSAGES to default locale: No such file or directory
> locale: Cannot set LC_ALL to default locale: No such file or directory
> ANSI_X3.4-1968)
> Shell: /bin/sh linked to /bin/dash
> Init: systemd (via /run/systemd/system)
>
> _______________________________________________
> pkg-boost-devel mailing list
> pkg-boost-devel at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-boost-devel



-- 
Regards,

Dimitri.



More information about the pkg-boost-devel mailing list