This patch add '-p' argument with the arch prefix, in order to call target-specific readelf for bloat-o-meter report. It is useful when cross compiling busybox with specific toolchain, in case host's native readelf does not work. '-p' help msg is leveraging linux kernel's bloat-o-meter. For example, the arch prefix is 'arm-linux-gnu-': ./scripts/bloat-o-meter -p arm-linux-gnu- busybox_unstripped_{old,new}
Signed-off-by: Jones Syue <joness...@qnap.com> --- scripts/bloat-o-meter | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/scripts/bloat-o-meter b/scripts/bloat-o-meter index 72b0693764bf..21dff3e4bf8d 100755 --- a/scripts/bloat-o-meter +++ b/scripts/bloat-o-meter @@ -19,6 +19,9 @@ parser.add_argument('-t', action='store_true', help='Show time spent on parsing/processing') parser.add_argument('--', dest='opt', default='', help='Pass additional parameters to readelf, e.g. --="-a"') +parser.add_argument('-p', dest='prefix', default='', + help='Arch prefix for the tool being used. Useful in ' + 'cross build scenarios. e.g. -p arm-linux-gnu-') parser.add_argument('file1', help='Old file to compare, ' 'e.g. busybox_unstripped_old') parser.add_argument('file2', help='New file to compare, ' @@ -30,7 +33,10 @@ if args.t: def getsizes(file): sym, alias, lut, section = {}, {}, {}, {} - for l in os.popen("readelf -W -S " + file).readlines(): + readelf = 'readelf' + if args.prefix: + readelf = "%sreadelf" % (args.prefix) + for l in os.popen("%s -W -S %s" % (readelf, file)).readlines(): x = l.replace("[ ", "[", 1).split() if len(x)<6: continue # Should take these into account too! @@ -38,7 +44,7 @@ def getsizes(file): if x[1] not in [".rodata"]: continue sym[x[1]] = {"addr" : int(x[3], 16), "size" : int(x[5], 16)} section[x[0][1:-1]] = {"name" : x[1]} - for l in os.popen("readelf -W -s %s %s" % (args.opt, file)).readlines(): + for l in os.popen("%s -W -s %s %s" % (readelf, args.opt, file)).readlines(): l = l.strip() if not (len(l) and l[0].isdigit() and len(l.split()) == 8): continue -- 2.1.4 _______________________________________________ busybox mailing list busybox@busybox.net http://lists.busybox.net/mailman/listinfo/busybox