bpftime
bpftime copied to clipboard
bpftime build issue during to boost process
When building bpftime with GPU monitoring/attachment support (LLVM-15, CUDA 12.4, Boost 1.74.0, C++17, Clang 14), the build fails at the GPU attachment implementation phase (attach/nv_attach_impl) due to Boost.Process template instantiation errors.
Environment
bpftime commit: 8585e14690816e46a1d84231efc643ef7dbf2d89
OS: Ubuntu 22.04 LTS (x86_64)
GCC/G++: 11.4.0 and Clang: 14.0.0
CMake: [output of cmake --version]
Boost: 1.74.0 (from libboost-all-dev)
CUDA: 12.4 (/usr/local/cuda-12.4)
LLVM: 15.0.7 (dev tools, PTX target enabled)
C++ Standard: 17 (-DCMAKE_CXX_STANDARD=17)
Other relevant packages: spdlog 1.15.2, Frida 16.1.2
cmake build was successful but during make I faced the boost process issues
Navigate to the bpftime root directory
cd bpftime
Build the main bpftime project first
mkdir -p build && cd build cmake .. -DBPFTIME_ENABLE_CUDA_ATTACH=1 -DBPFTIME_CUDA_ROOT=/usr/local/cuda-12.6 make -j$(nproc)
It seems to be a bug of boost https://stackoverflow.com/questions/58147787/boostprocessenv-broken-on-ubuntu-19-04, try updating your boost version
I tried the latest 1.88.0
and 1.85.0
But these errors still keep showing up
I tried the latest 1.88.0
### and 1.85.0
But these errors still keep showing up
I'm using boost 1.83 and everything works, can you try that version?
I tried with 1.83 and these errors are similar to the ones I faced with 1.85
### I tried with 1.83 and these errors are similar to the ones I faced with 1.85
Since I can't reproduce your compile issues, could you please create a docker image to reproduce it so I can investigate in it?
[SOLVED]: solution at the bottom
I'm facing a similar problem during the build, on my machine and also using the ubuntu docker file provided by the bpfftime repo (I followed the Build and test guide from eunomia website to setup both)
This is the output from my machine, but it's the same of the docker:
Build output
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: error: ‘is_wchar_t’ is not a class template
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:107:75: error: explicit specialization of non-template ‘boost::process::detail::is_wchar_t’
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^
/usr/include/boost/process/env.hpp:108:19: error: ‘is_wchar_t’ is not a class template
108 | template<> struct is_wchar_t<env_append<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:108:48: error: ‘boost::process::detail::is_wchar_t’ is not a template
108 | template<> struct is_wchar_t<env_append<wchar_t>> : std::true_type {};
| ^~
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:109:19: error: ‘is_wchar_t’ is not a class template
109 | template<> struct is_wchar_t<env_reset<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:109:47: error: ‘boost::process::detail::is_wchar_t’ is not a template
109 | template<> struct is_wchar_t<env_reset<wchar_t>> : std::true_type {};
| ^~
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:110:19: error: ‘is_wchar_t’ is not a class template
110 | template<> struct is_wchar_t<basic_environment<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:110:55: error: ‘boost::process::detail::is_wchar_t’ is not a template
110 | template<> struct is_wchar_t<basic_environment<wchar_t>> : std::true_type {};
| ^~
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/env.hpp:114:8: error: ‘char_converter’ is not a class template
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/env.hpp:115:1: error: explicit specialization of non-template ‘boost::process::detail::char_converter’
115 | {
| ^
/usr/include/boost/process/env.hpp:124:8: error: ‘char_converter’ is not a class template
124 | struct char_converter<wchar_t, env_set<char>>
| ^~~~~~~~~~~~~~
# I trimmed the output too long
/usr/include/boost/process/detail/traits/wchar_t.hpp:160:65: error: ‘boost::process::detail::char_converter’ is not a template
160 | struct char_converter<wchar_t, std::initializer_list<std::string>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:175:8: error: ‘char_converter’ is not a class template
175 | struct char_converter<wchar_t, std::vector<char* >>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:175:50: error: ‘boost::process::detail::char_converter’ is not a template
175 | struct char_converter<wchar_t, std::vector<char* >>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:192:8: error: ‘char_converter’ is not a class template
192 | struct char_converter<wchar_t, std::initializer_list<char *>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:192:60: error: ‘boost::process::detail::char_converter’ is not a template
192 | struct char_converter<wchar_t, std::initializer_list<char *>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:209:8: error: ‘char_converter’ is not a class template
209 | struct char_converter<char, std::vector<std::wstring>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:209:53: error: ‘boost::process::detail::char_converter’ is not a template
209 | struct char_converter<char, std::vector<std::wstring>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:224:8: error: ‘char_converter’ is not a class template
224 | struct char_converter<char, std::initializer_list<std::wstring>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:224:63: error: ‘boost::process::detail::char_converter’ is not a template
224 | struct char_converter<char, std::initializer_list<std::wstring>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:239:8: error: ‘char_converter’ is not a class template
239 | struct char_converter<char, std::vector<wchar_t* >>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:239:50: error: ‘boost::process::detail::char_converter’ is not a template
239 | struct char_converter<char, std::vector<wchar_t* >>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/basic_cmd.hpp:14,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/wchar_t.hpp:256:8: error: ‘char_converter’ is not a class template
256 | struct char_converter<char, std::initializer_list<wchar_t * >>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/wchar_t.hpp:256:61: error: ‘boost::process::detail::char_converter’ is not a template
256 | struct char_converter<char, std::initializer_list<wchar_t * >>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/posix/basic_cmd.hpp:13,
from /usr/include/boost/process/detail/basic_cmd.hpp:20,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/shell.hpp:58:8: error: ‘is_wchar_t’ is not a class template
58 | struct is_wchar_t<shell_> : is_wchar_t<boost::filesystem::path>
| ^~~~~~~~~~
/usr/include/boost/process/shell.hpp:58:25: error: ‘boost::process::detail::is_wchar_t’ is not a template
58 | struct is_wchar_t<shell_> : is_wchar_t<boost::filesystem::path>
| ^
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process/detail/posix/basic_cmd.hpp:13,
from /usr/include/boost/process/detail/basic_cmd.hpp:20,
from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/shell.hpp:58:39: error: expected template-name before ‘<’ token
58 | struct is_wchar_t<shell_> : is_wchar_t<boost::filesystem::path>
| ^
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:42:19: error: ‘is_wchar_t’ is not a class template
42 | template<> struct is_wchar_t<exe_setter_<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:42:49: error: ‘boost::process::detail::is_wchar_t’ is not a template
42 | template<> struct is_wchar_t<exe_setter_<wchar_t>> : std::true_type {};
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:46:8: error: ‘char_converter’ is not a class template
46 | struct char_converter<char, exe_setter_<wchar_t>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:46:48: error: ‘boost::process::detail::char_converter’ is not a template
46 | struct char_converter<char, exe_setter_<wchar_t>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:55:8: error: ‘char_converter’ is not a class template
55 | struct char_converter<wchar_t, exe_setter_<char>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:55:48: error: ‘boost::process::detail::char_converter’ is not a template
55 | struct char_converter<wchar_t, exe_setter_<char>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:96:19: error: ‘is_wchar_t’ is not a class template
96 | template<> struct is_wchar_t<arg_setter_<wchar_t, true >> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:96:56: error: ‘boost::process::detail::is_wchar_t’ is not a template
96 | template<> struct is_wchar_t<arg_setter_<wchar_t, true >> : std::true_type {};
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:97:19: error: ‘is_wchar_t’ is not a class template
97 | template<> struct is_wchar_t<arg_setter_<wchar_t, false>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:97:56: error: ‘boost::process::detail::is_wchar_t’ is not a template
97 | template<> struct is_wchar_t<arg_setter_<wchar_t, false>> : std::true_type {};
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:100:8: error: ‘char_converter’ is not a class template
100 | struct char_converter<char, arg_setter_<wchar_t, true>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:100:54: error: ‘boost::process::detail::char_converter’ is not a template
100 | struct char_converter<char, arg_setter_<wchar_t, true>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:115:8: error: ‘char_converter’ is not a class template
115 | struct char_converter<wchar_t, arg_setter_<char, true>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:115:54: error: ‘boost::process::detail::char_converter’ is not a template
115 | struct char_converter<wchar_t, arg_setter_<char, true>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:131:8: error: ‘char_converter’ is not a class template
131 | struct char_converter<char, arg_setter_<wchar_t, false>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:131:55: error: ‘boost::process::detail::char_converter’ is not a template
131 | struct char_converter<char, arg_setter_<wchar_t, false>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:145:8: error: ‘char_converter’ is not a class template
145 | struct char_converter<wchar_t, arg_setter_<char, false>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:145:55: error: ‘boost::process::detail::char_converter’ is not a template
145 | struct char_converter<wchar_t, arg_setter_<char, false>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:277:8: error: ‘initializer_builder’ is not a class template
277 | struct initializer_builder<cmd_or_exe_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:277:47: error: ‘boost::process::detail::initializer_builder’ is not a template
277 | struct initializer_builder<cmd_or_exe_tag<char>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process/args.hpp:33,
from /usr/include/boost/process.hpp:22,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/basic_cmd.hpp:283:8: error: ‘initializer_builder’ is not a class template
283 | struct initializer_builder<cmd_or_exe_tag<wchar_t>>
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/detail/basic_cmd.hpp:283:50: error: ‘boost::process::detail::initializer_builder’ is not a template
283 | struct initializer_builder<cmd_or_exe_tag<wchar_t>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/traits.hpp:11,
from /usr/include/boost/process/async.hpp:32,
from /usr/include/boost/process.hpp:23,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/traits/async.hpp:23:8: error: ‘initializer_builder’ is not a class template
23 | struct initializer_builder<async_tag>;
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/detail/traits/async.hpp:23:8: error: ‘boost::process::detail::initializer_builder’ is not a template
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process.hpp:23,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/async.hpp:82:8: error: ‘initializer_builder’ is not a class template
82 | struct initializer_builder<async_tag>
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/async.hpp:82:37: error: ‘boost::process::detail::initializer_builder’ is not a template
82 | struct initializer_builder<async_tag>
| ^
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process/detail/posix/executor.hpp:14,
from /usr/include/boost/process/detail/execute_impl.hpp:24,
from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/error.hpp:169:8: error: ‘initializer_builder’ is not a class template
169 | struct initializer_builder<error_tag>
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/error.hpp:169:37: error: ‘boost::process::detail::initializer_builder’ is not a template
169 | struct initializer_builder<error_tag>
| ^
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/execute_impl.hpp:60:38: error: ‘boost::process::detail::is_wchar_t’ is not a template
60 | constexpr static bool my_value = is_wchar_t<res_type>::value;
| ^~~~~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:72:35: error: ‘boost::process::detail::is_wchar_t’ is not a template
72 | constexpr static bool value = is_wchar_t<res_type>::value;
| ^~~~~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:118:22: error: expected nested-name-specifier before ‘initializer_builder’
118 | typedef typename initializer_builder<tag>::type builder_type;
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:118:22: error: expected ‘;’ at end of member declaration
118 | typedef typename initializer_builder<tag>::type builder_type;
| ^~~~~~~~~~~~~~~~~~~
| ;
/usr/include/boost/process/detail/execute_impl.hpp:118:41: error: expected unqualified-id before ‘<’ token
118 | typedef typename initializer_builder<tag>::type builder_type;
| ^
/usr/include/boost/process/detail/execute_impl.hpp:119:61: error: ‘builder_type’ was not declared in this scope
119 | typedef typename boost::fusion::result_of::has_key<set, builder_type> has_key;
| ^~~~~~~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:119:73: error: template argument 2 is invalid
119 | typedef typename boost::fusion::result_of::has_key<set, builder_type> has_key;
| ^
/usr/include/boost/process/detail/execute_impl.hpp:119:75: error: invalid use of template-name ‘boost::fusion::result_of::has_key’ without an argument list
119 | typedef typename boost::fusion::result_of::has_key<set, builder_type> has_key;
| ^~~~~~~
In file included from /usr/include/boost/fusion/sequence/intrinsic/begin.hpp:14,
from /usr/include/boost/fusion/algorithm/query/detail/find_if.hpp:22,
from /usr/include/boost/fusion/view/filter_view/filter_view_iterator.hpp:15,
from /usr/include/boost/fusion/view/filter_view/filter_view.hpp:14,
from /usr/include/boost/fusion/algorithm/transformation/filter_if.hpp:11,
from /usr/include/boost/fusion/include/filter_if.hpp:11,
from /usr/include/boost/process/detail/used_handles.hpp:10,
from /usr/include/boost/process/detail/posix/close_in.hpp:15,
from /usr/include/boost/process/io.hpp:20,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:12:
/usr/include/boost/fusion/sequence/intrinsic_fwd.hpp:74:16: note: ‘template<class Sequence, class Key> struct boost::fusion::result_of::has_key’ declared here
74 | struct has_key;
| ^~~~~~~
In file included from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/execute_impl.hpp:125:30: error: ‘has_key’ was not declared in this scope
125 | std::conditional<has_key::value,
| ^~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:125:30: note: suggested alternatives:
In file included from /usr/include/boost/mpl/has_key.hpp:18,
from /usr/include/boost/fusion/adapted/mpl/detail/has_key_impl.hpp:12,
from /usr/include/boost/fusion/adapted/mpl.hpp:18,
from /usr/include/boost/fusion/mpl.hpp:12,
from /usr/include/boost/fusion/view/detail/strictest_traversal.hpp:16,
from /usr/include/boost/fusion/view/transform_view/transform_view.hpp:21,
from /usr/include/boost/fusion/algorithm/transformation/transform.hpp:11,
from /usr/include/boost/process/detail/posix/io_context_ref.hpp:15,
from /usr/include/boost/process/async.hpp:42,
from /usr/include/boost/process.hpp:23,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/mpl/has_key_fwd.hpp:21:63: note: ‘boost::mpl::has_key’
21 | template< typename AssociativeSequence, typename Key > struct has_key;
| ^~~~~~~
In file included from /usr/include/boost/fusion/mpl/has_key.hpp:12,
from /usr/include/boost/fusion/mpl.hpp:23,
from /usr/include/boost/fusion/view/detail/strictest_traversal.hpp:16,
from /usr/include/boost/fusion/view/transform_view/transform_view.hpp:21,
from /usr/include/boost/fusion/algorithm/transformation/transform.hpp:11,
from /usr/include/boost/process/detail/posix/io_context_ref.hpp:15,
from /usr/include/boost/process/async.hpp:42,
from /usr/include/boost/process.hpp:23,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/fusion/sequence/intrinsic/has_key.hpp:73:5: note: ‘boost::fusion::has_key’
73 | has_key(Sequence const&)
| ^~~~~~~
In file included from /usr/include/boost/fusion/sequence/intrinsic/begin.hpp:14,
from /usr/include/boost/fusion/algorithm/query/detail/find_if.hpp:22,
from /usr/include/boost/fusion/view/filter_view/filter_view_iterator.hpp:15,
from /usr/include/boost/fusion/view/filter_view/filter_view.hpp:14,
from /usr/include/boost/fusion/algorithm/transformation/filter_if.hpp:11,
from /usr/include/boost/fusion/include/filter_if.hpp:11,
from /usr/include/boost/process/detail/used_handles.hpp:10,
from /usr/include/boost/process/detail/posix/close_in.hpp:15,
from /usr/include/boost/process/io.hpp:20,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:12:
/usr/include/boost/fusion/sequence/intrinsic_fwd.hpp:74:16: note: ‘boost::fusion::result_of::has_key’
74 | struct has_key;
| ^~~~~~~
In file included from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/execute_impl.hpp:128:13: error: wrong number of template arguments (1, should be 3)
128 | >::type type;
| ^
In file included from /usr/include/c++/9/bits/move.h:55,
from /usr/include/c++/9/bits/stl_pair.h:59,
from /usr/include/c++/9/bits/stl_algobase.h:64,
from /usr/include/c++/9/bits/char_traits.h:39,
from /usr/include/c++/9/string:40,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_utils.hpp:5,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.hpp:4,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:1:
/usr/include/c++/9/type_traits:92:12: note: provided for ‘template<bool <anonymous>, class, class> struct std::conditional’
92 | struct conditional;
| ^~~~~~~~~~~
In file included from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/execute_impl.hpp:128:14: error: expected identifier before ‘::’ token
128 | >::type type;
| ^~
/usr/include/boost/process/detail/execute_impl.hpp:128:16: error: typedef name may not be a nested-name-specifier
128 | >::type type;
| ^~~~
/usr/include/boost/process/detail/execute_impl.hpp:128:16: error: expected ‘;’ at end of member declaration
128 | >::type type;
| ^~~~
| ;
/usr/include/boost/process/detail/execute_impl.hpp:128:21: error: declaration does not declare anything [-fpermissive]
128 | >::type type;
| ^~~~
/usr/include/boost/process/detail/execute_impl.hpp: In member function ‘void boost::process::detail::builder_ref<Builders>::operator()(T&&) const’:
/usr/include/boost/process/detail/execute_impl.hpp:148:26: error: expected nested-name-specifier before ‘initializer_builder’
148 | typedef typename initializer_builder<tag>::type builder_type;
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/detail/execute_impl.hpp:148:45: error: expected initializer before ‘<’ token
148 | typedef typename initializer_builder<tag>::type builder_type;
| ^
/usr/include/boost/process/detail/execute_impl.hpp:149:31: error: ‘builder_type’ was not declared in this scope; did you mean ‘builder_ref’?
149 | boost::fusion::at_key<builder_type>(builders)(std::forward<T>(value));
| ^~~~~~~~~~~~
| builder_ref
In file included from /usr/include/boost/process.hpp:25,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/group.hpp: At global scope:
/usr/include/boost/process/group.hpp:220:8: error: ‘initializer_builder’ is not a class template
220 | struct initializer_builder<group_tag>
| ^~~~~~~~~~~~~~~~~~~
/usr/include/boost/process/group.hpp:220:37: error: ‘boost::process::detail::initializer_builder’ is not a template
220 | struct initializer_builder<group_tag>
| ^
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:338:8: note: previous declaration here
338 | struct initializer_builder<env_tag<char>>
| ^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/process.hpp:27,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/cmd.hpp:71:19: error: ‘is_wchar_t’ is not a class template
71 | template<> struct is_wchar_t<api::cmd_setter_<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/cmd.hpp:71:54: error: ‘boost::process::detail::is_wchar_t’ is not a template
71 | template<> struct is_wchar_t<api::cmd_setter_<wchar_t>> : std::true_type {};
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process.hpp:27,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/cmd.hpp:76:8: error: ‘char_converter’ is not a class template
76 | struct char_converter<char, api::cmd_setter_<wchar_t>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/cmd.hpp:76:53: error: ‘boost::process::detail::char_converter’ is not a template
76 | struct char_converter<char, api::cmd_setter_<wchar_t>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process.hpp:27,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/cmd.hpp:85:8: error: ‘char_converter’ is not a class template
85 | struct char_converter<wchar_t, api::cmd_setter_<char>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/cmd.hpp:85:53: error: ‘boost::process::detail::char_converter’ is not a template
85 | struct char_converter<wchar_t, api::cmd_setter_<char>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process.hpp:40,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/start_dir.hpp:70:19: error: ‘is_wchar_t’ is not a class template
70 | template<> struct is_wchar_t<api::start_dir_init<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
/usr/include/boost/process/start_dir.hpp:70:57: error: ‘boost::process::detail::is_wchar_t’ is not a template
70 | template<> struct is_wchar_t<api::start_dir_init<wchar_t>> : std::true_type {};
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:107:19: note: previous declaration here
107 | template<> struct is_wchar_t<env_set<wchar_t>> : std::true_type {};
| ^~~~~~~~~~
In file included from /usr/include/boost/process.hpp:40,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/start_dir.hpp:73:8: error: ‘char_converter’ is not a class template
73 | struct char_converter<char, api::start_dir_init<wchar_t>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/start_dir.hpp:73:56: error: ‘boost::process::detail::char_converter’ is not a template
73 | struct char_converter<char, api::start_dir_init<wchar_t>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process.hpp:40,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/start_dir.hpp:82:8: error: ‘char_converter’ is not a class template
82 | struct char_converter<wchar_t, api::start_dir_init<char>>
| ^~~~~~~~~~~~~~
/usr/include/boost/process/start_dir.hpp:82:56: error: ‘boost::process::detail::char_converter’ is not a template
82 | struct char_converter<wchar_t, api::start_dir_init<char>>
| ^~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:114:8: note: previous declaration here
114 | struct char_converter<char, env_set<wchar_t>>
| ^~~~~~~~~~~~~~
In file included from /usr/include/boost/process/child.hpp:22,
from /usr/include/boost/process/async_system.hpp:22,
from /usr/include/boost/process.hpp:24,
from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:39:
/usr/include/boost/process/detail/execute_impl.hpp: In instantiation of ‘boost::process::child boost::process::detail::execute_impl(Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::process::detail::posix::pipe_out<1, -1>, boost::process::detail::env_init<char>}]’:
/usr/include/boost/process/child.hpp:35:51: required from ‘boost::process::child::child(Args&& ...) [with Args = {std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, boost::process::detail::posix::pipe_out<1, -1>, boost::process::detail::env_init<char>}]’
/home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:232:28: required from here
/usr/include/boost/process/detail/execute_impl.hpp:276:76: error: cannot convert ‘std::__cxx11::basic_string<char>’ to ‘const boost::process::detail::env_set<wchar_t>&’
276 | boost::process::detail::char_converter_t<req_char_type, Args>::conv(
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
277 | std::forward<Args>(args))...
| ~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:11:
/usr/include/boost/process/env.hpp:116:56: note: initializing argument 1 of ‘static boost::process::detail::env_set<char> boost::process::detail::char_converter::conv(const boost::process::detail::env_set<wchar_t>&)’
116 | static env_set<char> conv(const env_set<wchar_t> & in)
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp: In member function ‘std::optional<std::vector<unsigned char> > bpftime::attach::nv_attach_impl::hack_fatbin(std::vector<unsigned char>&&)’:
/home/ffazzari/bpftime/attach/nv_attach_impl/nv_attach_impl.cpp:211:10: warning: ignoring return value of ‘char* mkdtemp(char*)’, declared with attribute warn_unused_result [-Wunused-result]
211 | mkdtemp(tmp_dir);
| ~~~~~~~^~~~~~~~~
make[2]: *** [attach/nv_attach_impl/CMakeFiles/bpftime_nv_attach_impl.dir/build.make:76: attach/nv_attach_impl/CMakeFiles/bpftime_nv_attach_impl.dir/nv_attach_impl.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:1492: attach/nv_attach_impl/CMakeFiles/bpftime_nv_attach_impl.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
My enviroment on my machine:
Enviroment
Ubuntu 22.04.4 LTS
-- System Version: 5.15.0-118-generic
-- System Processor: x86_64
-- Using frida: arch=linux-x86_64, version=16.1.2
-- Build spdlog: 1.15.2
-- Build type: Release
-- Supporting llvm-jit
-- Checking LLVM_VERSION_MAJOR macro value...
-- LLVM_VERSION_MAJOR is: 19
gcc 12.3
libboost 1.74.0 (I also tried 1.89, same output)
CUDA 11.5 (also tried 12.6)
I can compile bpftime without the eGPU flags on the Docker machine (unlike on my local machine, where it fails due to missing shared libraries). However, when I try to enable eGPU support, I run into this error.
Solution
I found the problem and I solved in the following way:
- To solve boost error I putted as first include the following header in
attach/nv_attach_impl/nv_attach_impl.cpp:
#include <boost/process.hpp>
Then I compiled bpftime and enabled eGPU feature using the following cmake setting:
[EDIT 1]: using boost 1.74 it compile without any problem, my suggestion is to not force a newer version since I had problem compiling ubpf
cmake -Bbuild \
-DCMAKE_C_COMPILER=$(which gcc-12) \
-DCMAKE_CXX_COMPILER=$(which g++-12) \
-DBPFTIME_ENABLE_CUDA_ATTACH=1 \
-DBPFTIME_CUDA_ROOT=/usr/local/cuda-11.5 \
-DBoost_INCLUDE_DIR=<your-boost-path>/boost/include \ # I used boost 1.89 compiled by source
-DBoost_LIBRARY_DIR=<your-boost-path>/boost/lib \
-DCMAKE_CXX_COMPILER_AR=$(which gcc-ar-12) \
-DCMAKE_C_COMPILER_AR=$(which gcc-ar-12) \
-DCMAKE_CXX_COMPILER_RANLIB=$(which gcc-ranlib-12) \
-DCMAKE_C_COMPILER_RANLIB=$(which gcc-ranlib-12) -DCMAKE_BUILD_TYPE:STRING=Release \
- After that, I encountered other issues:
Error log
/runtime/src/handler/map_handler.cpp:807:4: warning: left operand of comma operator has no effect [-Wunused-value]
807 | "Map {} (nv_gpu_ringbuf_map_impl) has space for thread count {}",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/runtime/src/handler/map_handler.cpp:808:49: error: expected ‘;’ before ‘)’ token
808 | container_name.c_str(), attr.gpu_thread_count);
| ^
| ;
/runtime/src/handler/map_handler.cpp:808:33: warning: right operand of comma operator has no effect [-Wunused-value]
808 | container_name.c_str(), attr.gpu_thread_count);
| ~~~~~^~~~~~~~~~~~~~~~
/runtime/src/handler/map_handler.cpp: In member function ‘void bpftime::bpf_map_handler::map_free(bpftime::managed_shared_memory&) const’:
/runtime/src/handler/map_handler.cpp:909:2: error: duplicate case value
909 | case bpf_map_type::BPF_MAP_TYPE_NV_GPU_ARRAY_MAP:
| ^~~~
/runtime/src/handler/map_handler.cpp:904:2: note: previously used here
904 | case bpf_map_type::BPF_MAP_TYPE_NV_GPU_ARRAY_MAP:
| ^~~~
[ 83%] Built target bpftime-object
The errors were caused by some code that had been left unfinished before the commit. After fixing them, the compilation completed successfully. I used the following command:
cmake --build build --config Release --target install
And there you can find the diff of the runtime/src/handler/map_handler.cpp file:
map_handler git diff
diff --git a/runtime/src/handler/map_handler.cpp b/runtime/src/handler/map_handler.cpp
index 6f19c3f..a7cb28b 100644
--- a/runtime/src/handler/map_handler.cpp
+++ b/runtime/src/handler/map_handler.cpp
@@ -804,6 +804,7 @@ int bpf_map_handler::map_init(managed_shared_memory &memory)
"CUDA context for thread {} has been set to {:x}",
gettid(), (uintptr_t)context);
}
+ SPDLOG_INFO(
"Map {} (nv_gpu_ringbuf_map_impl) has space for thread count {}",
container_name.c_str(), attr.gpu_thread_count);
map_impl_ptr = memory.construct<nv_gpu_ringbuf_map_impl>(
@@ -900,11 +901,6 @@ void bpf_map_handler::map_free(managed_shared_memory &memory) const
break;
#endif
-#if defined(BPFTIME_ENABLE_CUDA_ATTACH)
- case bpf_map_type::BPF_MAP_TYPE_NV_GPU_ARRAY_MAP:
- memory.destroy<nv_gpu_array_map_impl>(container_name.c_str());
- break;
-#endif
#if defined(BPFTIME_ENABLE_CUDA_ATTACH)
case bpf_map_type::BPF_MAP_TYPE_NV_GPU_ARRAY_MAP:
memory.destroy<nv_gpu_array_map_impl>(container_name.c_str());
### and 1.85.0
But these errors still keep showing up
### I tried with 1.83 and these errors are similar to the ones I faced with 1.85