embench/embench-iot

EMB2.0: Update python build scripts

Opened this issue · 1 comments

For embench-iot 2.0 we discussed that we would like to modernize/update the python build scripts.
@wallento wanted to take a look at it if I'm correct.

Some things that we could address:

  • change the --target-module speed benchmarking architecture.
    • It might be better to use callbacks/a more flexible approach that doesn't rely on a user-constructed shell command.
  • use a more declarative framework such as doit
  • reduce usage of global data/variables
  • update the benchmark size computation
    • right now, the size is computed via hardcoded section names, however, some sections aren't accounted for: e.g. .eh_frame, .got, .init, .plt, maybe we should instead sum up all MemSiz fields of all segments that get loaded?

Quick update:

  • building now uses scons and a simpler/flat configuration strucure that utilizes the command line more.
  • the size benchmarks now only work on ELF (no macho on embedded devices) and instead uses section flags to associate sections with metrics.
  • the speed benchmark now uses a simpler/more abstract interface to user modules

@jeremybennett i tried install lief on Ubuntu using apt install python3 python3-pip && pip3 install lief and it seemed to work. Are you sure we need to swap out the elf parsing library? I couldn't replicate the problem with an Ubuntu install myself.