[RFC] Make _FILE_OFFSET_BITS=64 default.

Message ID 5239512.EEmGNsN1rx@vapier
State Rejected
Headers

Commit Message

Mike Frysinger March 11, 2014, 10:51 a.m. UTC
  On Wed 05 Mar 2014 10:13:31 Ondřej Bílka wrote:
> On Thu, Feb 27, 2014 at 09:45:37AM -0800, Paul Eggert wrote:
> > Squashing an inode that way has a small chance of introducing what
> > could be a serious bug.  If glibc is going to squash them, it should
> > do so reliably, by maintaining a table of all the inodes it's ever
> > seen and making sure there are no collisions.
> > 
> > Why bother to squash them at all, though?  Programs that care about
> > files should be compiled with _FILE_OFFSET_BITS defined to 64.  If
> > we're worried about programs that don't define _FILE_OFFSET_BITS, we
> > could change glibc to default to _FILE_OFFSET_BITS=64; that's a
> > better long-term solution anyway.
> 
> Changing default would be better. I dig while how to do it and can not
> find a nonugly solution. How should we do this?

isn't it simply:


the glibc source files themselves seem to expect default of 
_FILE_OFFSET_BITS=32 though, so we might have to add that to default CPPFLAGS 
when building.

i kind of feel like deploying this on Gentoo systems to see what breaks ;).
-mike
  

Patch

--- a/include/features.h
+++ b/include/features.h
@@ -303,7 +303,7 @@ 
 # define __USE_LARGEFILE64	1
 #endif
 
-#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
+#if !defined _FILE_OFFSET_BITS || _FILE_OFFSET_BITS == 64
 # define __USE_FILE_OFFSET64	1
 #endif