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

From: Zhangjian (Bamvor)
Date: Wed May 04 2016 - 22:28:38 EST


Hi,

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