aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2011-10-07 22:01:44 -0400
committerAnthony G. Basile <blueness@gentoo.org>2011-10-08 14:53:27 -0400
commit1e697a073206588f60492585463333f6d3039f02 (patch)
tree4c563cc6d15d61ecc0acde2f3dfdd48569198fa6 /scripts
parentscripts/revdep-pax: fixed two bugs (diff)
downloadelfix-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-xscripts/revdep-pax40
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()