Topics

BCC support for ARM

Jugurtha BELKALEM
 

Hi;

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?