Created attachment 115166 [details] [review]
add correct large file support bits to configure.am
Description of problem: pkgconfig is built without large file support. Since xfs enables 64-bit inodes by default on filesystems >1TB, that means if /usr/share/pkgconfig happens to get an inode number > 2^31, it will fail with EOVERFLOW because getdents() would return a number that doesn't fit in its uint32_t parameter.
Version-Release number of selected component (if applicable):
pkgconfig-0.28-6.fc22.x86_64 (and all prior versions.)
How reproducible: very easy
Steps to Reproduce:
1. get a 1.5TB disk
2. partition it as 1 partition
3. mkfs.xfs on that partition
4. mount it on /var/lib/mock
5. try to mock build any large project that uses autoconf and pkgconfig
6. autoconf will claim you don't have some libraries that you do because pkgconfig is failing
7. strace pkg-config in the chroot
openat(AT_FDCWD, "/usr/lib/pkgconfig", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 1 entries */, 32768) = 16
getdents(3, 0x9272394, 32768) = -1 EOVERFLOW (Value too large for defined data type)
close(3) = 0
getdents64() should be what you see, and then it will work.
it might not happen every time, since it does actually require that the inode numbers /assigned/ in the directory are >2^31 , as opposed to merely being 64-bit.
( also filed in fedora as https://bugzilla.redhat.com/show_bug.cgi?id=1212956 )
Thanks. Applied in 40342dd.