This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] aarch64: fix errno address calculation in SYSCALL_ERROR_HANDLER()
- From: Yury Norov <ynorov at caviumnetworks dot com>
- To: <libc-alpha at sourceware dot org>
- Cc: Yury Norov <ynorov at caviumnetworks dot com>, Andrew Pinski <apinski at cavium dot com>, Yang Yingliang <yangyingliang at huawei dot com>, Bamvor Jian Zhang <bamvor dot zhangjian at huawei dot com>, Steve Ellcey <sellcey at caviumnetworks dot com>
- Date: Tue, 7 Feb 2017 17:18:12 +0530
- Subject: [PATCH] aarch64: fix errno address calculation in SYSCALL_ERROR_HANDLER()
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yuri dot Norov at caviumnetworks dot com;
- Spamdiagnosticmetadata: NSPM
- Spamdiagnosticoutput: 1:99
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, so I reinvented the weel while debugging mmap16.
[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
* sysdeps/unix/sysv/linux/aarch64/sysdep.h: use PTR_REG() for offset
calculation in SYSCALL_ERROR_HANDLER().
---
sysdeps/unix/sysv/linux/aarch64/sysdep.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/unix/sysv/linux/aarch64/sysdep.h b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
index 1ffabc2..d926e19 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sysdep.h
@@ -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]; \
--
2.7.4