devtools: Exclude default exports from symbol-checker script

See discussion in #4663.
This commit is contained in:
Wladimir J. van der Laan 2014-08-17 10:06:20 +02:00
parent 2eb3c85c9a
commit 27116e87cc
No known key found for this signature in database
GPG key ID: 74810B012346C9A6

View file

@ -41,6 +41,10 @@ MAX_VERSIONS = {
'GLIBCXX': (3,4,13), 'GLIBCXX': (3,4,13),
'GLIBC': (2,11) 'GLIBC': (2,11)
} }
# Ignore symbols that are exported as part of every executable
IGNORE_EXPORTS = {
'_edata', '_end', '_init', '__bss_start', '_fini'
}
READELF_CMD = '/usr/bin/readelf' READELF_CMD = '/usr/bin/readelf'
CPPFILT_CMD = '/usr/bin/c++filt' CPPFILT_CMD = '/usr/bin/c++filt'
@ -105,6 +109,8 @@ if __name__ == '__main__':
retval = 1 retval = 1
# Check exported symbols # Check exported symbols
for sym,version in read_symbols(filename, False): for sym,version in read_symbols(filename, False):
if sym in IGNORE_EXPORTS:
continue
print('%s: export of symbol %s not allowed' % (filename, cppfilt(sym))) print('%s: export of symbol %s not allowed' % (filename, cppfilt(sym)))
retval = 1 retval = 1