Boost breaks the compilation - version mismatch?

Asked by Peter Slupski

Hello, just today amidst working on a bluetooth low power board I've decided to check out the latest patches. The new version does not compile, and the source of the problem is not clear to me. I'm using clang++ as my primary compiler, and the absolutely latest packages available from the ArchLinux repo (in terms of OS config). My boost version is 1.58. Last working compilation (which I'm using atm) happened 3 weeks ago. Several errors are reported, some of which state a lack of a conversion, or missing functions. Checked two compilers, gcc and clang, not a go. Is it something obvious that I'm missing?

Thank you kindly, Regards, Pete

[code]
piotro@p1ohost in ~/kicad-source-mirror/build >> :make all
[ 0%] Performing build step for 'boost'
Performing configuration checks

    - 32-bit : no (cached)
    - 64-bit : yes (cached)
    - arm : no (cached)
    - mips1 : no (cached)
    - power : no (cached)
    - sparc : no (cached)
    - x86 : yes (cached)
    - zlib : yes (cached)
    - iconv (libc) : yes (cached)
    - icu : yes (cached)
    - has_icu builds : yes (cached)
    - zlib : yes (cached)

Component configuration:

    - atomic : not building
    - chrono : not building
    - context : building
    - coroutine : not building
    - date_time : building
    - exception : not building
    - filesystem : building
    - graph : not building
    - graph_parallel : not building
    - iostreams : building
    - locale : building
    - log : not building
    - math : not building
    - mpi : not building
    - program_options : building
    - python : not building
    - random : not building
    - regex : building
    - serialization : not building
    - signals : not building
    - system : building
    - test : not building
    - thread : building
    - timer : not building
    - wave : not building

...patience...
...patience...
...found 22960 targets...
...updating 11 targets...
gcc.compile.c++ bin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi/pthread/thread.o
In file included from ./boost/thread/detail/thread.hpp:21:0,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/thread/detail/make_tuple_indices.hpp:35:26: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t...> struct tuple_indices
                          ^
./boost/thread/detail/make_tuple_indices.hpp:41:46: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t Sp, std::size_t ...Indices, std::size_t Ep>
                                              ^
./boost/thread/detail/make_tuple_indices.hpp:47:46: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t Ep, std::size_t ...Indices>
                                              ^
In file included from ./boost/thread/detail/thread.hpp:22:0,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/thread/detail/invoke.hpp:242:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:249:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:249:91: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                           ^
./boost/thread/detail/invoke.hpp:254:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:261:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:261:97: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                 ^
./boost/thread/detail/invoke.hpp:266:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:273:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:273:100: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                    ^
./boost/thread/detail/invoke.hpp:278:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:285:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:285:106: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                          ^
./boost/thread/detail/invoke.hpp:293:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:300:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:300:91: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                           ^
./boost/thread/detail/invoke.hpp:305:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:312:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:312:97: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                 ^
./boost/thread/detail/invoke.hpp:317:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:324:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:324:100: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                    ^
./boost/thread/detail/invoke.hpp:329:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:336:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:336:106: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                          ^
./boost/thread/detail/invoke.hpp:398:42: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class Fp, class ...Args>
                                          ^
./boost/thread/detail/invoke.hpp:405:68: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(BOOST_THREAD_RV_REF(Fp) f, BOOST_THREAD_RV_REF(Args) ...args)
                                                                    ^
./boost/thread/detail/invoke.hpp:409:32: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class ...Args>
                                ^
./boost/thread/detail/invoke.hpp:411:24: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret(*f)(Args... ), BOOST_THREAD_RV_REF(Args) ...args)
                        ^
./boost/thread/detail/invoke.hpp:411:60: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret(*f)(Args... ), BOOST_THREAD_RV_REF(Args) ...args)
                                                            ^
In file included from ./boost/bind/bind.hpp:29:0,
                 from ./boost/bind.hpp:22,
                 from ./boost/thread/detail/thread.hpp:29,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/bind/arg.hpp: In constructor ‘boost::arg<I>::arg(const T&)’:
./boost/bind/arg.hpp:37:22: warning: typedef ‘T_must_be_placeholder’ locally defined but not used [-Wunused-local-typedefs]
         typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
                      ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp: At global scope:
./boost/thread/pthread/once_atomic.hpp:120:37: warning: variadic templates only available with -std=c++11 or -std=gnu++11
   template<typename Function, class ...ArgTypes>
                                     ^
./boost/thread/pthread/once_atomic.hpp:121:108: warning: variadic templates only available with -std=c++11 or -std=gnu++11
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
                                                                                                            ^
In file included from ./boost/tuple/tuple.hpp:33:0,
                 from ./boost/thread/detail/async_func.hpp:37,
                 from ./boost/thread/future.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:19:
./boost/tuple/detail/tuple_basic.hpp: In function ‘typename boost::tuples::access_traits<typename boost::tuples::element<N, boost::tuples::cons<HT, TT> >::type>::const_type boost::tuples::get(const boost::tuples::cons<HT, TT>&)’:
./boost/tuple/detail/tuple_basic.hpp:228:45: warning: typedef ‘cons_element’ locally defined but not used [-Wunused-local-typedefs]
   typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
                                             ^
libs/thread/src/pthread/thread.cpp: In function ‘boost::detail::thread_data_base* boost::detail::get_current_thread_data()’:
libs/thread/src/pthread/thread.cpp:140:88: error: no matching function for call to ‘call_once(boost::once_flag&, void (&)())’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp:121:15: note: candidate: template<class Function, class ... ArgTypes> void boost::call_once(boost::once_flag&, boost::detail::thread_move_t<T>, boost::detail::thread_move_t<Args>...)
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
               ^
./boost/thread/pthread/once_atomic.hpp:121:15: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:140:88: note: mismatched types ‘boost::detail::thread_move_t<T>’ and ‘void (*)()’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from libs/thread/src/pthread/thread.cpp:17:0:
./boost/thread/once.hpp:35:13: note: candidate: template<class Function> void boost::call_once(Function, boost::once_flag&)
 inline void call_once(Function func,once_flag& flag)
             ^
./boost/thread/once.hpp:35:13: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:140:88: note: cannot convert ‘boost::detail::{anonymous}::create_current_thread_tls_key’ (type ‘void()’) to type ‘boost::once_flag&’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
libs/thread/src/pthread/thread.cpp: In function ‘void boost::detail::set_current_thread_data(boost::detail::thread_data_base*)’:
libs/thread/src/pthread/thread.cpp:146:88: error: no matching function for call to ‘call_once(boost::once_flag&, void (&)())’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp:121:15: note: candidate: template<class Function, class ... ArgTypes> void boost::call_once(boost::once_flag&, boost::detail::thread_move_t<T>, boost::detail::thread_move_t<Args>...)
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
               ^
./boost/thread/pthread/once_atomic.hpp:121:15: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:146:88: note: mismatched types ‘boost::detail::thread_move_t<T>’ and ‘void (*)()’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from libs/thread/src/pthread/thread.cpp:17:0:
./boost/thread/once.hpp:35:13: note: candidate: template<class Function> void boost::call_once(Function, boost::once_flag&)
 inline void call_once(Function func,once_flag& flag)
             ^
./boost/thread/once.hpp:35:13: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:146:88: note: cannot convert ‘boost::detail::{anonymous}::create_current_thread_tls_key’ (type ‘void()’) to type ‘boost::once_flag&’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/system/system_error.hpp:14:0,
                 from ./boost/thread/exceptions.hpp:22,
                 from ./boost/thread/pthread/thread_data.hpp:10,
                 from ./boost/thread/thread_only.hpp:17,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/system/error_code.hpp: At global scope:
./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();
                                    ^

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -fPIC -Wextra -Wno-long-long -Wno-variadic-macros -Wunused-function -fPIC -pedantic -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp"

...failed gcc.compile.c++ bin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi/pthread/thread.o...
...skipped <pbin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi>libboost_thread.so.1.54.0 for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi>pthread/thread.o...
...skipped <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_thread.so.1.54.0 for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi>libboost_thread.so.1.54.0...
...skipped <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_thread.so for lack of <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_thread.so.1.54.0...
...skipped <pbin.v2/libs/locale/build/gcc-5.1.0/release/threading-multi>libboost_locale.so.1.54.0 for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/threading-multi>libboost_thread.so.1.54.0...
...skipped <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_locale.so.1.54.0 for lack of <pbin.v2/libs/locale/build/gcc-5.1.0/release/threading-multi>libboost_locale.so.1.54.0...
...skipped <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_locale.so for lack of <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_locale.so.1.54.0...
gcc.compile.c++ bin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi/pthread/thread.o
In file included from ./boost/thread/detail/thread.hpp:21:0,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/thread/detail/make_tuple_indices.hpp:35:26: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t...> struct tuple_indices
                          ^
./boost/thread/detail/make_tuple_indices.hpp:41:46: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t Sp, std::size_t ...Indices, std::size_t Ep>
                                              ^
./boost/thread/detail/make_tuple_indices.hpp:47:46: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <std::size_t Ep, std::size_t ...Indices>
                                              ^
In file included from ./boost/thread/detail/thread.hpp:22:0,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/thread/detail/invoke.hpp:242:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:249:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:249:91: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                           ^
./boost/thread/detail/invoke.hpp:254:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:261:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:261:97: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                 ^
./boost/thread/detail/invoke.hpp:266:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:273:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:273:100: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                    ^
./boost/thread/detail/invoke.hpp:278:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:285:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:285:106: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                          ^
./boost/thread/detail/invoke.hpp:293:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:300:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:300:91: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...), BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                           ^
./boost/thread/detail/invoke.hpp:305:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:312:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:312:97: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                 ^
./boost/thread/detail/invoke.hpp:317:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:324:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:324:100: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                    ^
./boost/thread/detail/invoke.hpp:329:51: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class A, class A0, class ...Args>
                                                   ^
./boost/thread/detail/invoke.hpp:336:28: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                            ^
./boost/thread/detail/invoke.hpp:336:106: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret (A::*f)(Args...) const volatile, BOOST_THREAD_RV_REF(A0) a0, BOOST_THREAD_RV_REF(Args) ...args)
                                                                                                          ^
./boost/thread/detail/invoke.hpp:398:42: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class Fp, class ...Args>
                                          ^
./boost/thread/detail/invoke.hpp:405:68: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(BOOST_THREAD_RV_REF(Fp) f, BOOST_THREAD_RV_REF(Args) ...args)
                                                                    ^
./boost/thread/detail/invoke.hpp:409:32: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     template <class Ret, class ...Args>
                                ^
./boost/thread/detail/invoke.hpp:411:24: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret(*f)(Args... ), BOOST_THREAD_RV_REF(Args) ...args)
                        ^
./boost/thread/detail/invoke.hpp:411:60: warning: variadic templates only available with -std=c++11 or -std=gnu++11
     invoke(Ret(*f)(Args... ), BOOST_THREAD_RV_REF(Args) ...args)
                                                            ^
In file included from ./boost/bind/bind.hpp:29:0,
                 from ./boost/bind.hpp:22,
                 from ./boost/thread/detail/thread.hpp:29,
                 from ./boost/thread/thread_only.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/bind/arg.hpp: In constructor ‘boost::arg<I>::arg(const T&)’:
./boost/bind/arg.hpp:37:22: warning: typedef ‘T_must_be_placeholder’ locally defined but not used [-Wunused-local-typedefs]
         typedef char T_must_be_placeholder[ I == is_placeholder<T>::value? 1: -1 ];
                      ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp: At global scope:
./boost/thread/pthread/once_atomic.hpp:120:37: warning: variadic templates only available with -std=c++11 or -std=gnu++11
   template<typename Function, class ...ArgTypes>
                                     ^
./boost/thread/pthread/once_atomic.hpp:121:108: warning: variadic templates only available with -std=c++11 or -std=gnu++11
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
                                                                                                            ^
In file included from ./boost/tuple/tuple.hpp:33:0,
                 from ./boost/thread/detail/async_func.hpp:37,
                 from ./boost/thread/future.hpp:22,
                 from libs/thread/src/pthread/thread.cpp:19:
./boost/tuple/detail/tuple_basic.hpp: In function ‘typename boost::tuples::access_traits<typename boost::tuples::element<N, boost::tuples::cons<HT, TT> >::type>::const_type boost::tuples::get(const boost::tuples::cons<HT, TT>&)’:
./boost/tuple/detail/tuple_basic.hpp:228:45: warning: typedef ‘cons_element’ locally defined but not used [-Wunused-local-typedefs]
   typedef BOOST_DEDUCED_TYPENAME impl::type cons_element;
                                             ^
libs/thread/src/pthread/thread.cpp: In function ‘boost::detail::thread_data_base* boost::detail::get_current_thread_data()’:
libs/thread/src/pthread/thread.cpp:140:88: error: no matching function for call to ‘call_once(boost::once_flag&, void (&)())’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp:121:15: note: candidate: template<class Function, class ... ArgTypes> void boost::call_once(boost::once_flag&, boost::detail::thread_move_t<T>, boost::detail::thread_move_t<Args>...)
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
               ^
./boost/thread/pthread/once_atomic.hpp:121:15: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:140:88: note: mismatched types ‘boost::detail::thread_move_t<T>’ and ‘void (*)()’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from libs/thread/src/pthread/thread.cpp:17:0:
./boost/thread/once.hpp:35:13: note: candidate: template<class Function> void boost::call_once(Function, boost::once_flag&)
 inline void call_once(Function func,once_flag& flag)
             ^
./boost/thread/once.hpp:35:13: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:140:88: note: cannot convert ‘boost::detail::{anonymous}::create_current_thread_tls_key’ (type ‘void()’) to type ‘boost::once_flag&’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
libs/thread/src/pthread/thread.cpp: In function ‘void boost::detail::set_current_thread_data(boost::detail::thread_data_base*)’:
libs/thread/src/pthread/thread.cpp:146:88: error: no matching function for call to ‘call_once(boost::once_flag&, void (&)())’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/thread/once.hpp:20:0,
                 from libs/thread/src/pthread/thread.cpp:17:
./boost/thread/pthread/once_atomic.hpp:121:15: note: candidate: template<class Function, class ... ArgTypes> void boost::call_once(boost::once_flag&, boost::detail::thread_move_t<T>, boost::detail::thread_move_t<Args>...)
   inline void call_once(once_flag& flag, BOOST_THREAD_RV_REF(Function) f, BOOST_THREAD_RV_REF(ArgTypes)... args)
               ^
./boost/thread/pthread/once_atomic.hpp:121:15: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:146:88: note: mismatched types ‘boost::detail::thread_move_t<T>’ and ‘void (*)()’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from libs/thread/src/pthread/thread.cpp:17:0:
./boost/thread/once.hpp:35:13: note: candidate: template<class Function> void boost::call_once(Function, boost::once_flag&)
 inline void call_once(Function func,once_flag& flag)
             ^
./boost/thread/once.hpp:35:13: note: template argument deduction/substitution failed:
libs/thread/src/pthread/thread.cpp:146:88: note: cannot convert ‘boost::detail::{anonymous}::create_current_thread_tls_key’ (type ‘void()’) to type ‘boost::once_flag&’
             boost::call_once(current_thread_tls_init_flag,create_current_thread_tls_key);
                                                                                        ^
In file included from ./boost/system/system_error.hpp:14:0,
                 from ./boost/thread/exceptions.hpp:22,
                 from ./boost/thread/pthread/thread_data.hpp:10,
                 from ./boost/thread/thread_only.hpp:17,
                 from libs/thread/src/pthread/thread.cpp:11:
./boost/system/error_code.hpp: At global scope:
./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();
                                    ^

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -Wextra -Wno-long-long -Wno-variadic-macros -Wunused-function -fPIC -pedantic -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp"

...failed gcc.compile.c++ bin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi/pthread/thread.o...
...skipped <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a(clean) for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>pthread/thread.o...
...skipped <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>pthread/thread.o...
...skipped <p/home/piotro/kicad-source-mirror/boost_root/lib>libboost_thread.a for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a...
...failed updating 2 targets...
...skipped 9 targets...
CMakeFiles/boost.dir/build.make:138: polecenia dla obiektu '../.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-build' nie powiodły się
make[2]: *** [../.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-build] Błąd 1
CMakeFiles/Makefile2:60: polecenia dla obiektu 'CMakeFiles/boost.dir/all' nie powiodły się
make[1]: *** [CMakeFiles/boost.dir/all] Błąd 2
Makefile:136: polecenia dla obiektu 'all' nie powiodły się
make: *** [all] Błąd 2
piotro@p1ohost in ~/kicad-source-mirror/build >> :
[/code]

Question information

Language:
English Edit question
Status:
Solved
For:
KiCad Edit question
Assignee:
No assignee Edit question
Solved by:
Wayne Stambaugh
Solved:
Last query:
Last reply:
Revision history for this message
Francesco Not (j-0ontact-k) said :
#1

Same behavior for me.

I also use an up-to-date Arch Linux 64-bit distro.

This is the tail of the compliation:

"g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pedantic -pthread -Wextra -Wno-long-long -Wno-variadic-macros -Wunused-function -fPIC -pedantic -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_STATIC_LINK=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp"

...failed gcc.compile.c++ bin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi/pthread/thread.o...
...skipped <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a(clean) for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>pthread/thread.o...
...skipped <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>pthread/thread.o...
...skipped <p/home/inverter/sources/kicad/kicad_sources/kicad.bzr/boost_root/lib>libboost_thread.a for lack of <pbin.v2/libs/thread/build/gcc-5.1.0/release/link-static/threading-multi>libboost_thread.a...
...failed updating 2 targets...
...skipped 9 targets...
CMakeFiles/boost.dir/build.make:138: set di istruzioni per l'obiettivo "../.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-build" non riuscito
make[2]: *** [../.downloads-by-cmake/boost_1_54_0/src/boost-stamp/boost-build] Errore 1
CMakeFiles/Makefile2:60: set di istruzioni per l'obiettivo "CMakeFiles/boost.dir/all" non riuscito
make[1]: *** [CMakeFiles/boost.dir/all] Errore 2
Makefile:136: set di istruzioni per l'obiettivo "all" non riuscito
make: *** [all] Errore 2

Some ideas?

Revision history for this message
Best Wayne Stambaugh (stambaughw) said :
#3

KiCad is built with a custom patched version of Boost 1.54 by default unless you specify -DKICAD_SKIP_BOOST=ON when you run CMake to configure the kicad build. I noticed you are using GCC 5.1. It's likely that GCC 5.1 now throws an error were previous versions used to just generate a warning. Boost 1.54 is getting fairly old so it wasn't tested using the newer versions of GCC. Try build kicad with your installed Boost. I'm using Boost 1.58 on Debian Testing and on windows msys2/ming64 without any issues other than the know boost polygon bug which still hasn't been fixed.

Revision history for this message
Peter Slupski (pslupski) said :
#4

Thanks Wayne Stambaugh, that solved my question.

Revision history for this message
Francesco Not (j-0ontact-k) said :
#5

Dear Wayne,
that solved the issue also from my side.

Thank you very much.

Revision history for this message
Bruno Duyé (brunetton-gmail) said :
#6

Solved my issue too.
Thanks