Add support for listing missing POSIX 2013 symbols.
Change-Id: Ic51787890f837f74a22ca63d64a5710474d00cbc
diff --git a/libc/tools/check-symbols-glibc.py b/libc/tools/check-symbols-glibc.py
index 8bcf7fc..0c7e28e 100755
--- a/libc/tools/check-symbols-glibc.py
+++ b/libc/tools/check-symbols-glibc.py
@@ -16,6 +16,14 @@
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 = 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)
@@ -190,6 +199,11 @@
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:'
allowed_stuff = (bsd_stuff | FORTIFY_stuff | linux_stuff | macro_stuff |