diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2011-10-07 22:01:44 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2011-10-08 14:53:27 -0400 |
commit | 1e697a073206588f60492585463333f6d3039f02 (patch) | |
tree | 4c563cc6d15d61ecc0acde2f3dfdd48569198fa6 /scripts | |
parent | scripts/revdep-pax: fixed two bugs (diff) | |
download | elfix-1e697a073206588f60492585463333f6d3039f02.tar.gz elfix-1e697a073206588f60492585463333f6d3039f02.tar.bz2 elfix-1e697a073206588f60492585463333f6d3039f02.zip |
scripts/revdep-pax: completed four command line options
-f all forward linkings from binary to their libraries
-r all reverse linkings from libraries to binaries that consume them
-b binary - forward mapping for given binary
-s soname - reverse mapping for given library identified by soname
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/revdep-pax | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/scripts/revdep-pax b/scripts/revdep-pax index 98a2985..e91a964 100755 --- a/scripts/revdep-pax +++ b/scripts/revdep-pax @@ -143,7 +143,7 @@ def usage(): def main(): try: - opts, args = getopt.getopt(sys.argv[1:], 'hfrb:l:') + opts, args = getopt.getopt(sys.argv[1:], 'hfrb:s:') except getopt.GetoptError, err: print str(err) # will print something like 'option -a not recognized' usage() @@ -156,7 +156,7 @@ def main(): do_forward = False do_reverse = False binary = None - library = None + soname = None for o, a in opts: @@ -169,8 +169,8 @@ def main(): do_reverse = True elif o == '-b': binary = a - elif o == '-l': - library = a + elif o == '-s': + soname = a else: print 'Option included in getopt but not handled here!' usage() @@ -188,20 +188,32 @@ def main(): if binary != None: ( forward_linkings, so2filename_mappings ) = get_forward_linkings() linkings = forward_linkings[binary] - print linkings - """ - try: - filename = so2filename_mappings[binary] - flags = pax.getflags(filename) - print binary, '\t', filename, '(', flags, ')' - except: - print "%s doesn't link to anything that I know of" % binary - """ + flags = pax.getflags(binary) + print binary, '(', flags, ')' + for soname in linkings: + try: + filename = so2filename_mappings[soname] + flags = pax.getflags(filename) + print '\t', soname, '\t', filename, '(', flags, ')' + except: + print "file for soname %s not found" % soname - if library !=None: + if soname !=None: ( forward_linkings, so2filename_mappings ) = get_forward_linkings() reverse_linkings = invert_linkings( forward_linkings ) + linkings = reverse_linkings[soname] + library = so2filename_mappings[soname] + + flags = pax.getflags(library) + print soname, '\t', library, '(', flags, ')' + for binary in linkings: + try: + flags = pax.getflags(binary) + print '\t', binary, '(', flags, ')' + except: + print "cannot obtain pax flags for %s" % binary + if __name__ == '__main__': main() |