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, Mar 14, 2014 at 03:18:22AM -0400, Mike Frysinger wrote:
> 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

What I was trying to say is that adding -U_FILE_OFFSET_BITS will
suppress the -D_FILE_OFFSET_BITS=32 and allow the default in
features.h to do its thing.

Rich


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