We're trying to integrate bcc as a package in buildroot with the configuration shown below: - Target board : Raspberry PI 3. - Toolchain : Arm ARM 2018.11 - LLVM 7.0.1
However, buildroot includes only "LuaJIT 2.0.5"(which does not support ARM64).
So we have decided to use ARM32, which seems like bcc does not have a support for.
The build system returned the following errors :
buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:65:14: error: ‘parser’ was not declared in this scope REQUIRE(!parser.parse(&arg)); ^~~~~~ buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:65:14: note: suggested alternative: ‘pause’ buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:65:14: error: ‘parser’ was not declared in this scope REQUIRE(!parser.parse(&arg)); ^~~~~~ buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:65:14: note: suggested alternative: ‘pause’ buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:156:13: error: ‘parser’ was not declared in this scope REQUIRE(parser.done()); ^~~~~~ buildroot/output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:156:13: note: suggested alternative: ‘pause’ output/build/bcc-v0.8.0/tests/cc/test_usdt_args.cc:156:13: error: ‘parser’ was not declared in this scope REQUIRE(parser.done());
Taking a close look to the file "test_usdt_args.cc" shows support for few architectures (which does not include ARM32):
#ifdef __aarch64__ USDT::ArgumentParser_aarch64 parser("4@[x32,200]"); #elif __powerpc64__ USDT::ArgumentParser_powerpc64 parser("4@-12(42)"); #elif defined(__x86_64__) USDT::ArgumentParser_x64 parser("4@i%ra+1r"); #endif USDT::Argument arg; REQUIRE(!parser.parse(&arg)); int i; for (i = 0; i < 10 && !parser.done(); ++i) { parser.parse(&arg); } // Make sure we reach termination REQUIRE(i < 10); } SECTION("argument examples from the Python implementation") {
I'm wondering if there is a list of exhaustive supported architectures in bcc and if there is any current works which aim to include support for ARM32?