Bug 90078 - pkgconfig needs large file support
Summary: pkgconfig needs large file support
Status: RESOLVED FIXED
Alias: None
Product: pkg-config
Classification: Unclassified
Component: src (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: pkg-config
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-17 19:11 UTC by Peter Jones
Modified: 2015-04-21 05:13 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
add correct large file support bits to configure.am (709 bytes, patch)
2015-04-17 19:11 UTC, Peter Jones
Details | Splinter Review

Description Peter Jones 2015-04-17 19:11:11 UTC
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
 
Actual results:
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

Expected results:
getdents64() should be what you see, and then it will work.

Additional info:
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.
Comment 1 Peter Jones 2015-04-17 19:12:12 UTC
( also filed in fedora as https://bugzilla.redhat.com/show_bug.cgi?id=1212956 )
Comment 2 Dan Nicholson 2015-04-21 05:13:30 UTC
Thanks. Applied in 40342dd.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.