Hi Franz,

> so you are supposed to use "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",
> but at least a quick glance at the Sol10 headers shows that the additional
> -D_LARGEFILE_SOURCE only makes a difference for fseeko/ftello. That still

right, that's also explained in lfcompile(7).

> doesn't explain -D_LARGEFILE64_SOURCE, does libstdc++ really need to use
> _LARGEFILE64_SOURCE functions?

Honestly, I hadn't checked, but wondered the same thing.  However, I'm a
bit wary to simply remove them after years for fear of breaking user
existing user code.

> Re-reading lfcompile(7) again shows that you can use either
> "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" (for portable applications) or
> only "-D_FILE_OFFSET_BITS=64". But in the GCC case we only need it for
> C++/libstdc++ so it seems "-D_FILE_OFFSET_BITS=64" should be enough. The
> rest is up to the users application, or?

One might argue that way, but again it's a bit late to change this now
for no compelling reason.

> My guess is that without defining _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE
> the configure check in libstdc++-v3/acinclude.m4 just won't define
> _GLIBCXX_USE_LFS and everything will fall in place. This would leave HPUX
> as the last user of _GLIBCXX_USE_LFS.

I don't know about HP-UX, but _GLIBC_USE_LFS is defined on Linux/x86_64,
too.  To me, the meaning seems a bit confused: 27_io/fpos/14775.cc
suggests that it denotes all system with largefile support, while
acinclude.m4 (GLIBCXX_CHECK_LFS) only tests for the transitional
functions (enabled by _LARGEFILE64_SOURCE on Solaris) while ignoring the
`transparent' largefile support from _LARGEFILE_SOURCE
_FILE_OFFSET_BITS=64.

I'd rather not mess with this stuff.

        Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to