Add symbol checking scripts for extracting a list of symbols from shared libraries and for comparing symbol lists for differences.
Details
Diff Detail
Event Timeline
Ping. It would be really nice to get this in the trunk. I've discovered that the shared library more symbols when building in debug mode compared to release. I would like to get this in before I start working on that problem.
util/sym_check/sym_check/extract.py | ||
---|---|---|
56 ↗ | (On Diff #12593) | IMO, it would be nice if this worked with llvm-nm. |
That can definitively be supported. Initial investigation shows that llvm-nm has a different POSIX output format compared to nm on linux and mac, but all of the same information is there.
llvm-nm also outputs about 1200 more symbols that in any of my current baselines. I'll get it working tonight.
Thanks for looking at this.
Alright, I added support for llvm-nm. Since llvm-nm's posix output is broken it uses the BSD format and adds the size field.
I also changed the size field to be extracted as an integer as opposed to a string to deal with the leading zeros. I reformatted all of the baselines to reflect this.
I fixed the way that the check-libcxx-symbols rule is generated when no ABI library is passed to CMake on Apple. In this case it passes "libcxxabi" to sym_check as the ABI library.
Ping. I've removed all functionality relating to generating and checking baseline symbol lists. Now the scripts only extract and diff symbol lists.