This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Patch 2 of 2 for ILP32 aarch64


On Mon, Feb 27, 2017 at 5:23 PM, Florian Weimer <fweimer@redhat.com> wrote:
> On 02/22/2017 05:30 PM, Steve Ellcey wrote:
>>
>> +#define __TIME_T_TYPE          __SLONGWORD_TYPE
>
>
> Does this mean time_t remains 32 bits?  Is this really a sane choice at this
> point for a new architecture?

Absolutely. We had a long discussion about this for the kernel port, and the
conclusion is that we really need all types to be defined consistently across
all architectures. If basic types like this were to differ between arm32 and
arm64/ilp32, then we could not support both ABIs from a single kernel
binary, as we can only have one set of compat syscall/ioctl ABI emulations
at build time, and this is not likely to change anytime soon (x86 tried to
do x32 and i386 emulation concurrently, but that support will probably never
cover all device drivers).

The other point for time_t in particular is that we don't want to get in the
way of adding 64-bit time_t in 32-bit architectures. Again, x32 gets in the
way but it is only a single exception right now with __kernel_time_t defined
as 64-bit in the kernel headers. We don't want to add more special
cases in the kernel ABI, and making the libc time_t different from the kernel
time_t would again break ioctl calls to drivers.

    Arnd


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]