[Libvir] Repository for work-in-progress storage patches

Jim Meyering jim at meyering.net
Sat Jan 19 18:58:31 UTC 2008


"Daniel P. Berrange" <berrange at redhat.com> wrote:
> On Sat, Jan 19, 2008 at 07:09:31PM +0100, Jim Meyering wrote:
>> "Daniel P. Berrange" <berrange at redhat.com> wrote:
>> ...
>>
>> Since you're working on the weekend ;-), here are some
>> notices I'd begun to accumulate:
>>
>>   There are a bunch of new uses of open64, which isn't portable.
>>   How about using AC_SYS_LARGEFILE in configure.in instead?
>>   Then you can use "open" everywhere.
>
> AFAIK, there are two ways to do large file suport
>
>   - Explicit support - size_t, open, etc all remain the same, and
>     new size64_t, open64, etc are introduced.
>
>   - Implicit support - size_t, open, etc are re-defined to be 64-bit
>     at all times.
>
> Both are part of POSIX. With the latter, if any size_t is exposed in your
> public API, then all applications linking against you must also be compiled
> with large file suport because this is an ABI sensitive think.  With the
> former approach all the large file stuff is only visible inside your code
> so is not leaked to applications using the lib.
>
> Since we have size_t in the public API, AFAICT, we have no choice but to
> use the explicit size64_t, open64() etc.

large-FILE support does not affect the memory-related size_t
and ssize_t types, and open64/size64_t are not specified by POSIX.

Maybe you're thinking of off_t, since that type does change size
depending on whether large-file support is enabled.  But off_t is
not used in libvirt at all.




More information about the libvir-list mailing list