Description of problem: F18 (rawhide) currently ships glibc 2.15.90 which is a prerelease version of glibc 2.16. Despite it being a prerelease of 2.16 it still defines the __GLIBC_MINOR__ macro as 15, making it impossible to use conditionals based on this macro to distinguish between 2.15 the 2.16 prerelease version. Due to changes in the glibc headers one of the packages I maintain needs to be patched to compile properly with the new glibc. However, if the patched code should still be compilable with older versions the patch should contain conditionals to do different things on the new and the old glibc. Since the 2.16 prerelease version (2.15.90) currently in rawhide still defined __GLIBC_MINOR__ to be 15, this can not be done properly, and the patch can not be sent upstream. I have seen that there is a scratch build of the proper glibc 2.16 in koji that properly declares __GLIBC_MINOR__ to be 16. If this were to be built for rawhide that would resolve the problem. When is 2.16 planned to be build as a proper non-scratch build for rawhide? Version-Release number of selected component (if applicable): glibc-2.15.90-16.fc18 How reproducible: Always Actual results: __GLIBC_MINOR__ is 15 although the headers are not compatible with glibc 2.15 Expected results: __GLIBC_MINOR__ is 16
We inherit the definition of GLIBC_MINOR from the upstream master glibc sources; their choice has always been to identify the development releases in the manner you've noticed. In general rather than testing for a specific version, I would recommend testing for features. That's generally much more reliable approach to deal with that kind of issue. WRT an official build with using the released glibc-2.16, they should be in Koji now and should appear in rawhide shortly.