symbols-check: introduce new python script

I've re-written this in bash a couple times over the years, and then
I realised python is much more portable and already required by Mesa, so
we might as well make use of it.

I decided to still use the build system's NM instead of re-implementing
symbols extraction, to offload the complexity of keeping it compatible
with many systems (Linux, Unix, BSD, MacOS, etc.), especially when
cross-building.

This new script checks not only that nothing is exported when it
shouldn't be, but also that everything that should be exported is.
Sometimes, some symbols _can_ be exported but don't have to be, in which
case they can be prefixed with `(optional)`.

Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
Eric Engestrom
2018-10-11 13:08:42 +01:00
committed by Eric Engestrom
parent 62362a4abb
commit 176f350fcf
2 changed files with 116 additions and 0 deletions

View File

@@ -19,3 +19,4 @@
# SOFTWARE.
git_sha1_gen_py = files('git_sha1_gen.py')
symbols_check = find_program('symbols-check.py')