[Patch] Fix libstdc++/11378 (take2) + xsputn optmizations

Pétur Runólfsson peturr02@ru.is
Tue Jul 8 20:31:00 GMT 2003


Andreas Jaeger wrote:
> off64_t is not available everywhere - and int64_t might not be
> available everywhere also.

Thanks for the info.

>> The issue here is ABI stability; if a platform doesn't have large file
>> support now, but gets it in the future it should be possible to enable
>> large file support in basic_filebuf without breaking the ABI.
>
> My point here is type safety, we should use the proper types and not
> invent some int64_t that works today but breaks in the future

Indeed - that's why we have streamoff.

> (remember when everybody used long instead of off_t - or even int?

No :^)

> That makes it quite difficult to convert programs to off64_t).

Users of iostreams (and the library itself) should use streamoff
everywhere - the problem is to find a type for streamoff that can
be used for the forseeable future (the next decade or so) - which
probably means at least 64 bits for all platforms.

It may be safe to use

typedef long long streamoff;

If sizeof(long long) changes, binary compatibility is lost anyway
so changing the definition is OK; and it is only one line of code
that needs to change so that's not much of an issue either.

Petur



More information about the Libstdc++ mailing list