111986Sandreas.sandberg@arm.comfrom __future__ import print_function, division 211986Sandreas.sandberg@arm.comimport os 311986Sandreas.sandberg@arm.comimport sys 411986Sandreas.sandberg@arm.com 511986Sandreas.sandberg@arm.com# Internal build script for generating debugging test .so size. 611986Sandreas.sandberg@arm.com# Usage: 711986Sandreas.sandberg@arm.com# python libsize.py file.so save.txt -- displays the size of file.so and, if save.txt exists, compares it to the 811986Sandreas.sandberg@arm.com# size in it, then overwrites save.txt with the new size for future runs. 911986Sandreas.sandberg@arm.com 1011986Sandreas.sandberg@arm.comif len(sys.argv) != 3: 1111986Sandreas.sandberg@arm.com sys.exit("Invalid arguments: usage: python libsize.py file.so save.txt") 1211986Sandreas.sandberg@arm.com 1311986Sandreas.sandberg@arm.comlib = sys.argv[1] 1411986Sandreas.sandberg@arm.comsave = sys.argv[2] 1511986Sandreas.sandberg@arm.com 1611986Sandreas.sandberg@arm.comif not os.path.exists(lib): 1711986Sandreas.sandberg@arm.com sys.exit("Error: requested file ({}) does not exist".format(lib)) 1811986Sandreas.sandberg@arm.com 1911986Sandreas.sandberg@arm.comlibsize = os.path.getsize(lib) 2011986Sandreas.sandberg@arm.com 2111986Sandreas.sandberg@arm.comprint("------", os.path.basename(lib), "file size:", libsize, end='') 2211986Sandreas.sandberg@arm.com 2311986Sandreas.sandberg@arm.comif os.path.exists(save): 2411986Sandreas.sandberg@arm.com with open(save) as sf: 2511986Sandreas.sandberg@arm.com oldsize = int(sf.readline()) 2611986Sandreas.sandberg@arm.com 2711986Sandreas.sandberg@arm.com if oldsize > 0: 2811986Sandreas.sandberg@arm.com change = libsize - oldsize 2911986Sandreas.sandberg@arm.com if change == 0: 3011986Sandreas.sandberg@arm.com print(" (no change)") 3111986Sandreas.sandberg@arm.com else: 3211986Sandreas.sandberg@arm.com print(" (change of {:+} bytes = {:+.2%})".format(change, change / oldsize)) 3311986Sandreas.sandberg@arm.comelse: 3411986Sandreas.sandberg@arm.com print() 3511986Sandreas.sandberg@arm.com 3611986Sandreas.sandberg@arm.comwith open(save, 'w') as sf: 3711986Sandreas.sandberg@arm.com sf.write(str(libsize)) 3811986Sandreas.sandberg@arm.com 39