blob: 25e97f368bb18b5ed84824f6ab2125b93bf2b581 [file] [log] [blame]
#!/usr/bin/env python3
"""Test script that checks if zlib was statically linked to executable"""
import subprocess
import sys
def handle_common(path):
"""Handle the common case."""
try:
output = subprocess.check_output(['nm', '--defined-only', '-P', '-A', path]).decode('utf-8')
except subprocess.CalledProcessError:
# some NMs only support -U. Older binutils only supports --defined-only.
output = subprocess.check_output(['nm', '-UPA', path]).decode('utf-8')
# POSIX format. Prints all *defined* symbols, looks like this:
# builddir/main_static: zlibVersion T 1190 39
# or
# builddir/main_static: zlibVersion D 1fde0 30
if ': zlibVersion ' in output:
return 0
return 1
def handle_cygwin(path):
"""Handle the Cygwin case."""
output = subprocess.check_output(['nm', path]).decode('utf-8')
if (('I __imp_zlibVersion' in output) or ('D __imp_zlibVersion' in output)):
return 1
return 0
def main():
"""Main function"""
if len(sys.argv) > 2 and sys.argv[1] == '--platform=cygwin':
return handle_cygwin(sys.argv[2])
else:
return handle_common(sys.argv[2])
if __name__ == '__main__':
sys.exit(main())