Subject: [PATCH 24/25] arm64:ilp32: add vdso-ilp32 and use for signal return

From: [email-masked] (Zhangjian (Bamvor))
Date: Thu, 5 May 2016 10:24:18 +0800

Hi,

On 2016/5/5 7:23, Andrew Pinski wrote:
> On Wed, May 4, 2016 at 2:49 PM, Yury Norov <[email-masked]> wrote:
>> On Tue, May 03, 2016 at 08:41:25PM +0800, Zhangjian (Bamvor) wrote:
>>> Hi, all
>>>
>>> After apply this patch with my small testcase, the vsyscall of gettimeofday in
>>> ilp32 works in both big endian and small endian. In this patch, I use the
>>> different register and offset for ilp32 and lp64. Actually, the
>>> COMPAT_TVAL_TV_SEC is same as TVAL_TV_SEC(so as to COMPAT_TSPEC_TV_SEC and
>>> TSPEC_TV_SEC). I add it to keep the logic clear. I also change the version
>>> of vdso to 4.6. It should change to 2.6.39 if glibc is not update.
>>>
>>
>> [...]
>>
>> Hi Bamvor,
>>
>> It works for me as well. Thank you.
>> I'll incorporate it in next submission.
>
> We should add the following so we are complaint to the ILP32 ABI
> dealing with pointers don't have to be zero extended for arguments,
> Note ZERO should most likely be ZERO_PTR or something to do that
> effect, I am not so good with names.
> #ifdef __LP64__
> #define ZERO(n)
> #else
> #define ZERO(n)         mov     w##n, w##n
> #endif
>
> ...
> ENTRY(__kernel_gettimeofday)
>          .cfi_startproc
>          ZERO(0)
>          ZERO(1)
> ...
> ENTRY(__kernel_clock_gettime)
>          .cfi_startproc
>          ZERO(1)
> ...
> ENTRY(__kernel_clock_getres)
>          .cfi_startproc
>          ZERO(1)
Thanks. I will test and send a new version.

Thanks.

Bamvor
> Thanks,
> Andrew Pinski
>> Yury.