The above one-liners do not pick up on files that end in ".so". Moreover, there are two such files that are not in fact shared objects....they're ASCII text. Also, since some of the vendor-specific objects are discovered to reintroduce the problem, it would be good to look in their directories.
The following version examines all shared objects for the alignment of interest in the directories of interest, and emits the name of the package that owns it (or whatever dpkg-query's error string is for unowned files). I've evolved and tested this over a few hours, and it seems to pick up everything.
warning: This version is not for the faint of CPU. It will run at least 6 minutes on a modern machine before emitting anything at all (due to the queuing of sort). It has not been optimized in any way, but it does spread across CPUs and I did like the self-regulating nature of its CPU usage.
for file in `find {/usr,}/lib{32,} -type f`; do if file $file | grep -q -e 'shared object'; then if objdump -x $file | grep -q -e '2\*\*20'; then dpkg-query -S `echo $file`; fi; fi; done | grep -o -e '.*:' | sort | uniq
The above one-liners do not pick up on files that end in ".so". Moreover, there are two such files that are not in fact shared objects....they're ASCII text. Also, since some of the vendor-specific objects are discovered to reintroduce the problem, it would be good to look in their directories.
The following version examines all shared objects for the alignment of interest in the directories of interest, and emits the name of the package that owns it (or whatever dpkg-query's error string is for unowned files). I've evolved and tested this over a few hours, and it seems to pick up everything.
warning: This version is not for the faint of CPU. It will run at least 6 minutes on a modern machine before emitting anything at all (due to the queuing of sort). It has not been optimized in any way, but it does spread across CPUs and I did like the self-regulating nature of its CPU usage.
for file in `find {/usr,}/lib{32,} -type f`; do if file $file | grep -q -e 'shared object'; then if objdump -x $file | grep -q -e '2\*\*20'; then dpkg-query -S `echo $file`; fi; fi; done | grep -o -e '.*:' | sort | uniq
Output to follow....