[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1812311657050.27287@digraph.polyomino.org.uk>
Date: Mon, 31 Dec 2018 17:03:40 +0000
From: Joseph Myers <joseph@...esourcery.com>
To: Adhemerval Zanella <adhemerval.zanella@...aro.org>
CC: Florian Weimer <fw@...eb.enyo.de>, <linux-fsdevel@...r.kernel.org>,
<linux-api@...r.kernel.org>, <linux-ext4@...r.kernel.org>,
<linux-kernel@...r.kernel.org>,
<v9fs-developer@...ts.sourceforge.net>,
<libc-alpha@...rceware.org>, <qemu-devel@...gnu.org>,
<ericvh@...il.com>, <rminnich@...dia.gov>, <lucho@...kov.net>,
<hpa@...or.com>, <arnd@...db.de>
Subject: Re: d_off field in struct dirent and 32-on-64 emulation
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).
--
Joseph S. Myers
joseph@...esourcery.com
Powered by blists - more mailing lists