#!/usr/bin/env python

import sys, os

symbols = {}

separator = sys.argv.index('--')
binaries = sys.argv[1:separator]
libraries = sys.argv[separator+1:]

print binaries
print libraries

for binary in libraries:
    lines = os.popen('nm -g %s' % binary).readlines()

    for line in map(lambda l: l.split(), lines):
        if len(line) != 3: continue

        radix, symtype, symbol = line

        if symtype == 'T':
            symbols[symbol] = False

print "%u symbols defined in text segment" % (len(symbols))

for binary in binaries:
    lines = os.popen('nm -g %s' % binary).readlines()

    for line in map(lambda l: l.split(), lines):
        if len(line) != 3: continue

        radix, symtype, symbol = line

        if symtype == 'T' and symbol in symbols:
            symbols[symbol] = True

unused_syms = filter(lambda (k, v): v == False, symbols.iteritems())

print "%u unused symbols defined in text segment" % (len(unused_syms))

for k, v in unused_syms: print k
