[RFC] Make _FILE_OFFSET_BITS=64 default.
Rich Felker
dalias@aerifal.cx
Fri Mar 14 14:47:00 GMT 2014
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
More information about the Libc-alpha
mailing list