Thread (4 messages) 4 messages, 3 authors, 2019-01-02

Re: d_off field in struct dirent and 32-on-64 emulation

From: Adhemerval Zanella <hidden>
Date: 2018-12-28 11:53:27
Also in: linux-ext4, linux-fsdevel, lkml, qemu-devel

Possibly related (same subject, not in this thread)


On 27/12/2018 16:09, Florian Weimer wrote:
* Adhemerval Zanella:
quoted
Also for glibc standpoint, although reverting it back to use getdents 
syscall for non-LFS mode might fix this issue for architectures that
provides non-LFS getdents syscall it won't be a fix for architectures 
that still provides off_t different than off64_t *and* only provides 
getdents64 syscall.

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help