fix bloat-o-meter for ppc64

bloat-o-meter assumes that a '.' anywhere in a symbol's name means that it
is static and prepends 'static.' to the first part of the symbol name,
discarding the portion of the name that follows the '.'.  However, the
names of function entry points begin with '.' in the ppc64 ABI.  This
causes all function text size changes to be accounted to a single 'static.'
entry in the output when comparing ppc64 kernels.

Change getsizes() to ignore the first character of the symbol name when
searching for '.'.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Cc: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Nathan Lynch 2007-12-17 16:20:09 -08:00 committed by Linus Torvalds
parent bb8e8bcce7
commit 8998979cc1

View file

@ -18,7 +18,8 @@ def getsizes(file):
for l in os.popen("nm --size-sort " + file).readlines(): for l in os.popen("nm --size-sort " + file).readlines():
size, type, name = l[:-1].split() size, type, name = l[:-1].split()
if type in "tTdDbB": if type in "tTdDbB":
if "." in name: name = "static." + name.split(".")[0] # function names begin with '.' on 64-bit powerpc
if "." in name[1:]: name = "static." + name.split(".")[0]
sym[name] = sym.get(name, 0) + int(size, 16) sym[name] = sym.get(name, 0) + int(size, 16)
return sym return sym