On Fri, Oct 05, 2007 at 02:00:37PM -0400, Jeff Layton wrote: > On Fri, 05 Oct 2007 13:30:10 -0400 > Valdis.Kletnieks@vt.edu wrote: > > > > How does Joe Sysadmin tell if he has an affected legacy app or not? > > > > (The obvious "try it and see what breaks" is a non-starter for many places, > > because you too easily end up in a loop of "enable it, find 4-5 show stoppers, > > turn it off, fix them, lather rinse repease". Been there, done that, got > > the tshirt - a project I got dragged into involves a large storage array that > > appears to insist on exporting 64-bit stuff, and a large farm of clients that > > are very 64-bit unclean....) > > > > In addition to Trond's suggestion, you might be able to use "nm" or > something like it and see if there are references to non-LFS (f)stat > calls in your binaries. For instance, if you see references to stat() > (and not stat64()), then the app is probably not built with 64-bit file > offsets. Attached is a Perl script I wrote a while back to scan directories looking for old stat calls in binaries. Here's the output from my laptop: # ./summarise-stat64.pl /usr/bin 775 26.8% are scripts (shell, perl, whatever) 1404 48.5% don't use any stat() family calls at all 428 14.8% use 32-bit stat() family interfaces only 278 9.6% use 64-bit stat64() family interfaces only 11 0.4% use both 32-bit and 64-bit stat() family interfaces # ./summarise-stat64.pl /usr/sbin 164 35.7% are scripts (shell, perl, whatever) 170 37.0% don't use any stat() family calls at all 78 17.0% use 32-bit stat() family interfaces only 46 10.0% use 64-bit stat64() family interfaces only 1 0.2% use both 32-bit and 64-bit stat() family interfaces # ./summarise-stat64.pl -v /usr/bin ... /usr/bin/vi use 32-bit stat() family interfaces only /usr/bin/view use 32-bit stat() family interfaces only /usr/bin/vim use 32-bit stat() family interfaces only ... /usr/bin/Mail use 32-bit stat() family interfaces only /usr/bin/mail use 32-bit stat() family interfaces only /usr/bin/mailx use 32-bit stat() family interfaces only ... /usr/bin/gdb use 32-bit stat() family interfaces only /usr/bin/gdbtui use 32-bit stat() family interfaces only /usr/bin/rpcgen use 32-bit stat() family interfaces only ... /usr/bin/cc use 32-bit stat() family interfaces only /usr/bin/gcc use 32-bit stat() family interfaces only /usr/bin/gcov use 32-bit stat() family interfaces only /usr/bin/unprotoize use 32-bit stat() family interfaces only ... /usr/bin/git use 32-bit stat() family interfaces only /usr/bin/git-check-ref-format use 32-bit stat() family interfaces only /usr/bin/git-cat-file use 32-bit stat() family interfaces only /usr/bin/git-checkout-index use 32-bit stat() family interfaces only /usr/bin/git-clone-pack use 32-bit stat() family interfaces only /usr/bin/git-commit-tree use 32-bit stat() family interfaces only /usr/bin/git-convert-objects use 32-bit stat() family interfaces only /usr/bin/git-daemon use 32-bit stat() family interfaces only /usr/bin/git-describe use 32-bit stat() family interfaces only ... Greg. -- Greg Banks, R&D Software Engineer, SGI Australian Software Group. Apparently, I'm Bedevere. Which MPHG character are you? I don't speak for SGI.