aarch64: fix errno address calculation in SYSCALL_ERROR_HANDLER

This patch fixes the last regression in LTP lite scenario (mmap16) comparing
to lp64 in my source trees [1, 2]. The fix has been suggested back in 2015 [3]
but was never applied.

Checked on aarch64-linux-gnu.

	* sysdeps/unix/sysv/linux/aarch64/sysdep.h: use PTR_REG() for offset
	calculation in SYSCALL_ERROR_HANDLER().

[1] https://github.com/norov/glibc/tree/dev9
[2] https://github.com/norov/linux/tree/ilp32-20170203
[3] https://sourceware.org/ml/libc-alpha/2015-03/msg00587.html
This commit is contained in:
Adhemerval Zanella 2017-02-08 16:30:43 -02:00
parent ef8659eab6
commit 42de7e2029
2 changed files with 6 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-02-08 Yury Norov <ynorov@caviumnetworks.com>
* sysdeps/unix/sysv/linux/aarch64/sysdep.h: use PTR_REG() for offset
calculation in SYSCALL_ERROR_HANDLER().
2017-02-08 Rical Jasan <ricaljasan@pacific.net>
* manual/contrib.texi: Fix typo.

View File

@ -108,7 +108,7 @@
.Lsyscall_error: \
adrp x1, :gottprel:errno; \
neg w2, w0; \
ldr x1, [x1, :gottprel_lo12:errno]; \
ldr PTR_REG(1), [x1, :gottprel_lo12:errno]; \
mrs x3, tpidr_el0; \
mov x0, -1; \
str w2, [x1, x3]; \