This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH v4 2/3] 32-bit ABIs: support stat syscall family
- From: Arnd Bergmann <arnd at arndb dot de>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: Yury Norov <ynorov at caviumnetworks dot com>, libc-alpha at sourceware dot org, schwab at suse dot de, catalin dot marinas at arm dot com, davem at davemloft dot net, szabolcs dot nagy at arm dot com, maxim dot kuvyrkov at linaro dot org, pinskia at gmail dot com, bamvor dot zhangjian at huawei dot com, fweimer at redhat dot com, Prasun dot Kapoor at cavium dot com, adhemerval dot zanella at linaro dot org
- Date: Tue, 09 Aug 2016 22:58:09 +0200
- Subject: Re: [PATCH v4 2/3] 32-bit ABIs: support stat syscall family
- Authentication-results: sourceware.org; auth=none
- References: <1470304959-9944-1-git-send-email-ynorov@caviumnetworks.com> <20160809132645.GA19286@yury-N73SV> <alpine.DEB.2.20.1608092015390.11410@digraph.polyomino.org.uk>
On Tuesday, August 9, 2016 8:29:13 PM CEST Joseph Myers wrote:
> > It was my initial idea, but Arnd told that we cannot modify time_t and
> > struct timespec as it is used in some ioctls and this change may harm
> > compatibility.
>
> We're talking about *new ports*. We can take the time to get the ABI
> right for them.
>
> > I suggested to declare new time64_t and struct timespec64 and use it
> > in union with 32-bit versions where possible but it was rejected too.
> > So with 32-bit time_t/timespec, this is the only option to treat time
> > fields as special case and introduce a bunch of paddings.
>
> If for some reason the padding cannot be *inside* struct timespec, that
> needs to be explained at greater length.
We cannot define 'struct timespec' to be incompatible with the version
used by the kernel, that would break all other interfaces passing a
timespec.
While in theory the kernel could change the definition of its "compat"
data types for 32-bit tasks on 64-bit kernels (as it does for x86/x32),
we are not doing that for aarch64, in order to stay compatible with
device drivers that already have working compat mode on 32-bit ARM.
Arnd