Skip to content

Pintool compilation error #1

Description

@plaublin

Hello

The compilation of xfdetector fails at the pintool step on Ubuntu 20.04 LTS with g++ 9.3.0. How could I fix this error?

g++ -Wall -Werror -Wno-unknown-pragmas -D__PIN__=1 -DPIN_CRT=1 -fno-stack-protector -fno-exceptions -funwind-tables -fasynchronous-unwind-tables -fno-rtti -DTARGET_IA32E -DHOST_IA32E -fPIC -DTARGET_LINUX -fabi-version=2  -I/home/pl/xfdetector/pin-3.10/source/include/pin -I/home/pl/xfdetector/pin-3.10/source/include/pin/gen -isystem /home/pl/xfdetector/pin-3.10/extras/stlport/include -isystem /home/pl/xfdetector/pin-3.10/extras/libstdc++/include -isystem /home/pl/xfdetector/pin-3.10/extras/crt/include -isystem /home/pl/xfdetector/pin-3.10/extras/crt/include/arch-x86_64 -isystem /home/pl/xfdetector/pin-3.10/extras/crt/include/kernel/uapi -isystem /home/pl/xfdetector/pin-3.10/extras/crt/include/kernel/uapi/asm-x86 -I/home/pl/xfdetector/pin-3.10/extras/components/include -I/home/pl/xfdetector/pin-3.10/extras/xed-intel64/include/xed -I/home/pl/xfdetector/pin-3.10/source/tools/Utils -I/home/pl/xfdetector/pin-3.10/source/tools/InstLib -O3 -fomit-frame-pointer -fno-strict-aliasing   -c -o obj-intel64/pintool.o pintool.cpp
In file included from /usr/include/boost/type_traits/has_plus.hpp:48,
                 from /usr/include/boost/next_prior.hpp:21,
                 from /usr/include/boost/icl/interval_base_set.hpp:23,
                 from /usr/include/boost/icl/interval_set.hpp:14,
                 from pintool.cpp:10:
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:54:107: error: ‘declval’ is not a member of ‘std’
   54 | t BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp)<T, U, Ret, typename boost::make_void<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP std::declval<typename add_reference<U>::type>())>::type>
      |                                                                                                ^~~~~~~

/usr/include/boost/type_traits/detail/has_binary_operator.hpp:42:1: note: ‘std::declval’ is defined in header ‘<utility>’; did you forget to ‘#include <utility>’?
   41 | #include <utility>
  +++ |+#include <utility>
   42 | 
/usr/include/boost/type_traits/detail/has_binary_operator.hpp:54:107: error: ‘declval’ is not a member of ‘std’
   54 | t BOOST_JOIN(BOOST_TT_TRAIT_NAME, _ret_imp)<T, U, Ret, typename boost::make_void<decltype(std::declval<typename add_reference<T>::type>() BOOST_TT_TRAIT_OP std::declval<typename add_reference<U>::type>())>::type>
      |                                                                                                ^~~~~~~```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions