Re: should "man feature_test_macros" mention _LARGEFILE_SOURCE?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/19/2014 03:48 AM, Mike Frysinger wrote:
> On Tue 18 Mar 2014 15:46:43 Robert P. J. Day wrote:
>>   just noticed under /usr/include on my fedora rawhide system the
>> following:
>>
>> /usr/include/bits/environments.h:# define __ILP32_OFFBIG_CFLAGS	"-m32
>> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
>> /usr/include/python3.3m/pyconfig-64.h:#define _LARGEFILE_SOURCE 1
>> /usr/include/features.h:   _LARGEFILE_SOURCE	Some more functions for 
> correct
>> standard I/O. /usr/include/features.h:#  undef _LARGEFILE_SOURCE
>> /usr/include/features.h:#  define _LARGEFILE_SOURCE	1
>> /usr/include/features.h:#ifdef _LARGEFILE_SOURCE
>> /usr/include/python2.7/pyconfig-64.h:#define _LARGEFILE_SOURCE 1
>>
>> but there's no mention of "_LARGEFILE_SOURCE" in "man
>> feature_test_macros". is that assumed to be implied by
>> _LARGEFILE64_SOURCE? it's not clear.
> 
> nope, none of the three LFS flags imply each other, nor should they.  they're 
> related, but orthogonal by design.
> 
> i could have sworn i saw a description of them in POSIX, but i can't find it 
> now.  the GNU C library manual covers it though:
> https://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html
> 
> here's a terse summary off the top of my head:
> 
> _LARGEFILE_SOURCE: expose prototypes for new funcs which POSIX got wrong 
> originally.  e.g. fseek & ftell utilize "long", so fseeko & ftello were added 
> which use "off_t".

Thanks, Mike. I'd forgotten those details.

So, as far as I can see, _LARGEFILE_SOURCE is largely of (ancient) historical
interest, so I don't think I'll bother adding it to the FTM(7) page.

Cheers,

Michael



> _LARGEFILE64_SOURCE: expose prototypes for 64-bit variant funcs w/out 
> affecting any existing funcs.  e.g. you now have fseeko64 & ftello64 which 
> take explicit off64_t types while fseeko and ftello are unchanged.  makes 
> sense when sizeof(off_t) == 4 && sizeof(off64_t) == 8.
> 
> _FILE_OFFSET_BITS: explicitly set the off_t size.  set it to 32 if you want 
> sizeof(off_t) == 4, or set it to 64 if you want sizeof(off_t) == 8.
> 
> in the ideal world, _FILE_OFFSET_BITS should default to 64 and 
> _LARGEFILE_SOURCE should default to defined.  in our crap world, apps should 
> be always building with these in their CPPFLAGS.
> -mike
> 


-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux