Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/netbsd-8]: src Pull up the following, requested by kamil in ticket #552:
details: https://anonhg.NetBSD.org/src/rev/4f28bb1a57a0
branches: netbsd-8
changeset: 434768:4f28bb1a57a0
user: martin <martin%NetBSD.org@localhost>
date: Wed Mar 21 10:08:02 2018 +0000
description:
Pull up the following, requested by kamil in ticket #552:
external/gpl3/gcc{.old}/dist/libsanitizer/asan/asan_linux.cc 1.4
sys/arch/aarch64/include/mcontext.h 1.2
sys/arch/alpha/include/mcontext.h 1.9
sys/arch/amd64/include/mcontext.h 1.19
sys/arch/arm/include/mcontext.h 1.19
sys/arch/hppa/include/mcontext.h 1.9
sys/arch/i386/include/mcontext.h 1.14
sys/arch/ia64/include/mcontext.h 1.6
sys/arch/m68k/include/mcontext.h 1.10
sys/arch/mips/include/mcontext.h 1.22
sys/arch/or1k/include/mcontext.h 1.2
sys/arch/powerpc/include/mcontext.h 1.18
sys/arch/riscv/include/mcontext.h 1.5
sys/arch/sh3/include/mcontext.h 1.11
sys/arch/sparc/include/mcontext.h 1.14-1.17
sys/arch/sparc64/include/mcontext.h 1.10
sys/arch/vax/include/mcontext.h 1.9
tests/lib/libc/sys/Makefile 1.50
tests/lib/libc/sys/t_ucontext.c 1.2-1.5
sys/arch/hppa/include/mcontext.h 1.10
sys/arch/ia64/include/mcontext.h 1.7
- Introduce _UC_MACHINE_FP(). _UC_MACHINE_FP() is a helper
macro to extract from mcontext a frame pointer.
- Add new tests in lib/libc/sys/t_ucontext:
* ucontext_sp (testing _UC_MACHINE_SP)
* ucontext_fp (testing _UC_MACHINE_FP)
* ucontext_pc (testing _UC_MACHINE_PC)
* ucontext_intrv (testing _UC_MACHINE_INTRV)
Add a dummy implementation of _UC_MACHINE_INTRV() for ia64.
Implement _UC_MACHINE_INTRV() for hppa.
Make the t_ucontext.c test more portable.
We now have _UC_MACHINE_FP.
diffstat:
external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc | 54 +++++++------
sys/arch/aarch64/include/mcontext.h | 3 +-
sys/arch/alpha/include/mcontext.h | 3 +-
sys/arch/amd64/include/mcontext.h | 3 +-
sys/arch/arm/include/mcontext.h | 3 +-
sys/arch/hppa/include/mcontext.h | 4 +-
sys/arch/i386/include/mcontext.h | 3 +-
sys/arch/ia64/include/mcontext.h | 4 +-
sys/arch/m68k/include/mcontext.h | 3 +-
sys/arch/mips/include/mcontext.h | 3 +-
sys/arch/or1k/include/mcontext.h | 3 +-
sys/arch/powerpc/include/mcontext.h | 3 +-
sys/arch/riscv/include/mcontext.h | 3 +-
sys/arch/sh3/include/mcontext.h | 3 +-
sys/arch/sparc/include/mcontext.h | 20 ++--
sys/arch/sparc64/include/mcontext.h | 10 +-
sys/arch/vax/include/mcontext.h | 3 +-
tests/lib/libc/sys/Makefile | 3 +-
tests/lib/libc/sys/t_ucontext.c | 69 +++++++++++++++++-
19 files changed, 144 insertions(+), 56 deletions(-)
diffs (truncated from 505 to 300 lines):
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc
--- a/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc Tue Mar 20 09:18:49 2018 +0000
+++ b/external/gpl3/gcc/dist/libsanitizer/asan/asan_linux.cc Wed Mar 21 10:08:02 2018 +0000
@@ -162,40 +162,42 @@
void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) {
#ifdef __NetBSD__
-# define __UC_MACHINE_FP(ucontext, r) \
+# ifndef _UC_MACHINE_FP
+# define __UC_MACHINE_FP(ucontext, r) \
(ucontext)->uc_mcontext.__gregs[(r)]
/*
* Unfortunately we don't have a portable frame pointer (yet)
*/
-# if defined(__alpha__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S6)
-# elif defined(__arm__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_FP)
-# elif defined(__x86_64__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_RBP)
-# elif defined(__i386__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_EBP)
-# elif defined(__m68k__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_A6)
-# elif defined(__mips__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S8)
-# elif defined(__powerpc__) || defined(__powerpc64__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_R1)
-# elif defined(__riscv__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S0)
-# elif defined(__sparc__)
-# define _UC_MACHINE_FP(ucontext) sp[15]
-# elif defined(__sh3__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_R14)
-# elif defined(__vax__)
-# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_FP)
-# else
-# define _UC_MACHINE_FP(ucontext) 0
-# endif
+# if defined(__alpha__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S6)
+# elif defined(__arm__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_FP)
+# elif defined(__x86_64__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_RBP)
+# elif defined(__i386__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_EBP)
+# elif defined(__m68k__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_A6)
+# elif defined(__mips__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S8)
+# elif defined(__powerpc__) || defined(__powerpc64__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_R1)
+# elif defined(__riscv__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_S0)
+# elif defined(__sparc__)
+# define _UC_MACHINE_FP(ucontext) sp[15]
+# elif defined(__sh3__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_R14)
+# elif defined(__vax__)
+# define _UC_MACHINE_FP(ucontext) __UC_MACHINE_FP(ucontext, _REG_FP)
+# else
+# define _UC_MACHINE_FP(ucontext) 0
+# endif
ucontext_t *ucontext = (ucontext_t*)context;
*pc = _UC_MACHINE_PC(ucontext);
*sp = _UC_MACHINE_SP(ucontext);
*bp = _UC_MACHINE_FP(ucontext);
+# endif
#elif ASAN_ANDROID
*pc = *sp = *bp = 0;
#elif defined(__arm__)
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/aarch64/include/mcontext.h
--- a/sys/arch/aarch64/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/aarch64/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.1.22.2 2018/02/26 04:32:29 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.1.22.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -106,6 +106,7 @@
#define _UC_TLSBASE 0x00080000 /* see <sys/ucontext.h> */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_X29])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_X0])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/alpha/include/mcontext.h
--- a/sys/arch/alpha/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/alpha/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.8.32.2 2018/02/26 04:32:29 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.8.32.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -96,6 +96,7 @@
#define _UC_TLSBASE 0x20 /* valid process-unique value in _REG_UNIQUE */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_S6])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_V0])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/amd64/include/mcontext.h
--- a/sys/arch/amd64/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/amd64/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.18.20.2 2018/02/26 04:32:29 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.18.20.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -68,6 +68,7 @@
/* AMD64 ABI 128-bytes "red zone". */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_RSP] - 128)
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_RBP])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_RIP])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_RAX])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/arm/include/mcontext.h
--- a/sys/arch/arm/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/arm/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.18.10.2 2018/02/26 04:32:29 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.18.10.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -110,6 +110,7 @@
#define _UC_MACHINE_PAD 1 /* Padding appended to ucontext_t */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_R11])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_R0])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/hppa/include/mcontext.h
--- a/sys/arch/hppa/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/hppa/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.8.22.2 2018/02/26 04:32:29 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.8.22.3 2018/03/21 10:08:02 martin Exp $ */
#ifndef _HPPA_MCONTEXT_H_
#define _HPPA_MCONTEXT_H_
@@ -50,12 +50,14 @@
} mcontext_t;
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[3])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PCOQH])
#define _UC_MACHINE_SET_PC(uc, pc) \
do { \
(uc)->uc_mcontext.__gregs[_REG_PCOQH] = (pc); \
(uc)->uc_mcontext.__gregs[_REG_PCOQT] = (pc) + 4; \
} while (/*CONSTCOND*/0)
+#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_RET0])
static __inline void *
__lwp_getprivate_fast(void)
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/i386/include/mcontext.h
--- a/sys/arch/i386/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/i386/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.12.22.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.12.22.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -116,6 +116,7 @@
#ifndef _UC_MACHINE_SP
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_UESP])
#endif
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_EBP])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_EIP])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_EAX])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/ia64/include/mcontext.h
--- a/sys/arch/ia64/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/ia64/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.5.8.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.5.8.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -112,8 +112,10 @@
} mcontext_t;
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.mc_special.sp)
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[79])
/* XXX or assembly "mov Rn = ip" or ...? */
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.mc_special.iip)
+#define _UC_MACHINE_INTRV(uc) 0 /* XXX */
static __inline void *
__lwp_getprivate_fast(void)
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/m68k/include/mcontext.h
--- a/sys/arch/m68k/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/m68k/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.9.42.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.9.42.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -102,6 +102,7 @@
#define _UC_TLSBASE 0x00080000
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_A7])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_A6])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_D0])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/mips/include/mcontext.h
--- a/sys/arch/mips/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/mips/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.21.10.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.21.10.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 1999, 2002 The NetBSD Foundation, Inc.
@@ -159,6 +159,7 @@
#define _UC_TLSBASE 0x00040000
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_S8])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_EPC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_V0])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/or1k/include/mcontext.h
--- a/sys/arch/or1k/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/or1k/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.1.12.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.1.12.3 2018/03/21 10:08:02 martin Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -88,6 +88,7 @@
#define _UC_TLSBASE 0x00080000 /* see <sys/ucontext.h> */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_R2])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_RV])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/powerpc/include/mcontext.h
--- a/sys/arch/powerpc/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/powerpc/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.17.12.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.17.12.3 2018/03/21 10:08:03 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -133,6 +133,7 @@
#define _UC_TLSBASE 0x00080000 /* thread context valid in R2 */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_R1])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_R31])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_R3])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/riscv/include/mcontext.h
--- a/sys/arch/riscv/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/riscv/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.4.10.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.4.10.3 2018/03/21 10:08:03 martin Exp $ */
/*-
* Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -118,6 +118,7 @@
#define _UC_TLSBASE 0x00080000 /* see <sys/ucontext.h> */
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_S0])
#define _UC_MACHINE_PC(uc) ((uc)->uc_mcontext.__gregs[_REG_PC])
#define _UC_MACHINE_INTRV(uc) ((uc)->uc_mcontext.__gregs[_REG_RV])
diff -r c52e7cdb03f7 -r 4f28bb1a57a0 sys/arch/sh3/include/mcontext.h
--- a/sys/arch/sh3/include/mcontext.h Tue Mar 20 09:18:49 2018 +0000
+++ b/sys/arch/sh3/include/mcontext.h Wed Mar 21 10:08:02 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: mcontext.h,v 1.10.32.2 2018/02/26 04:32:30 snj Exp $ */
+/* $NetBSD: mcontext.h,v 1.10.32.3 2018/03/21 10:08:03 martin Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -82,6 +82,7 @@
} mcontext_t;
#define _UC_MACHINE_SP(uc) ((uc)->uc_mcontext.__gregs[_REG_SP])
+#define _UC_MACHINE_FP(uc) ((uc)->uc_mcontext.__gregs[_REG_R14])
Home |
Main Index |
Thread Index |
Old Index