This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFC] Make _FILE_OFFSET_BITS=64 default.


On Fri 14 Mar 2014 01:44:30 Rich Felker wrote:
> On Thu, Mar 13, 2014 at 05:28:22PM -0400, Mike Frysinger wrote:
> > On Thu 13 Mar 2014 05:20:57 Rich Felker wrote:
> > > On Thu, Mar 13, 2014 at 05:16:08AM -0400, Mike Frysinger wrote:
> > > > diff --git a/io/Makefile b/io/Makefile
> > > > index 8a6562e..77a1907 100644
> > > > --- a/io/Makefile
> > > > +++ b/io/Makefile
> > > > @@ -99,7 +99,7 @@ CFLAGS-fallocate.c = -fexceptions
> > > > 
> > > >  CFLAGS-fallocate64.c = -fexceptions
> > > >  CFLAGS-sync_file_range.c = -fexceptions
> > > > 
> > > > -CFLAGS-test-stat.c = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
> > > > +CFLAGS-test-stat.c = -U_FILE_OFFSET_BITS -D_FILE_OFFSET_BITS=64
> > > > -D_LARGEFILE64_SOURCE
> > > 
> > > If this happens to work, it's purely by chance/redundancy. -U
> > > overrides all -D for the same identifier, even subsequent ones.
> > 
> > if your compiler driver is unreasonable and isn't sane, then i'm not sure
> > how that's our problem.  we're already relying on sane behavior -- see
> > how _FORTIFY_SOURCE is used in the tree.
> > -mike
> 
> I'm merely citing the standards-required behavior. If gcc doesn't
> follow this, then I suppose this requires a workaround in the 'c99'
> wrapper shell scripts used for providing the c99 utility via gcc. But
> that's off-topic.
> 
> On the other hand, I still think it is confusing to have the makefile
> appearing to rely on gcc-specific behavior that contradicts the
> standards, especially when the same behavior would be achieved
> unambiguously without the -D (since the patched features.h would treat
> -U as implying 64-bit).

because elsewhere in the patch i add -D_FILE_OFFSET_BITS=32 to the global 
CPPFLAGS list so that glibc gets the environment it expects -- 32bit by 
default.  you could probably argue that glibc should be changed to expect the 
64bit API by default, but that would require a lot of careful surgery through 
out the tree and testing by every arch ... something we can/should do, but not 
at the expense of moving forward.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]