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.
Attachment:
asmcheck.sh
Description: application/shellscript
$ ./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
_______________________________________________ arm mailing list arm@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/arm