[fedora-arm] Assembly scanning tool

Jon Masters jcm at redhat.com
Sun Jul 8 06:05:24 UTC 2012


Folks,

The attached script is a very simple first stab at an assembly scanning
tool. We can use it to iterate over packages in the distro, looking for
anything that uses inline or dedicated assembly files. Examples too.

I was frankly surprised that bash had such "optimizations" :)

Jon.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: asmcheck.sh
Type: application/x-shellscript
Size: 4964 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/arm/attachments/20120708/21e67358/attachment.bin>
-------------- next part --------------
$ ./asmcheck.sh openmpi-1.6-2.fc18.src.rpm
Summary for package: openmpi-1.6-2.fc18.src.rpm
	Assembly source files: 26
	Inline assembly usage: 19
	Total number of files: 45
	
	Assembly source files:
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_comp_ftrace_1.s
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_metric_necsx_1.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc64-osx.s
		./openmpi-1.6/opal/asm/generated/atomic-alpha-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-mips-irix.s
		./openmpi-1.6/opal/asm/generated/atomic-sparcv9-64-solaris.s
		./openmpi-1.6/opal/asm/generated/atomic-ia64-linux-nongas.s
		./openmpi-1.6/opal/asm/generated/atomic-sparc-solaris.s
		./openmpi-1.6/opal/asm/generated/atomic-ia32-linux-nongas.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc32-64-osx.s
		./openmpi-1.6/opal/asm/generated/atomic-ia32-osx.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc64-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-ia32-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-ia64-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-amd64-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-ia32-cygwin-nongas.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc64-linux-nongas.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc32-linux-nongas.s
		./openmpi-1.6/opal/asm/generated/atomic-sparcv9-32-solaris.s
		./openmpi-1.6/opal/asm/generated/atomic-ia32-cygwin.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc64-aix.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc32-osx.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc32-aix.s
		./openmpi-1.6/opal/asm/generated/atomic-powerpc32-linux.s
		./openmpi-1.6/opal/asm/generated/atomic-mips64el.s
		./openmpi-1.6/opal/asm/generated/atomic-amd64-linux-nongas.s
	
	Inline assembly usage:
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_pform_macos.c (5)
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_pform_crayxt.c (1)
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_pform_crayxe.c (1)
		./openmpi-1.6/ompi/contrib/vt/vt/vtlib/vt_pform_linux.c (7)
		./openmpi-1.6/opal/include/opal/sys/ia64/atomic.h (9)
		./openmpi-1.6/opal/include/opal/sys/ia64/timer.h (1)
		./openmpi-1.6/opal/include/opal/sys/sparcv9/atomic.h (3)
		./openmpi-1.6/opal/include/opal/sys/sparcv9/timer.h (2)
		./openmpi-1.6/opal/include/opal/sys/powerpc/atomic.h (3)
		./openmpi-1.6/opal/include/opal/sys/powerpc/timer.h (3)
		./openmpi-1.6/opal/include/opal/sys/arm/atomic.h (4)
		./openmpi-1.6/opal/include/opal/sys/amd64/atomic.h (1)
		./openmpi-1.6/opal/include/opal/sys/amd64/timer.h (2)
		./openmpi-1.6/opal/include/opal/sys/ia32/atomic.h (1)
		./openmpi-1.6/opal/include/opal/sys/ia32/timer.h (1)
		./openmpi-1.6/opal/include/opal/sys/alpha/atomic.h (3)
		./openmpi-1.6/opal/include/opal/sys/sparc/atomic.h (3)
		./openmpi-1.6/opal/include/opal/sys/mips/atomic.h (5)
		./openmpi-1.6/opal/mca/memory/linux/sysdeps/generic/malloc-machine.h (1)
		./openmpi-1.6/opal/mca/memory/linux/sysdeps/pthread/malloc-machine.h (1)

$ ./asmcheck.sh bash-4.2.29-3.fc18.src.rpm
Summary for package: bash-4.2.29-3.fc18.src.rpm
	Assembly source files: 2
	Inline assembly usage: 0
	Total number of files: 2
	
	Assembly source files:
		./bash-4.2/lib/malloc/x386-alloca.s
		./bash-4.2/lib/malloc/i386-alloca.s
	
$ ./asmcheck.sh fedora-release-18-0.4.src.rpm
Summary for package: fedora-release-18-0.4.src.rpm
	Assembly source files: 0
	Inline assembly usage: 0
	Total number of files: 0
	


More information about the arm mailing list