Add support for listing missing POSIX 2013 symbols.

Change-Id: Ic51787890f837f74a22ca63d64a5710474d00cbc
This commit is contained in:
Elliott Hughes
2014-11-05 16:22:26 -08:00
parent 2311383180
commit 6370aedd0e
2 changed files with 1205 additions and 0 deletions

View File

@@ -16,6 +16,14 @@ arch = re.sub(r'.*/linux-x86/([^/]+)/.*', r'\1', toolchain)
if arch == 'aarch64':
arch = 'arm64'
def GetSymbolsFromTxt(txt_file):
symbols = set()
f = open(txt_file, 'r')
for line in f.read().splitlines():
symbols.add(line)
f.close()
return symbols
def GetSymbolsFromSo(so_file):
# Example readelf output:
# 264: 0001623c 4 FUNC GLOBAL DEFAULT 8 cabsf
@@ -75,6 +83,7 @@ glibc_to_bionic_names = {
glibc = GetSymbolsFromSystemSo('libc.so.*', 'librt.so.*', 'libpthread.so.*', 'libresolv.so.*', 'libm.so.*')
bionic = GetSymbolsFromAndroidSo('libc.so', 'libm.so')
posix = GetSymbolsFromTxt(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'posix-2013.txt'))
ndk_ignored = GetNdkIgnored()
glibc = map(MangleGlibcNameToBionic, glibc)
@@ -189,6 +198,11 @@ if not only_unwanted:
for symbol in sorted(bionic):
print symbol
print
print 'in posix but not bionic:'
for symbol in sorted(posix.difference(bionic)):
print symbol
print
print 'in bionic but not glibc:'

1191
libc/tools/posix-2013.txt Normal file

File diff suppressed because it is too large Load Diff