cygprofile: Add support for ThinLTO in extract_symbols.py.

Now that ThinLTO is used, object files no longer contain executable code, only
LLVM bitcode. As a consequence, it is no longer possible to visualize the code
-> object file mapping.

extract_symbols.py can be used to overlay the native library code range with the
provenance of its code. It generates a HTML visualization of the native library
layout, and is used to investigate and assess code ordering.

To get it back, use llvm-nm instead of objdump to get the list of symbols. This
requires a change to clang scripts, as llvm-nm isn't built with clang yet.

Also fixes a few lint warnings.

Bug: 758566
Change-Id: I860e2a44132eb05b369c8c8a27a26776267611e2
Reviewed-on: https://chromium-review.googlesource.com/c/1409502
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#622486}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 8c656bb971d5f30a98c48767617b0c2620036d79
1 file changed