As reported by Slawa Olhovchenkov on freebsd-arch, pmcannotate relies on objdump, which may be removed. It passes the --start-address and --end-address command-line args. These are supported by llvm-objdump, so we could check for both objdump and llvm-objdump in $PATH.
Looks like pmcannotate uses those flags to dump disassemblies (-d) and source (-S) of specific address ranges, and parses the text output. Is llvm-objdump output byte-for-byte compatible here (or compatible enough)? Would it make more sense to have pmcannotate link part of llvm instead of shelling out and parsing?
It's not byte-for-byte identical, but I'm sure we could update any parsing/expressions in pmcannotate to handle either case with relative ease. Linking against libllvm indeed seems like a reasonable 2nd step but I don't want to wait on that happening.
Mark also found tools/tools/shlib-compat/shlib-compat.py using objdump
tools/tools also contains, e.g., scripts that use Python, which is clearly not in base. Is shlib-compat something that should be moved out of tools/tools? If not, I think its dependency on objdump can safely be ignored.
(In reply to Conrad Meyer from comment #4) Yes for stuff in tools/ I think it's fair for the user to install both python and GNU binutils