XFS recently defaulted to allowing > 32 bit inode numbers, and btrfs can let inode
numbers creep past 2^32 as well.
While most applications don't care one bit about st_ino returned from a stat() call,
the sad fact is that you'll get EOVERFLOW from stat32 if the inode number is too big
to fit in 32 bits, even if you just wanted to get the file size.
I have a script (
http://sandeen.net/misc/summarise_stat.pl) which Greg Banks wrote; it can
check a path or list of filenames for binaries which contain non-64bit-safe stat calls. A
quick look over my F18 install finds the situation to be only slightly in favor of
executables using 64-bit variants:
# ./summarize-stat.pl /usr
270229 91.5% are scripts (shell, perl, whatever)
22633 7.7% don't use any stat() family calls at all
913 0.3% use 32-bit stat() family interfaces only
1335 0.5% use 64-bit stat64() family interfaces only
73 0.0% use both 32-bit and 64-bit stat() family interfaces
and it's not just weird obscure packages:
# ./summarize-stat.pl `rpm -ql sendmail`
69 78.4% are scripts (shell, perl, whatever)
2 2.3% don't use any stat() family calls at all
17 19.3% use 32-bit stat() family interfaces only
Anyway, if you want to check your package(s) and maybe make them 64-bit-stat safe, the
perl script above might help. It's more than just -DFILE_OFFSET_BITS=64, since
you'll need to be sure not to overflow any large values you get back from stat64 etc.
Might be nice to get out ahead of this before, say, btrfs comes into wide use. I
don't know if there could be any more of a formal effort in this direction?
Thanks,
-Eric
p.s. here's a list of what was on my system that turned up hits:
advancecomp-1.15-17.fc18.src.rpm
alsa-tools-1.0.26.1-1.fc18.src.rpm
at-3.1.13-10.fc18.src.rpm
bc-1.06.95-7.fc18.src.rpm
bluez-4.101-6.fc18.src.rpm
brltty-4.3-12.fc18.src.rpm
ccache-3.1.9-1.fc18.src.rpm
cdparanoia-10.2-12.fc18.src.rpm
cdrdao-1.2.3-16.fc18.src.rpm
checkpolicy-2.1.11-2.fc18.src.rpm
crash-6.0.8-2.fc18.src.rpm
cronie-1.4.10-1.fc18.src.rpm
cscope-15.8-3.fc18.src.rpm
ctags-5.8-9.fc18.src.rpm
dbus-1.6.8-2.fc18.src.rpm
dbus-glib-0.100-1.fc18.src.rpm
dconf-0.14.1-3.fc18.src.rpm
deltarpm-3.6-0.11.20110223git.fc18.src.rpm
diffstat-1.55-2.fc18.src.rpm
doxygen-1.8.3-3.fc18.src.rpm
dvd+rw-tools-7.1-10.fc18.src.rpm
eclipse-4.2.2-0.1.git20121217.fc18.src.rpm
ed-1.6-2.fc18.src.rpm
elfutils-0.155-1.fc18.src.rpm
enca-1.13-4.fc18.src.rpm
espeak-1.46.02-6.fc18.src.rpm
exempi-2.2.0-5.fc18.src.rpm
expat-2.1.0-4.fc18.src.rpm
fakeroot-1.12.4-5.fc18.src.rpm
file-roller-3.6.3-1.fc18.src.rpm
finger-0.17-47.fc18.src.rpm
fontconfig-2.10.2-1.fc18.src.rpm
fuse-2.9.2-1.fc18.src.rpm
gcalctool-6.6.2-1.fc18.src.rpm
GConf2-3.2.5-3.fc18.src.rpm
glibc-2.16-28.fc18.src.rpm
gnome-bluetooth-3.6.1-2.fc18.src.rpm
gnome-font-viewer-3.6.2-1.fc18.src.rpm
gnome-keyring-3.6.2-3.fc18.src.rpm
gnome-session-3.6.2-3.fc18.src.rpm
gnome-system-monitor-3.6.1-3.fc18.src.rpm
gpm-1.20.6-26.fc18.src.rpm
hostname-3.11-4.fc18.src.rpm
hplip-3.12.11-1.fc18.src.rpm
indent-2.2.11-7.fc18.src.rpm
iok-2.1.3-2.fc18.src.rpm
irda-utils-0.9.18-16.fc18.src.rpm
isdn4k-utils-3.2-88.fc18.src.rpm
js-1.8.5-12.fc18.src.rpm
kbd-1.15.3-6.fc18.src.rpm
krb5-1.10.3-5.fc18.src.rpm
libbluray-0.2.3-1.fc18.src.rpm
libdb-5.3.21-3.fc18.src.rpm
libiptcdata-1.0.4-8.fc18.src.rpm
libplist-1.8-5.fc18.src.rpm
lrzsz-0.12.20-31.fc18.src.rpm
ltrace-0.7.2-1.fc18.src.rpm
mailx-12.5-7.fc18.src.rpm
minicom-2.5-8.fc17.src.rpm
mpage-2.5.6-11.fc18.src.rpm
nautilus-3.6.3-4.fc18.src.rpm
ncftp-3.2.5-4.fc18.src.rpm
net-tools-2.0-0.2.20121106git.fc18.src.rpm
newt-0.52.14-3.fc18.src.rpm
nmap-6.01-9.fc18.src.rpm
obex-data-server-0.4.6-4.fc18.src.rpm
opencv-2.4.3-3.fc18.src.rpm
opensp-1.5.2-15.fc18.src.rpm
openssl-1.0.1c-7.fc18.src.rpm
oprofile-0.9.8-3.fc18.src.rpm
optipng-0.7.4-1.fc18.src.rpm
pam_krb5-2.4.1-1.fc18.src.rpm
pam_pkcs11-0.6.2-9.fc18.src.rpm
php-5.4.11-1.fc18.src.rpm
pinentry-0.8.1-8.fc18.src.rpm
pinfo-0.6.10-6.fc18.src.rpm
policycoreutils-2.1.13-55.fc18.src.rpm
postfix-2.9.6-1.fc18.src.rpm
procps-ng-3.3.3-2.20120807git.fc18.src.rpm
qt-4.8.4-11.fc18.src.rpm
rarian-0.8.1-8.fc18.src.rpm
recordmydesktop-0.3.8.1-8.fc18.src.rpm
sane-backends-1.0.23-4.fc18.src.rpm
sendmail-8.14.6-2.fc18.src.rpm
shared-mime-info-1.0-7.fc18.src.rpm
socat-1.7.2.1-2.fc18.src.rpm
spice-vdagent-0.12.1-1.fc18.src.rpm
strace-4.7-2.fc18.src.rpm
stunnel-4.53-2.fc18.src.rpm
sudo-1.8.6p3-2.fc18.src.rpm
swig-2.0.8-1.fc18.src.rpm
sysprof-1.2.0-1.fc18.src.rpm
systemtap-2.0-6.fc18.src.rpm
sysvinit-2.88-9.dsf.fc18.src.rpm
texlive-2012-16.20130205_r29034.fc18.src.rpm
totem-3.6.3-2.fc18.src.rpm
usermode-1.111-1.fc18.src.rpm
valgrind-3.8.1-4.fc18.src.rpm
virtuoso-opensource-6.1.6-1.fc18.src.rpm
virt-viewer-0.5.4-3.fc18.src.rpm
wavpack-4.60.1-4.fc18.src.rpm
which-2.20-4.fc18.src.rpm
xdg-user-dirs-0.14-3.fc18.src.rpm
xorg-x11-server-1.13.2-2.fc18.src.rpm
xorg-x11-xkb-utils-7.7-4.fc18.src.rpm