diff options
| -rw-r--r-- | meta/conf/distro/include/tcmode-default.inc | 2 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc | 2 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch | 49 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch | 11 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch | 43 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 | ||||
| -rw-r--r-- | meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb (renamed from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb) | 7 |
7 files changed, 10 insertions, 393 deletions
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc index 5d71825889..12d3901ee1 100644 --- a/meta/conf/distro/include/tcmode-default.inc +++ b/meta/conf/distro/include/tcmode-default.inc | |||
| @@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}" | |||
| 23 | BINUVERSION ?= "2.32%" | 23 | BINUVERSION ?= "2.32%" |
| 24 | GDBVERSION ?= "8.2%" | 24 | GDBVERSION ?= "8.2%" |
| 25 | GLIBCVERSION ?= "2.29%" | 25 | GLIBCVERSION ?= "2.29%" |
| 26 | LINUXLIBCVERSION ?= "4.19%" | 26 | LINUXLIBCVERSION ?= "5.0%" |
| 27 | QEMUVERSION ?= "3.1%" | 27 | QEMUVERSION ?= "3.1%" |
| 28 | GOVERSION ?= "1.11%" | 28 | GOVERSION ?= "1.11%" |
| 29 | 29 | ||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc index be215af9b9..7f838f623e 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc | |||
| @@ -38,6 +38,8 @@ python __anonymous () { | |||
| 38 | d.setVar("HEADER_FETCH_VER", "3.0") | 38 | d.setVar("HEADER_FETCH_VER", "3.0") |
| 39 | elif major == "4": | 39 | elif major == "4": |
| 40 | d.setVar("HEADER_FETCH_VER", "4.x") | 40 | d.setVar("HEADER_FETCH_VER", "4.x") |
| 41 | elif major == "5": | ||
| 42 | d.setVar("HEADER_FETCH_VER", "5.x") | ||
| 41 | else: | 43 | else: |
| 42 | d.setVar("HEADER_FETCH_VER", "2.6") | 44 | d.setVar("HEADER_FETCH_VER", "2.6") |
| 43 | } | 45 | } |
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch deleted file mode 100644 index 3684cc21bf..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch +++ /dev/null | |||
| @@ -1,49 +0,0 @@ | |||
| 1 | From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Davide Caratti <dcaratti@redhat.com> | ||
| 3 | Date: Mon, 17 Dec 2018 11:26:38 +0100 | ||
| 4 | Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h | ||
| 5 | MIME-Version: 1.0 | ||
| 6 | Content-Type: text/plain; charset=UTF-8 | ||
| 7 | Content-Transfer-Encoding: 8bit | ||
| 8 | |||
| 9 | Herton reports the following error when building a userspace program that | ||
| 10 | includes net_stamp.h: | ||
| 11 | |||
| 12 | In file included from foo.c:2: | ||
| 13 | /usr/include/linux/net_tstamp.h:158:2: error: unknown type name | ||
| 14 | ‘clockid_t’ | ||
| 15 | clockid_t clockid; /* reference clockid */ | ||
| 16 | ^~~~~~~~~ | ||
| 17 | |||
| 18 | Fix it by using __kernel_clockid_t in place of clockid_t. | ||
| 19 | |||
| 20 | Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.") | ||
| 21 | Cc: Timothy Redaelli <tredaelli@redhat.com> | ||
| 22 | Reported-by: Herton R. Krzesinski <herton@redhat.com> | ||
| 23 | Signed-off-by: Davide Caratti <dcaratti@redhat.com> | ||
| 24 | Tested-by: Paolo Abeni <pabeni@redhat.com> | ||
| 25 | Signed-off-by: David S. Miller <davem@davemloft.net> | ||
| 26 | --- | ||
| 27 | Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5] | ||
| 28 | |||
| 29 | include/uapi/linux/net_tstamp.h | 4 ++-- | ||
| 30 | 1 file changed, 2 insertions(+), 2 deletions(-) | ||
| 31 | |||
| 32 | diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h | ||
| 33 | index 97ff3c17ec4d..e5b39721c6e4 100644 | ||
| 34 | --- a/include/uapi/linux/net_tstamp.h | ||
| 35 | +++ b/include/uapi/linux/net_tstamp.h | ||
| 36 | @@ -155,8 +155,8 @@ enum txtime_flags { | ||
| 37 | }; | ||
| 38 | |||
| 39 | struct sock_txtime { | ||
| 40 | - clockid_t clockid; /* reference clockid */ | ||
| 41 | - __u32 flags; /* as defined by enum txtime_flags */ | ||
| 42 | + __kernel_clockid_t clockid;/* reference clockid */ | ||
| 43 | + __u32 flags; /* as defined by enum txtime_flags */ | ||
| 44 | }; | ||
| 45 | |||
| 46 | #endif /* _NET_TIMESTAMPING_H */ | ||
| 47 | -- | ||
| 48 | 2.20.1 | ||
| 49 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch index 9ba1c076e8..a5ded602e5 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch | |||
| @@ -1,8 +1,7 @@ | |||
| 1 | From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 | 1 | From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001 |
| 2 | From: He Zhe <zhe.he@windriver.com> | 2 | From: He Zhe <zhe.he@windriver.com> |
| 3 | Date: Wed, 21 Nov 2018 15:12:43 +0800 | 3 | Date: Wed, 21 Nov 2018 15:12:43 +0800 |
| 4 | Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for | 4 | Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc |
| 5 | here-doc | ||
| 6 | 5 | ||
| 7 | There was a bug of "as" in binutils that when it checks if the input file and | 6 | There was a bug of "as" in binutils that when it checks if the input file and |
| 8 | output file are the same one, it would not check if they are on the same block | 7 | output file are the same one, it would not check if they are on the same block |
| @@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com> | |||
| 44 | 1 file changed, 4 insertions(+), 1 deletion(-) | 43 | 1 file changed, 4 insertions(+), 1 deletion(-) |
| 45 | 44 | ||
| 46 | diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh | 45 | diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh |
| 47 | index 083c526..8dfac55 100755 | 46 | index 8b980fb22..d256a9438 100755 |
| 48 | --- a/scripts/gcc-goto.sh | 47 | --- a/scripts/gcc-goto.sh |
| 49 | +++ b/scripts/gcc-goto.sh | 48 | +++ b/scripts/gcc-goto.sh |
| 50 | @@ -3,7 +3,7 @@ | 49 | @@ -3,7 +3,7 @@ |
| 51 | # Test for gcc 'asm goto' support | 50 | # Test for gcc 'asm goto' support |
| 52 | # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> | 51 | # Copyright (C) 2010, Jason Baron <jbaron@redhat.com> |
| 53 | 52 | ||
| 54 | -cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y" | 53 | -cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null |
| 55 | +cat << "END" > ./input | 54 | +cat << "END" > ./input |
| 56 | int main(void) | 55 | int main(void) |
| 57 | { | 56 | { |
| @@ -61,8 +60,8 @@ index 083c526..8dfac55 100755 | |||
| 61 | } | 60 | } |
| 62 | END | 61 | END |
| 63 | + | 62 | + |
| 64 | +$@ -x c ./input -c -o ./output && echo "y" | 63 | +$@ -x c ./input -fno-PIE -c -o ./output |
| 65 | +rm ./input ./output | 64 | +rm ./input ./output |
| 66 | -- | 65 | -- |
| 67 | 2.7.4 | 66 | 2.19.1 |
| 68 | 67 | ||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch deleted file mode 100644 index 462fdba2ed..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch +++ /dev/null | |||
| @@ -1,43 +0,0 @@ | |||
| 1 | From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dave Martin <Dave.Martin@arm.com> | ||
| 3 | Date: Tue, 11 Dec 2018 19:26:46 +0000 | ||
| 4 | Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition | ||
| 5 | |||
| 6 | SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping | ||
| 7 | over the ptrace NT_ARM_SVE header (struct user_sve_header) to the | ||
| 8 | start of the SVE register data proper. | ||
| 9 | |||
| 10 | However, currently SVE_PT_REGS_OFFSET is defined in terms of struct | ||
| 11 | sve_context, which is wrong: that structure describes the SVE | ||
| 12 | header in the signal frame, not in the ptrace regset. | ||
| 13 | |||
| 14 | This patch fixes the definition to use the ptrace header structure | ||
| 15 | struct user_sve_header instead. | ||
| 16 | |||
| 17 | By good fortune, the to structures are the same size anyway, so | ||
| 18 | there is no functional or ABI change. | ||
| 19 | |||
| 20 | Signed-off-by: Dave Martin <Dave.Martin@arm.com> | ||
| 21 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 22 | |||
| 23 | Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html] | ||
| 24 | --- | ||
| 25 | arch/arm64/include/uapi/asm/ptrace.h | 2 +- | ||
| 26 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 27 | |||
| 28 | diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h | ||
| 29 | index 98c4ce55d9c3..ad64d2c92ef5 100644 | ||
| 30 | --- a/arch/arm64/include/uapi/asm/ptrace.h | ||
| 31 | +++ b/arch/arm64/include/uapi/asm/ptrace.h | ||
| 32 | @@ -130,7 +130,7 @@ struct user_sve_header { | ||
| 33 | |||
| 34 | /* Offset from the start of struct user_sve_header to the register data */ | ||
| 35 | #define SVE_PT_REGS_OFFSET \ | ||
| 36 | - ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) \ | ||
| 37 | + ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1)) \ | ||
| 38 | / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
| 39 | |||
| 40 | /* | ||
| 41 | -- | ||
| 42 | 2.5.0 | ||
| 43 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch deleted file mode 100644 index 0423f0f2cc..0000000000 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch +++ /dev/null | |||
| @@ -1,289 +0,0 @@ | |||
| 1 | From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dave Martin <Dave.Martin@arm.com> | ||
| 3 | Date: Tue, 11 Dec 2018 19:26:47 +0000 | ||
| 4 | Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from | ||
| 5 | <uapi/asm/sigcontext.h> | ||
| 6 | |||
| 7 | Currently, <uapi/asm/sigcontext.h> provides common definitions for | ||
| 8 | describing SVE context structures that are also used by the ptrace | ||
| 9 | definitions in <uapi/asm/ptrace.h>. | ||
| 10 | |||
| 11 | For this reason, a #include of <asm/sigcontext.h> was added in | ||
| 12 | ptrace.h, but it this turns out that this can interact badly with | ||
| 13 | userspace code that tries to include ptrace.h on top of the libc | ||
| 14 | headers (which may provide their own shadow definitions for | ||
| 15 | sigcontext.h). | ||
| 16 | |||
| 17 | To make the headers easier for userspace to consume, this patch | ||
| 18 | bounces the common definitions into an __SVE_* namespace and moves | ||
| 19 | them to a backend header <uapi/asm/sve_context.h> that can be | ||
| 20 | included by the other headers as appropriate. This should allow | ||
| 21 | ptrace.h to be used alongside libc's sigcontext.h (if any) without | ||
| 22 | ill effects. | ||
| 23 | |||
| 24 | This should make the situation unambiguous: <asm/sigcontext.h> is | ||
| 25 | the header to include for the sigframe-specific definitions, while | ||
| 26 | <asm/ptrace.h> is the header to include for ptrace-specific | ||
| 27 | definitions. | ||
| 28 | |||
| 29 | To avoid conflicting with existing usage, <asm/sigcontext.h> | ||
| 30 | remains the canonical way to get the common definitions for | ||
| 31 | SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the | ||
| 32 | kernel: relying on these being defined as a side effect of | ||
| 33 | including just <asm/ptrace.h> was never intended to be safe. | ||
| 34 | |||
| 35 | Signed-off-by: Dave Martin <Dave.Martin@arm.com> | ||
| 36 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 37 | |||
| 38 | Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html] | ||
| 39 | --- | ||
| 40 | arch/arm64/include/uapi/asm/ptrace.h | 39 ++++++++++----------- | ||
| 41 | arch/arm64/include/uapi/asm/sigcontext.h | 56 +++++++++++++++---------------- | ||
| 42 | arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++ | ||
| 43 | 3 files changed, 96 insertions(+), 49 deletions(-) | ||
| 44 | create mode 100644 arch/arm64/include/uapi/asm/sve_context.h | ||
| 45 | |||
| 46 | diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h | ||
| 47 | index ad64d2c92ef5..81547c3a95a3 100644 | ||
| 48 | --- a/arch/arm64/include/uapi/asm/ptrace.h | ||
| 49 | +++ b/arch/arm64/include/uapi/asm/ptrace.h | ||
| 50 | @@ -23,7 +23,7 @@ | ||
| 51 | #include <linux/types.h> | ||
| 52 | |||
| 53 | #include <asm/hwcap.h> | ||
| 54 | -#include <asm/sigcontext.h> | ||
| 55 | +#include <asm/sve_context.h> | ||
| 56 | |||
| 57 | |||
| 58 | /* | ||
| 59 | @@ -129,9 +129,9 @@ struct user_sve_header { | ||
| 60 | */ | ||
| 61 | |||
| 62 | /* Offset from the start of struct user_sve_header to the register data */ | ||
| 63 | -#define SVE_PT_REGS_OFFSET \ | ||
| 64 | - ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1)) \ | ||
| 65 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
| 66 | +#define SVE_PT_REGS_OFFSET \ | ||
| 67 | + ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1)) \ | ||
| 68 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
| 69 | |||
| 70 | /* | ||
| 71 | * The register data content and layout depends on the value of the | ||
| 72 | @@ -177,39 +177,36 @@ struct user_sve_header { | ||
| 73 | * Additional data might be appended in the future. | ||
| 74 | */ | ||
| 75 | |||
| 76 | -#define SVE_PT_SVE_ZREG_SIZE(vq) SVE_SIG_ZREG_SIZE(vq) | ||
| 77 | -#define SVE_PT_SVE_PREG_SIZE(vq) SVE_SIG_PREG_SIZE(vq) | ||
| 78 | -#define SVE_PT_SVE_FFR_SIZE(vq) SVE_SIG_FFR_SIZE(vq) | ||
| 79 | +#define SVE_PT_SVE_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) | ||
| 80 | +#define SVE_PT_SVE_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
| 81 | +#define SVE_PT_SVE_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) | ||
| 82 | #define SVE_PT_SVE_FPSR_SIZE sizeof(__u32) | ||
| 83 | #define SVE_PT_SVE_FPCR_SIZE sizeof(__u32) | ||
| 84 | |||
| 85 | -#define __SVE_SIG_TO_PT(offset) \ | ||
| 86 | - ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET) | ||
| 87 | - | ||
| 88 | #define SVE_PT_SVE_OFFSET SVE_PT_REGS_OFFSET | ||
| 89 | |||
| 90 | #define SVE_PT_SVE_ZREGS_OFFSET \ | ||
| 91 | - __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET) | ||
| 92 | + (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET) | ||
| 93 | #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \ | ||
| 94 | - __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n)) | ||
| 95 | + (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) | ||
| 96 | #define SVE_PT_SVE_ZREGS_SIZE(vq) \ | ||
| 97 | - (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) | ||
| 98 | + (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET) | ||
| 99 | |||
| 100 | #define SVE_PT_SVE_PREGS_OFFSET(vq) \ | ||
| 101 | - __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq)) | ||
| 102 | + (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) | ||
| 103 | #define SVE_PT_SVE_PREG_OFFSET(vq, n) \ | ||
| 104 | - __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n)) | ||
| 105 | + (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n)) | ||
| 106 | #define SVE_PT_SVE_PREGS_SIZE(vq) \ | ||
| 107 | - (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \ | ||
| 108 | + (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \ | ||
| 109 | SVE_PT_SVE_PREGS_OFFSET(vq)) | ||
| 110 | |||
| 111 | #define SVE_PT_SVE_FFR_OFFSET(vq) \ | ||
| 112 | - __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq)) | ||
| 113 | + (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq)) | ||
| 114 | |||
| 115 | #define SVE_PT_SVE_FPSR_OFFSET(vq) \ | ||
| 116 | ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \ | ||
| 117 | - (SVE_VQ_BYTES - 1)) \ | ||
| 118 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
| 119 | + (__SVE_VQ_BYTES - 1)) \ | ||
| 120 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
| 121 | #define SVE_PT_SVE_FPCR_OFFSET(vq) \ | ||
| 122 | (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE) | ||
| 123 | |||
| 124 | @@ -220,8 +217,8 @@ struct user_sve_header { | ||
| 125 | |||
| 126 | #define SVE_PT_SVE_SIZE(vq, flags) \ | ||
| 127 | ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE \ | ||
| 128 | - - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1)) \ | ||
| 129 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
| 130 | + - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1)) \ | ||
| 131 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
| 132 | |||
| 133 | #define SVE_PT_SIZE(vq, flags) \ | ||
| 134 | (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ? \ | ||
| 135 | diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h | ||
| 136 | index dca8f8b5168b..5f3c0cec5af9 100644 | ||
| 137 | --- a/arch/arm64/include/uapi/asm/sigcontext.h | ||
| 138 | +++ b/arch/arm64/include/uapi/asm/sigcontext.h | ||
| 139 | @@ -130,6 +130,8 @@ struct sve_context { | ||
| 140 | |||
| 141 | #endif /* !__ASSEMBLY__ */ | ||
| 142 | |||
| 143 | +#include <asm/sve_context.h> | ||
| 144 | + | ||
| 145 | /* | ||
| 146 | * The SVE architecture leaves space for future expansion of the | ||
| 147 | * vector length beyond its initial architectural limit of 2048 bits | ||
| 148 | @@ -138,21 +140,20 @@ struct sve_context { | ||
| 149 | * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ | ||
| 150 | * terminology. | ||
| 151 | */ | ||
| 152 | -#define SVE_VQ_BYTES 16 /* number of bytes per quadword */ | ||
| 153 | +#define SVE_VQ_BYTES __SVE_VQ_BYTES /* bytes per quadword */ | ||
| 154 | |||
| 155 | -#define SVE_VQ_MIN 1 | ||
| 156 | -#define SVE_VQ_MAX 512 | ||
| 157 | +#define SVE_VQ_MIN __SVE_VQ_MIN | ||
| 158 | +#define SVE_VQ_MAX __SVE_VQ_MAX | ||
| 159 | |||
| 160 | -#define SVE_VL_MIN (SVE_VQ_MIN * SVE_VQ_BYTES) | ||
| 161 | -#define SVE_VL_MAX (SVE_VQ_MAX * SVE_VQ_BYTES) | ||
| 162 | +#define SVE_VL_MIN __SVE_VL_MIN | ||
| 163 | +#define SVE_VL_MAX __SVE_VL_MAX | ||
| 164 | |||
| 165 | -#define SVE_NUM_ZREGS 32 | ||
| 166 | -#define SVE_NUM_PREGS 16 | ||
| 167 | +#define SVE_NUM_ZREGS __SVE_NUM_ZREGS | ||
| 168 | +#define SVE_NUM_PREGS __SVE_NUM_PREGS | ||
| 169 | |||
| 170 | -#define sve_vl_valid(vl) \ | ||
| 171 | - ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX) | ||
| 172 | -#define sve_vq_from_vl(vl) ((vl) / SVE_VQ_BYTES) | ||
| 173 | -#define sve_vl_from_vq(vq) ((vq) * SVE_VQ_BYTES) | ||
| 174 | +#define sve_vl_valid(vl) __sve_vl_valid(vl) | ||
| 175 | +#define sve_vq_from_vl(vl) __sve_vq_from_vl(vl) | ||
| 176 | +#define sve_vl_from_vq(vq) __sve_vl_from_vq(vq) | ||
| 177 | |||
| 178 | /* | ||
| 179 | * If the SVE registers are currently live for the thread at signal delivery, | ||
| 180 | @@ -205,34 +206,33 @@ struct sve_context { | ||
| 181 | * Additional data might be appended in the future. | ||
| 182 | */ | ||
| 183 | |||
| 184 | -#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES) | ||
| 185 | -#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8)) | ||
| 186 | -#define SVE_SIG_FFR_SIZE(vq) SVE_SIG_PREG_SIZE(vq) | ||
| 187 | +#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq) | ||
| 188 | +#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
| 189 | +#define SVE_SIG_FFR_SIZE(vq) __SVE_FFR_SIZE(vq) | ||
| 190 | |||
| 191 | #define SVE_SIG_REGS_OFFSET \ | ||
| 192 | - ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1)) \ | ||
| 193 | - / SVE_VQ_BYTES * SVE_VQ_BYTES) | ||
| 194 | + ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1)) \ | ||
| 195 | + / __SVE_VQ_BYTES * __SVE_VQ_BYTES) | ||
| 196 | |||
| 197 | -#define SVE_SIG_ZREGS_OFFSET SVE_SIG_REGS_OFFSET | ||
| 198 | +#define SVE_SIG_ZREGS_OFFSET \ | ||
| 199 | + (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET) | ||
| 200 | #define SVE_SIG_ZREG_OFFSET(vq, n) \ | ||
| 201 | - (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n)) | ||
| 202 | -#define SVE_SIG_ZREGS_SIZE(vq) \ | ||
| 203 | - (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET) | ||
| 204 | + (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n)) | ||
| 205 | +#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq) | ||
| 206 | |||
| 207 | #define SVE_SIG_PREGS_OFFSET(vq) \ | ||
| 208 | - (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq)) | ||
| 209 | + (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq)) | ||
| 210 | #define SVE_SIG_PREG_OFFSET(vq, n) \ | ||
| 211 | - (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n)) | ||
| 212 | -#define SVE_SIG_PREGS_SIZE(vq) \ | ||
| 213 | - (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq)) | ||
| 214 | + (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n)) | ||
| 215 | +#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq) | ||
| 216 | |||
| 217 | #define SVE_SIG_FFR_OFFSET(vq) \ | ||
| 218 | - (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq)) | ||
| 219 | + (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq)) | ||
| 220 | |||
| 221 | #define SVE_SIG_REGS_SIZE(vq) \ | ||
| 222 | - (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET) | ||
| 223 | - | ||
| 224 | -#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) | ||
| 225 | + (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq)) | ||
| 226 | |||
| 227 | +#define SVE_SIG_CONTEXT_SIZE(vq) \ | ||
| 228 | + (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq)) | ||
| 229 | |||
| 230 | #endif /* _UAPI__ASM_SIGCONTEXT_H */ | ||
| 231 | diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h | ||
| 232 | new file mode 100644 | ||
| 233 | index 000000000000..140f14c318a5 | ||
| 234 | --- /dev/null | ||
| 235 | +++ b/arch/arm64/include/uapi/asm/sve_context.h | ||
| 236 | @@ -0,0 +1,50 @@ | ||
| 237 | +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 238 | +/* Copyright (C) 2017-2018 ARM Limited */ | ||
| 239 | + | ||
| 240 | +#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H) | ||
| 241 | +#error "Do not include this header or use its definitions directly." | ||
| 242 | +#endif | ||
| 243 | + | ||
| 244 | +#ifndef _UAPI__ASM_SVE_CONTEXT_H | ||
| 245 | +#define _UAPI__ASM_SVE_CONTEXT_H | ||
| 246 | + | ||
| 247 | +#define __SVE_VQ_BYTES 16 /* number of bytes per quadword */ | ||
| 248 | + | ||
| 249 | +#define __SVE_VQ_MIN 1 | ||
| 250 | +#define __SVE_VQ_MAX 512 | ||
| 251 | + | ||
| 252 | +#define __SVE_VL_MIN (__SVE_VQ_MIN * __SVE_VQ_BYTES) | ||
| 253 | +#define __SVE_VL_MAX (__SVE_VQ_MAX * __SVE_VQ_BYTES) | ||
| 254 | + | ||
| 255 | +#define __SVE_NUM_ZREGS 32 | ||
| 256 | +#define __SVE_NUM_PREGS 16 | ||
| 257 | + | ||
| 258 | +#define __sve_vl_valid(vl) \ | ||
| 259 | + ((vl) % __SVE_VQ_BYTES == 0 && \ | ||
| 260 | + (vl) >= __SVE_VL_MIN && \ | ||
| 261 | + (vl) <= __SVE_VL_MAX) | ||
| 262 | + | ||
| 263 | +#define __sve_vq_from_vl(vl) ((vl) / __SVE_VQ_BYTES) | ||
| 264 | +#define __sve_vl_from_vq(vq) ((vq) * __SVE_VQ_BYTES) | ||
| 265 | + | ||
| 266 | +#define __SVE_ZREG_SIZE(vq) ((__u32)(vq) * __SVE_VQ_BYTES) | ||
| 267 | +#define __SVE_PREG_SIZE(vq) ((__u32)(vq) * (__SVE_VQ_BYTES / 8)) | ||
| 268 | +#define __SVE_FFR_SIZE(vq) __SVE_PREG_SIZE(vq) | ||
| 269 | + | ||
| 270 | +#define __SVE_ZREGS_OFFSET 0 | ||
| 271 | +#define __SVE_ZREG_OFFSET(vq, n) \ | ||
| 272 | + (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n)) | ||
| 273 | +#define __SVE_ZREGS_SIZE(vq) \ | ||
| 274 | + (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET) | ||
| 275 | + | ||
| 276 | +#define __SVE_PREGS_OFFSET(vq) \ | ||
| 277 | + (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq)) | ||
| 278 | +#define __SVE_PREG_OFFSET(vq, n) \ | ||
| 279 | + (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n)) | ||
| 280 | +#define __SVE_PREGS_SIZE(vq) \ | ||
| 281 | + (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq)) | ||
| 282 | + | ||
| 283 | +#define __SVE_FFR_OFFSET(vq) \ | ||
| 284 | + (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq)) | ||
| 285 | + | ||
| 286 | +#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */ | ||
| 287 | -- | ||
| 288 | 2.5.0 | ||
| 289 | |||
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb index 48f25ebc1a..e76120c5b8 100644 --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb | |||
| @@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\ | |||
| 10 | " | 10 | " |
| 11 | 11 | ||
| 12 | SRC_URI_append = "\ | 12 | SRC_URI_append = "\ |
| 13 | file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \ | ||
| 14 | file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ | 13 | file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \ |
| 15 | file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ | 14 | file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \ |
| 16 | file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \ | ||
| 17 | file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \ | ||
| 18 | " | 15 | " |
| 19 | 16 | ||
| 20 | SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900" | 17 | SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0" |
| 21 | SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1" | 18 | SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43" |
