DataDog/libddwaf

Stripped release artefacts with separate debug information

Julio-Guerra opened this issue · 2 comments

The current release artefacts are very big and some Go users complained about their size. dd-trace-go currently strip the unneeded symbols and the entire debug information in a script but we believe the build artefacts published by this repository should do it by:

  1. stripping the library at link time
  2. still providing the debug information but in a separate file (the commonly found *.dbg files)

The resulting files are up to 10x smaller (eg. for linux/amd64, from 31MB to 3MB), especially for cases with the LLVM libc++ library which includes the entire standard C++ library with its debug information.

Side note: do you think we could compile with -fno-omit-frame-pointer to be able to perform code profiling with call-stack's unwinding relying on the frame pointer. I don't think we would get any significant performance degradation.

Note that the dwarf stack unwinding works, but Go doesn't do it, so we are always need to recompile the WAF to flamegraph our WAF benchmarks.

Anilm3 commented

This should be the case already (including -fno-omit-frame-pointer) although feel free to reopen if I missed something.