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

Zhangjian (Bamvor)
2016-05-05T02:24:18Z

Hi,

On 2016/5/5 7:23, Andrew Pinski wrote:
> On Wed, May 4, 2016 at 2:49 PM, Yury Norov <ynorov@caviumnetworks.com> 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.