From f14f7fc5cad5cac1a0913b85c8304f6fb77697ad Mon Sep 17 00:00:00 2001
From: Rob Landley
Date: Mon, 29 May 2006 20:56:27 +0000
Subject: Teach bloatometer about .rodata, and tweak the display into something
 that has a better chance of getting merged.

---
 scripts/bloat-o-meter | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

(limited to 'scripts')

diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter
index e7e16b5..31364fe 100755
--- a/scripts/bloat-o-meter
+++ b/scripts/bloat-o-meter
@@ -20,6 +20,10 @@ def getsizes(file):
         if type in "tTdDbB":
             if "." in name: name = "static." + name.split(".")[0]
             sym[name] = sym.get(name, 0) + int(size, 16)
+    for l in os.popen("readelf -S " + file).readlines():
+        x = l.split()
+        if len(x)<6 or x[1] != ".rodata": continue
+        sym[".rodata"] = int(x[5], 16)
     return sym
 
 old = getsizes(sys.argv[1])
@@ -52,12 +56,10 @@ for name in common:
 delta.sort()
 delta.reverse()
 
-print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \
-      (add, remove, grow, shrink, up, -down, up-down)
-print "%-40s %7s %7s %+7s" % ("function", "old", "new", "delta")
+print "%-48s %7s %7s %+7s" % ("function", "old", "new", "delta")
 for d, n in delta:
-    if d: print "%-40s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)
-print "----------------------------------------------------------------"
-s=")"
-if (up-down)>=0: s="("
-print "Result                                                :-%s%+7d" % (s, up-down)
+    if d: print "%-48s %7s %7s %+7d" % (n, old.get(n,"-"), new.get(n,"-"), d)
+print "-"*78
+total="(add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s)%%sTotal: %s bytes"\
+    % (add, remove, grow, shrink, up, -down, up-down)
+print total % (" "*(80-len(total)))
-- 
cgit v1.1