Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not build with bcc 0.15 #38

Closed
Wonko7 opened this issue Jul 21, 2020 · 2 comments
Closed

Does not build with bcc 0.15 #38

Wonko7 opened this issue Jul 21, 2020 · 2 comments
Labels
BCC related to BCC bug Something isn't working Build related to building procmon Distro a request to support a specific distro of Linux

Comments

@Wonko7
Copy link

Wonko7 commented Jul 21, 2020

Ebuild for gentoo should look something like this: https://github.com/Wonko7/w7-overlay/blob/procmon/sys-process/procmon/procmon-1.0.ebuild
This is how it fails, what am I missing?

[  6%] Built target sqlite3-static
[ 18%] Built target bpf-static
[ 25%] Built target clang_frontend
[ 31%] Built target bcc-loader-static
[ 34%] Built target api-static
[ 40%] Built target usdt-static
[ 53%] Built target b_frontend
[ 75%] Built target bcc-static
[ 78%] Built target common-static
[ 81%] Building CXX object src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:16,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual bool MockStorageEngine::Initialize(const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:25:67: warning: no return statement in function returning non-void [-Wreturn-type]
   25 |     bool Initialize(const std::vector<Event>& syscalls) override {};
      |                                                                   ^
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByPidInTimespan(pid_t, double, double, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:30:119: warning: no return statement in function returning non-void [-Wreturn-type]
   30 |         pid_t pid, double start_time = 0.0, double end_time = 0.0, const std::vector<Event>& syscalls = {}) override {};
      |                                                                                                                       ^
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:16,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByPids(std::vector<int>, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:32:128: warning: no return statement in function returning non-void [-Wreturn-type]
   32 |     virtual std::vector<MockTelemetry> QueryByPids(std::vector<pid_t> pids, const std::vector<Event>& syscalls = {}) override {};
      |                                                                                                                                ^
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByPidsInTimespan(std::vector<int>, double, double, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:35:133: warning: no return statement in function returning non-void [-Wreturn-type]
   35 |         std::vector<pid_t> pids, double start_time = 0.0, double end_time = 0.0, const std::vector<Event>& syscalls = {}) override {};
      |                                                                                                                                     ^
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByEventsinPage(std::vector<int>, uint, uint, ScreenConfiguration::sort, bool, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:38:167: warning: no return statement in function returning non-void [-Wreturn-type]
   38 |         std::vector<pid_t> pids, uint pageNumber, uint eventsPerPage, ScreenConfiguration::sort orderBy, bool asc, const std::vector<Event>& syscalls = {}) override {};
      |                                                                                                                                                                       ^
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByResultCodeInTimespan(int, double, double, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:41:124: warning: no return statement in function returning non-void [-Wreturn-type]
   41 |         int resultCode, double start_time = 0.0, double end_time = 0.0, const std::vector<Event> &syscalls = {}) override {};
      |                                                                                                                            ^
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h: In member function ‘virtual std::vector<ITelemetry> MockStorageEngine::QueryByFilteredEventsinPage(std::string, std::vector<int>, uint, uint, ScreenConfiguration::sort, bool, const std::vector<Event>&)’:
/home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:44:187: warning: no return statement in function returning non-void [-Wreturn-type]
   44 |         std::string filter, std::vector<pid_t> pids, uint pageNumber, uint eventsPerPage, ScreenConfiguration::sort orderBy, bool asc, const std::vector<Event>& syscalls = {}) override {};
      |                                                                                                                                                                                           ^
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/../display/screen_configuration.h:9,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:16,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:28:5: error: expected identifier before ‘(’ token
   28 |     OK = 0,
      |     ^~
/usr/include/bcc/bcc_exception.h:28:5: error: expected ‘}’ before ‘(’ token
In file included from /usr/include/bcc/BPFTable.h:29,
                 from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h:26:19: note: to match this ‘{’
   26 |   enum class Code {
      |                   ^
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/../display/screen_configuration.h:9,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:16,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h:28:5: error: expected unqualified-id before numeric constant
   28 |     OK = 0,
      |     ^~
/usr/include/bcc/bcc_exception.h:28:5: error: expected ‘)’ before numeric constant
/usr/include/bcc/bcc_exception.h:38:22: error: expected unqualified-id before numeric constant
   38 |   static StatusTuple OK() {
      |                      ^~
/usr/include/bcc/bcc_exception.h:38:22: error: expected ‘)’ before numeric constant
In file included from /usr/include/bcc/BPFTable.h:29,
                 from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h: In function ‘int ebpf::StatusTuple(int)’:
/usr/include/bcc/bcc_exception.h:42:26: error: only constructors take member initializers
   42 |   StatusTuple(int ret) : ret_(ret) {}
      |                          ^~~~
/usr/include/bcc/bcc_exception.h: In function ‘int ebpf::StatusTuple(int, const char*)’:
/usr/include/bcc/bcc_exception.h:44:43: error: only constructors take member initializers
   44 |   StatusTuple(int ret, const char *msg) : ret_(ret), msg_(msg) {}
      |                                           ^~~~
/usr/include/bcc/bcc_exception.h: In function ‘int ebpf::StatusTuple(int, const string&)’:
/usr/include/bcc/bcc_exception.h:46:50: error: only constructors take member initializers
   46 |   StatusTuple(int ret, const std::string &msg) : ret_(ret), msg_(msg) {}
      |                                                  ^~~~
/usr/include/bcc/bcc_exception.h: In function ‘int ebpf::StatusTuple(int, const char*, Args ...)’:
/usr/include/bcc/bcc_exception.h:49:57: error: only constructors take member initializers
   49 |   StatusTuple(int ret, const char *fmt, Args... args) : ret_(ret) {
      |                                                         ^~~~
/usr/include/bcc/bcc_exception.h:52:5: error: ‘msg_’ was not declared in this scope
   52 |     msg_ = std::string(buf);
      |     ^~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:55:14: error: expected constructor, destructor, or type conversion before ‘(’ token
   55 |   StatusTuple(Code code, const std::string &msg) : use_enum_code_(true), code_(code), msg_(msg) {}
      |              ^
/usr/include/bcc/bcc_exception.h: In function ‘void ebpf::append_msg(const string&)’:
/usr/include/bcc/bcc_exception.h:58:5: error: ‘msg_’ was not declared in this scope; did you mean ‘msg’?
   58 |     msg_ += msg;
      |     ^~~~
      |     msg
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:61:13: error: non-member function ‘bool ebpf::ok()’ cannot have cv-qualifier
   61 |   bool ok() const {
      |             ^~~~~
/usr/include/bcc/bcc_exception.h: In function ‘bool ebpf::ok()’:
/usr/include/bcc/bcc_exception.h:62:9: error: ‘use_enum_code_’ was not declared in this scope
   62 |     if (use_enum_code_) {
      |         ^~~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:63:14: error: ‘code_’ was not declared in this scope; did you mean ‘mode_t’?
   63 |       return code_ == Code::OK;
      |              ^~~~~
      |              mode_t
/usr/include/bcc/bcc_exception.h:63:23: error: ‘Code’ has not been declared
   63 |       return code_ == Code::OK;
      |                       ^~~~
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/../display/screen_configuration.h:9,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../storage/mock_storage_engine.h:12,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:16,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h:63:29: error: expected unqualified-id before ‘(’ token
   63 |       return code_ == Code::OK;
      |                             ^~
In file included from /usr/include/bcc/BPFTable.h:29,
                 from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bcc_exception.h:65:12: error: ‘ret_’ was not declared in this scope
   65 |     return ret_ == 0;
      |            ^~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:68:14: error: non-member function ‘int ebpf::code()’ cannot have cv-qualifier
   68 |   int code() const {
      |              ^~~~~
/usr/include/bcc/bcc_exception.h: In function ‘int ebpf::code()’:
/usr/include/bcc/bcc_exception.h:69:9: error: ‘use_enum_code_’ was not declared in this scope
   69 |     if (use_enum_code_) {
      |         ^~~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:70:31: error: ‘code_’ was not declared in this scope; did you mean ‘code’?
   70 |       return static_cast<int>(code_);
      |                               ^~~~~
      |                               code
/usr/include/bcc/bcc_exception.h:72:12: error: ‘ret_’ was not declared in this scope
   72 |     return ret_;
      |            ^~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:75:28: error: non-member function ‘const string& ebpf::msg()’ cannot have cv-qualifier
   75 |   const std::string& msg() const { return msg_; }
      |                            ^~~~~
/usr/include/bcc/bcc_exception.h: In function ‘const string& ebpf::msg()’:
/usr/include/bcc/bcc_exception.h:75:43: error: ‘msg_’ was not declared in this scope; did you mean ‘msg’?
   75 |   const std::string& msg() const { return msg_; }
      |                                           ^~~~
      |                                           msg
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:77:1: error: expected unqualified-id before ‘private’
   77 | private:
      | ^~~~~~~
/usr/include/bcc/bcc_exception.h:81:3: error: ‘Code’ does not name a type; did you mean ‘code’?
   81 |   Code code_;
      |   ^~~~
      |   code
/usr/include/bcc/bcc_exception.h:104:1: error: ‘StatusTuple’ does not name a type
  104 | DECLARE_ERROR(Unknown, UNKNOWN)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:104:1: error: ‘StatusTuple’ does not name a type
  104 | DECLARE_ERROR(Unknown, UNKNOWN)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: In function ‘bool error::IsUnknown(const int&)’:
/usr/include/bcc/bcc_exception.h:104:1: error: request for member ‘code’ in ‘status’, which is of non-class type ‘const int’
  104 | DECLARE_ERROR(Unknown, UNKNOWN)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:104:1: error: ‘UNKNOWN’ is not a member of ‘ebpf::StatusTuple::Code’
  104 | DECLARE_ERROR(Unknown, UNKNOWN)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:105:1: error: ‘StatusTuple’ does not name a type
  105 | DECLARE_ERROR(InvalidArgument, INVALID_ARGUMENT)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:105:1: error: ‘StatusTuple’ does not name a type
  105 | DECLARE_ERROR(InvalidArgument, INVALID_ARGUMENT)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: In function ‘bool error::IsInvalidArgument(const int&)’:
/usr/include/bcc/bcc_exception.h:105:1: error: request for member ‘code’ in ‘status’, which is of non-class type ‘const int’
  105 | DECLARE_ERROR(InvalidArgument, INVALID_ARGUMENT)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:105:1: error: ‘INVALID_ARGUMENT’ is not a member of ‘ebpf::StatusTuple::Code’
  105 | DECLARE_ERROR(InvalidArgument, INVALID_ARGUMENT)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:106:1: error: ‘StatusTuple’ does not name a type
  106 | DECLARE_ERROR(PermissionDenied, PERMISSION_DENIED)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:106:1: error: ‘StatusTuple’ does not name a type
  106 | DECLARE_ERROR(PermissionDenied, PERMISSION_DENIED)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: In function ‘bool error::IsPermissionDenied(const int&)’:
/usr/include/bcc/bcc_exception.h:106:1: error: request for member ‘code’ in ‘status’, which is of non-class type ‘const int’
  106 | DECLARE_ERROR(PermissionDenied, PERMISSION_DENIED)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:106:1: error: ‘PERMISSION_DENIED’ is not a member of ‘ebpf::StatusTuple::Code’
  106 | DECLARE_ERROR(PermissionDenied, PERMISSION_DENIED)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:107:1: error: ‘StatusTuple’ does not name a type
  107 | DECLARE_ERROR(System, SYSTEM)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:107:1: error: ‘StatusTuple’ does not name a type
  107 | DECLARE_ERROR(System, SYSTEM)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: In function ‘bool error::IsSystem(const int&)’:
/usr/include/bcc/bcc_exception.h:107:1: error: request for member ‘code’ in ‘status’, which is of non-class type ‘const int’
  107 | DECLARE_ERROR(System, SYSTEM)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h:107:1: error: ‘SYSTEM’ is not a member of ‘ebpf::StatusTuple::Code’
  107 | DECLARE_ERROR(System, SYSTEM)
      | ^~~~~~~~~~~~~
/usr/include/bcc/bcc_exception.h: At global scope:
/usr/include/bcc/bcc_exception.h:111:1: error: expected declaration before ‘}’ token
  111 | }  // namespace ebpf
      | ^
In file included from /usr/include/bcc/table_storage.h:26,
                 from /usr/include/bcc/bpf_module.h:26,
                 from /usr/include/bcc/BPFTable.h:31,
                 from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/table_desc.h:35:56: error: template argument 1 is invalid
   35 | typedef std::function<StatusTuple(const char *, void *)> sscanf_fn;
      |                                                        ^
/usr/include/bcc/table_desc.h:36:64: error: template argument 1 is invalid
   36 | typedef std::function<StatusTuple(char *, size_t, const void *)> snprintf_fn;
      |                                                                ^
In file included from /usr/include/bcc/BPFTable.h:31,
                 from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/bpf_module.h:86:3: error: ‘StatusTuple’ does not name a type
   86 |   StatusTuple sscanf(std::string fn_name, const char *str, void *val);
      |   ^~~~~~~~~~~
/usr/include/bcc/bpf_module.h:87:3: error: ‘StatusTuple’ does not name a type
   87 |   StatusTuple snprintf(std::string fn_name, char *str, size_t sz,
      |   ^~~~~~~~~~~
In file included from /usr/include/bcc/BPF.h:25,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/BPFTable.h:44:3: error: ‘StatusTuple’ does not name a type
   44 |   StatusTuple string_to_key(const std::string& key_str, KeyType* key) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:48:3: error: ‘StatusTuple’ does not name a type
   48 |   StatusTuple string_to_leaf(const std::string& value_str, ValueType* value) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:52:3: error: ‘StatusTuple’ does not name a type
   52 |   StatusTuple key_to_string(const KeyType* key, std::string& key_str) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:60:3: error: ‘StatusTuple’ does not name a type
   60 |   StatusTuple leaf_to_string(const ValueType* value, std::string& value_str) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:100:3: error: ‘StatusTuple’ does not name a type
  100 |   StatusTuple get_value(const std::string& key_str, std::string& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:101:3: error: ‘StatusTuple’ does not name a type
  101 |   StatusTuple get_value(const std::string& key_str,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:104:3: error: ‘StatusTuple’ does not name a type
  104 |   StatusTuple update_value(const std::string& key_str,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:106:3: error: ‘StatusTuple’ does not name a type
  106 |   StatusTuple update_value(const std::string& key_str,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:109:3: error: ‘StatusTuple’ does not name a type
  109 |   StatusTuple remove_value(const std::string& key_str);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:111:3: error: ‘StatusTuple’ does not name a type
  111 |   StatusTuple clear_table_non_atomic();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:112:3: error: ‘StatusTuple’ does not name a type
  112 |   StatusTuple get_table_offline(std::vector<std::pair<std::string, std::string>> &res);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:137:11: error: ‘StatusTuple’ does not name a type
  137 |   virtual StatusTuple get_value(const int& index, ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:143:11: error: ‘StatusTuple’ does not name a type
  143 |   virtual StatusTuple update_value(const int& index, const ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:182:3: error: ‘StatusTuple’ does not name a type
  182 |   StatusTuple get_value(const int& index, std::vector<ValueType>& value) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:187:3: error: ‘StatusTuple’ does not name a type
  187 |   StatusTuple update_value(const int& index,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:211:11: error: ‘StatusTuple’ does not name a type
  211 |   virtual StatusTuple get_value(const KeyType& key, ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:217:11: error: ‘StatusTuple’ does not name a type
  217 |   virtual StatusTuple update_value(const KeyType& key, const ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:224:11: error: ‘StatusTuple’ does not name a type
  224 |   virtual StatusTuple remove_value(const KeyType& key) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:258:3: error: ‘StatusTuple’ does not name a type
  258 |   StatusTuple clear_table_non_atomic() {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h: In member function ‘std::vector<std::pair<_T1, _T2> > ebpf::BPFHashTable<KeyType, ValueType>::get_table_offline()’:
/usr/include/bcc/BPFTable.h:241:16: error: expected ‘;’ before ‘r’
  241 |     StatusTuple r(0);
      |                ^~
      |                ;
/usr/include/bcc/BPFTable.h:241:21: error: statement cannot resolve address of overloaded function
  241 |     StatusTuple r(0);
      |                     ^
/usr/include/bcc/BPFTable.h:247:7: error: ‘r’ was not declared in this scope
  247 |       r = get_value(cur, value);
      |       ^
/usr/include/bcc/BPFTable.h: At global scope:
/usr/include/bcc/BPFTable.h:284:3: error: ‘StatusTuple’ does not name a type
  284 |   StatusTuple get_value(const KeyType& key, std::vector<ValueType>& value) {
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:289:3: error: ‘StatusTuple’ does not name a type
  289 |   StatusTuple update_value(const KeyType& key,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:348:3: error: ‘StatusTuple’ does not name a type
  348 |   StatusTuple open_all_cpu(perf_reader_raw_cb cb, perf_reader_lost_cb lost_cb,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:350:3: error: ‘StatusTuple’ does not name a type
  350 |   StatusTuple close_all_cpu();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:354:3: error: ‘StatusTuple’ does not name a type
  354 |   StatusTuple open_on_cpu(perf_reader_raw_cb cb, perf_reader_lost_cb lost_cb,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:356:3: error: ‘StatusTuple’ does not name a type
  356 |   StatusTuple close_on_cpu(int cpu);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:369:3: error: ‘StatusTuple’ does not name a type
  369 |   StatusTuple open_all_cpu(uint32_t type, uint64_t config);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:370:3: error: ‘StatusTuple’ does not name a type
  370 |   StatusTuple close_all_cpu();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:373:3: error: ‘StatusTuple’ does not name a type
  373 |   StatusTuple open_on_cpu(int cpu, uint32_t type, uint64_t config);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:374:3: error: ‘StatusTuple’ does not name a type
  374 |   StatusTuple close_on_cpu(int cpu);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:383:3: error: ‘StatusTuple’ does not name a type
  383 |   StatusTuple update_value(const int& index, const int& prog_fd);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:384:3: error: ‘StatusTuple’ does not name a type
  384 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:391:3: error: ‘StatusTuple’ does not name a type
  391 |   StatusTuple update_value(const int& index, const int& cgroup2_fd);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:392:3: error: ‘StatusTuple’ does not name a type
  392 |   StatusTuple update_value(const int& index, const std::string& cgroup2_path);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:393:3: error: ‘StatusTuple’ does not name a type
  393 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:400:3: error: ‘StatusTuple’ does not name a type
  400 |   StatusTuple update_value(const int& index, const int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:401:3: error: ‘StatusTuple’ does not name a type
  401 |   StatusTuple get_value(const int& index, int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:402:3: error: ‘StatusTuple’ does not name a type
  402 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:409:3: error: ‘StatusTuple’ does not name a type
  409 |   StatusTuple update_value(const int& index, const int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:410:3: error: ‘StatusTuple’ does not name a type
  410 |   StatusTuple get_value(const int& index, int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:411:3: error: ‘StatusTuple’ does not name a type
  411 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:418:3: error: ‘StatusTuple’ does not name a type
  418 |   StatusTuple update_value(const int& index, const int& inner_map_fd);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:419:3: error: ‘StatusTuple’ does not name a type
  419 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:426:3: error: ‘StatusTuple’ does not name a type
  426 |   StatusTuple update_value(const int& index, const int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:427:3: error: ‘StatusTuple’ does not name a type
  427 |   StatusTuple remove_value(const int& index);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:434:3: error: ‘StatusTuple’ does not name a type
  434 |   StatusTuple update_value(const int& key, const int& value);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:435:3: error: ‘StatusTuple’ does not name a type
  435 |   StatusTuple remove_value(const int& key);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:447:11: error: ‘StatusTuple’ does not name a type
  447 |   virtual StatusTuple get_value(const int& sock_fd, ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:453:11: error: ‘StatusTuple’ does not name a type
  453 |   virtual StatusTuple update_value(const int& sock_fd, const ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:460:11: error: ‘StatusTuple’ does not name a type
  460 |   virtual StatusTuple remove_value(const int& sock_fd) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:476:11: error: ‘StatusTuple’ does not name a type
  476 |   virtual StatusTuple get_value(struct bpf_cgroup_storage_key& key,
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:484:11: error: ‘StatusTuple’ does not name a type
  484 |   virtual StatusTuple update_value(struct bpf_cgroup_storage_key& key, const ValueType& value) {
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:505:11: error: ‘StatusTuple’ does not name a type
  505 |   virtual StatusTuple get_value(struct bpf_cgroup_storage_key& key,
      |           ^~~~~~~~~~~
/usr/include/bcc/BPFTable.h:514:11: error: ‘StatusTuple’ does not name a type
  514 |   virtual StatusTuple update_value(struct bpf_cgroup_storage_key& key,
      |           ^~~~~~~~~~~
In file included from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/../tracer/ebpf/ebpf_tracer_engine.h:6,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.h:21,
                 from /home/wjc/work/stuffs/ProcMon-for-Linux/src/configuration/procmon_configuration.cpp:4:
/usr/include/bcc/BPF.h:57:3: error: ‘StatusTuple’ does not name a type
   57 |   StatusTuple init(const std::string& bpf_program,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:58:63: error: expected unqualified-id before ‘,’ token
   58 |                    const std::vector<std::string>& cflags = {},
      |                                                               ^
/usr/include/bcc/BPF.h:59:54: error: expected unqualified-id before ‘)’ token
   59 |                    const std::vector<USDT>& usdt = {});
      |                                                      ^
/usr/include/bcc/BPF.h:61:3: error: ‘StatusTuple’ does not name a type
   61 |   StatusTuple init_usdt(const USDT& usdt);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:64:3: error: ‘StatusTuple’ does not name a type
   64 |   StatusTuple detach_all();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:66:3: error: ‘StatusTuple’ does not name a type
   66 |   StatusTuple attach_kprobe(const std::string& kernel_func,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:71:3: error: ‘StatusTuple’ does not name a type
   71 |   StatusTuple detach_kprobe(
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:75:3: error: ‘StatusTuple’ does not name a type
   75 |   StatusTuple attach_uprobe(const std::string& binary_path,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:82:3: error: ‘StatusTuple’ does not name a type
   82 |   StatusTuple detach_uprobe(const std::string& binary_path,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:87:3: error: ‘StatusTuple’ does not name a type
   87 |   StatusTuple attach_usdt(const USDT& usdt, pid_t pid = -1);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:88:3: error: ‘StatusTuple’ does not name a type
   88 |   StatusTuple attach_usdt_all();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:89:3: error: ‘StatusTuple’ does not name a type
   89 |   StatusTuple detach_usdt(const USDT& usdt, pid_t pid = -1);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:90:3: error: ‘StatusTuple’ does not name a type
   90 |   StatusTuple detach_usdt_all();
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:92:3: error: ‘StatusTuple’ does not name a type
   92 |   StatusTuple attach_tracepoint(const std::string& tracepoint,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:94:3: error: ‘StatusTuple’ does not name a type
   94 |   StatusTuple detach_tracepoint(const std::string& tracepoint);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:96:3: error: ‘StatusTuple’ does not name a type
   96 |   StatusTuple attach_raw_tracepoint(const std::string& tracepoint,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:98:3: error: ‘StatusTuple’ does not name a type
   98 |   StatusTuple detach_raw_tracepoint(const std::string& tracepoint);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:100:3: error: ‘StatusTuple’ does not name a type
  100 |   StatusTuple attach_perf_event(uint32_t ev_type, uint32_t ev_config,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:105:3: error: ‘StatusTuple’ does not name a type
  105 |   StatusTuple attach_perf_event_raw(void* perf_event_attr,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:110:3: error: ‘StatusTuple’ does not name a type
  110 |   StatusTuple detach_perf_event(uint32_t ev_type, uint32_t ev_config);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:111:3: error: ‘StatusTuple’ does not name a type
  111 |   StatusTuple detach_perf_event_raw(void* perf_event_attr);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:210:3: error: ‘StatusTuple’ does not name a type
  210 |   StatusTuple open_perf_event(const std::string& name, uint32_t type,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:213:3: error: ‘StatusTuple’ does not name a type
  213 |   StatusTuple close_perf_event(const std::string& name);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:218:3: error: ‘StatusTuple’ does not name a type
  218 |   StatusTuple open_perf_buffer(const std::string& name, perf_reader_raw_cb cb,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:223:3: error: ‘StatusTuple’ does not name a type
  223 |   StatusTuple close_perf_buffer(const std::string& name);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:235:3: error: ‘StatusTuple’ does not name a type
  235 |   StatusTuple load_func(const std::string& func_name, enum bpf_prog_type type,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:237:3: error: ‘StatusTuple’ does not name a type
  237 |   StatusTuple unload_func(const std::string& func_name);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:239:3: error: ‘StatusTuple’ does not name a type
  239 |   StatusTuple attach_func(int prog_fd, int attachable_fd,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:242:3: error: ‘StatusTuple’ does not name a type
  242 |   StatusTuple detach_func(int prog_fd, int attachable_fd,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:253:3: error: ‘StatusTuple’ does not name a type
  253 |   StatusTuple attach_usdt_without_validation(const USDT& usdt, pid_t pid);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:254:3: error: ‘StatusTuple’ does not name a type
  254 |   StatusTuple detach_usdt_without_validation(const USDT& usdt, pid_t pid);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:256:3: error: ‘StatusTuple’ does not name a type
  256 |   StatusTuple detach_kprobe_event(const std::string& event, open_probe_t& attr);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:257:3: error: ‘StatusTuple’ does not name a type
  257 |   StatusTuple detach_uprobe_event(const std::string& event, open_probe_t& attr);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:258:3: error: ‘StatusTuple’ does not name a type
  258 |   StatusTuple detach_tracepoint_event(const std::string& tracepoint,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:260:3: error: ‘StatusTuple’ does not name a type
  260 |   StatusTuple detach_raw_tracepoint_event(const std::string& tracepoint,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:262:3: error: ‘StatusTuple’ does not name a type
  262 |   StatusTuple detach_perf_event_all_cpu(open_probe_t& attr);
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:292:3: error: ‘StatusTuple’ does not name a type
  292 |   StatusTuple check_binary_symbol(const std::string& binary_path,
      |   ^~~~~~~~~~~
/usr/include/bcc/BPF.h:339:3: error: ‘StatusTuple’ does not name a type
  339 |   StatusTuple init();
      |   ^~~~~~~~~~~
make[2]: *** [src/configuration/CMakeFiles/configuration-static.dir/build.make:83: src/configuration/CMakeFiles/configuration-static.dir/procmon_configuration.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2561: src/configuration/CMakeFiles/configuration-static.dir/all] Error 2
make: *** [Makefile:183: all] Error 2
@jahabibi jahabibi added bug Something isn't working Build related to building procmon Distro a request to support a specific distro of Linux labels Jul 24, 2020
@jahabibi
Copy link
Collaborator

This is a known issue and we are actively working on addressing it. Please watch #2 for updates as we upgrade BCC.

@jahabibi jahabibi added the BCC related to BCC label Jul 25, 2020
@jahabibi
Copy link
Collaborator

jahabibi commented May 6, 2021

As of Procmon 1.0.1 we now utilize BCC 0.19.0.

@jahabibi jahabibi closed this as completed May 6, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BCC related to BCC bug Something isn't working Build related to building procmon Distro a request to support a specific distro of Linux
Projects
None yet
Development

No branches or pull requests

2 participants