This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: d_off field in struct dirent and 32-on-64 emulation
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: Florian Weimer <fw at deneb dot enyo dot de>, linux-fsdevel at vger dot kernel dot org, linux-api at vger dot kernel dot org, linux-ext4 at vger dot kernel dot org, linux-kernel at vger dot kernel dot org, v9fs-developer at lists dot sourceforge dot net, libc-alpha at sourceware dot org, qemu-devel at nongnu dot org, ericvh at gmail dot com, rminnich at sandia dot gov, lucho at ionkov dot net, hpa at zytor dot com, arnd at arndb dot de
- Date: Wed, 2 Jan 2019 11:16:37 -0200
- Subject: Re: d_off field in struct dirent and 32-on-64 emulation
- References: <87bm56vqg4.fsf@mid.deneb.enyo.de> <957967d7-5717-8ada-fb30-dfdf19898b6b@linaro.org> <87pntmu9iw.fsf@mid.deneb.enyo.de> <ae0530c9-5c46-5560-9734-1eacaf173b8d@linaro.org> <alpine.DEB.2.21.1812311657050.27287@digraph.polyomino.org.uk>
On 31/12/2018 15:03, Joseph Myers wrote:
> On Fri, 28 Dec 2018, Adhemerval Zanella wrote:
>
>>>> Currently we only have nios2 and csky (unfortunately). But since generic
>>>> definition for off_t and off64_t still assumes non-LFS support, all new
>>>> 32-bits ports potentially might carry the issue.
>>>
>>> For csky, we could still change the type of the non-standard d_off
>>> field to long long int. This way, only telldir would have to fail
>>> when truncation is necessary, as mentioned below:
>>
>> I think it makes no sense to continue making non-LFS as default for
>> newer 32 bits ports, the support will be emulated with LFS syscalls.
>
> Any new 32-bit port that uses 64-bit time_t will also use 64-bit offsets
> (because we don't have any glibc configurations that support the
> combination of 64-bit time with 32-bit offsets, and don't want to add
> them). That should apply for RISC-V 32-bit at least.
>
> I've filed <https://sourceware.org/bugzilla/show_bug.cgi?id=24050> for
> missing overflow checks in telldir when the default off_t is wider than
> long int (currently just applies to x32; not sure why we don't see glibc
> test failures on x32 resulting from the quiet truncation, as the issue is
> certainly there in the source code).
>
What about csky? Should we still make it use 32-bit offsets as default
configuration even when kernel does not support it natively?