Package: libboost1.61-dev Version: 1.61.0+dfsg-2.1 Severity: important Dear Maintainer,
here is the simplest failing example I could create: #include <boost/optional/optional_fwd.hpp> #include <boost/optional.hpp> int main() { return ; } Compile like this: clang++ -std=c++11 test.c # OR g++ -std=c++11 test.c Expected behavior: Compiles without error. Actual behavior: Does not compile. First error from clang++: In file included from test.cpp:2: In file included from /usr/include/boost/optional.hpp:15: In file included from /usr/include/boost/optional/optional.hpp:35: In file included from /usr/include/boost/type_traits/type_with_alignment.hpp:12: In file included from /usr/include/boost/type_traits/is_pod.hpp:14: In file included from /usr/include/boost/type_traits/is_scalar.hpp:12: In file included from /usr/include/boost/type_traits/is_arithmetic.hpp:12: /usr/include/boost/type_traits/is_integral.hpp:75:38: error: no member named 'int128_type' in namespace 'boost' template<> struct is_integral<boost::int128_type> : public true_type{}; ~~~~~~~^ Apparently, the OpenBSD people have/had the same issue [1], which goes like this: (summary of link) boost does not like mixing different compilers at build and run time. Building boost with some gcc that doesn't support __int128 results in a boost/config/user.hpp missing the "BOOST_HAS_INT128" define. Then, boost/config/compiler/*.hpp re-enables it, but boost/config/suffix.hpp doesn't catch wind of this. Quick and dirty manual workaround: echo '#undef __SIZEOF_INT128__' | sudo tee -a /usr/include/boost/config/user.hpp to enable it permanently. I mark this as 'important', because this disrupts compilation for anyone using forward-declarations, anywhere. Feel free to downgrade this report if it doesn't. Cheers, Ben Wiederhake [1] http://openbsd-archive.7691.n7.nabble.com/devel-boost-fix-error-no-member- named-int128-type-in-namespace-boost-td297541.html -- System Information: Debian Release: stretch/sid APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.6.0-1-amd64 (SMP w/4 CPU cores) Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages libboost1.61-dev depends on: ii libstdc++-5-dev [libstdc++-dev] 5.4.1-1 ii libstdc++-6-dev [libstdc++-dev] 6.1.1-11 libboost1.61-dev recommends no packages. Versions of packages libboost1.61-dev suggests: ii libboost-atomic1.61-dev 1.61.0+dfsg-2.1 ii libboost-chrono1.61-dev 1.61.0+dfsg-2.1 pn libboost-context1.61-dev <none> pn libboost-coroutine1.61-dev <none> ii libboost-date-time1.61-dev 1.61.0+dfsg-2.1 pn libboost-exception1.61-dev <none> ii libboost-filesystem1.61-dev 1.61.0+dfsg-2.1 pn libboost-graph-parallel1.61-dev <none> pn libboost-graph1.61-dev <none> ii libboost-iostreams1.61-dev 1.61.0+dfsg-2.1 pn libboost-locale1.61-dev <none> pn libboost-log1.61-dev <none> pn libboost-math1.61-dev <none> pn libboost-mpi-python1.61-dev <none> pn libboost-mpi1.61-dev <none> pn libboost-program-options1.61-dev <none> pn libboost-python1.61-dev <none> pn libboost-random1.61-dev <none> ii libboost-regex1.61-dev 1.61.0+dfsg-2.1 ii libboost-serialization1.61-dev 1.61.0+dfsg-2.1 pn libboost-signals1.61-dev <none> ii libboost-system1.61-dev 1.61.0+dfsg-2.1 pn libboost-test1.61-dev <none> ii libboost-thread1.61-dev 1.61.0+dfsg-2.1 pn libboost-timer1.61-dev <none> pn libboost-wave1.61-dev <none> pn libboost1.61-doc <none> pn libboost1.61-tools-dev <none> pn libmpfrc++-dev <none> pn libntl-dev <none> -- no debconf information