diff options
Diffstat (limited to 'utils/analysis/objdiff.py')
-rwxr-xr-x | utils/analysis/objdiff.py | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/utils/analysis/objdiff.py b/utils/analysis/objdiff.py index dc51441bfa..29f703e52a 100755 --- a/utils/analysis/objdiff.py +++ b/utils/analysis/objdiff.py | |||
@@ -3,10 +3,10 @@ import sys | |||
3 | from subprocess import Popen, PIPE | 3 | from subprocess import Popen, PIPE |
4 | 4 | ||
5 | if len(sys.argv) != 3: | 5 | if len(sys.argv) != 3: |
6 | print """%s usage: | 6 | print ("""%s usage: |
7 | %s obj1 obj2 | 7 | %s obj1 obj2 |
8 | Calculate per-symbol and total size differences between obj1 and obj2, | 8 | Calculate per-symbol and total size differences between obj1 and obj2, |
9 | which may be any files that nm can read""" % ((sys.argv[0],)*2) | 9 | which may be any files that nm can read""" % ((sys.argv[0],)*2)) |
10 | sys.exit(2) | 10 | sys.exit(2) |
11 | 11 | ||
12 | obj1 = sys.argv[1] | 12 | obj1 = sys.argv[1] |
@@ -16,8 +16,8 @@ def getsyms(obj): | |||
16 | proc = Popen(args=['nm', '-S', '-t', 'd', obj], stdout=PIPE, stderr=PIPE) | 16 | proc = Popen(args=['nm', '-S', '-t', 'd', obj], stdout=PIPE, stderr=PIPE) |
17 | out, err = proc.communicate() | 17 | out, err = proc.communicate() |
18 | if err: | 18 | if err: |
19 | print "nm reported an error:\n" | 19 | print ("nm reported an error:\n") |
20 | print err | 20 | print (err) |
21 | sys.exit(1) | 21 | sys.exit(1) |
22 | d = {} | 22 | d = {} |
23 | for l in out.splitlines(): | 23 | for l in out.splitlines(): |
@@ -32,23 +32,23 @@ d1 = getsyms(obj1) | |||
32 | d2 = getsyms(obj2) | 32 | d2 = getsyms(obj2) |
33 | l = [(k,v) for k,v in sorted(d1.items()) if k not in d2] | 33 | l = [(k,v) for k,v in sorted(d1.items()) if k not in d2] |
34 | if l: | 34 | if l: |
35 | print "only in %s" % obj1 | 35 | print ("only in %s" % obj1) |
36 | print ''.join(" %6d %s\n" % (v,k) for k,v in l) | 36 | print (''.join(" %6d %s\n" % (v,k)) for k,v in l) |
37 | diff -= sum(v for k,v in l) | 37 | diff -= sum(v for k,v in l) |
38 | 38 | ||
39 | l = [(k,v) for k,v in sorted(d2.items()) if k not in d1] | 39 | l = [(k,v) for k,v in sorted(d2.items()) if k not in d1] |
40 | if l: | 40 | if l: |
41 | print "only in %s" % obj2 | 41 | print ("only in %s" % obj2) |
42 | print ''.join("%6d %s\n" % (v,k) for k,v in l) | 42 | print (''.join("%6d %s\n" % (v,k)) for k,v in l) |
43 | diff += sum(v for k,v in l) | 43 | diff += sum(v for k,v in l) |
44 | 44 | ||
45 | l = [(k,v,d2[k]) for k,v in sorted(d1.items()) if k in d2 and d2[k] != v] | 45 | l = [(k,v,d2[k]) for k,v in sorted(d1.items()) if k in d2 and d2[k] != v] |
46 | if l: | 46 | if l: |
47 | print "different sizes in %s and %s:" %(obj1, obj2) | 47 | print ("different sizes in %s and %s:" %(obj1, obj2)) |
48 | print ''.join(" %6d %6d %s\n" % (v1,v2,k) for k,v1,v2 in l) | 48 | print (''.join(" %6d %6d %s\n" % (v1,v2,k)) for k,v1,v2 in l) |
49 | diff += sum(v2-v1 for k,v1,v2 in l) | 49 | diff += sum(v2-v1 for k,v1,v2 in l) |
50 | 50 | ||
51 | if diff: | 51 | if diff: |
52 | print "total size difference: %+d" % diff | 52 | print ("total size difference: %+d" % diff) |
53 | else: | 53 | else: |
54 | print "total size difference: 0" | 54 | print ("total size difference: 0") |