diff options
author | Bruce Ashfield <bruce.ashfield@gmail.com> | 2019-03-06 11:37:10 -0500 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2019-03-06 16:44:37 +0000 |
commit | c2fecb0a513cfe5ddf75bfe24e98dec15dab3adc (patch) | |
tree | 8f84d32b48206c9319673f74fd1610d9f0d7ab9f | |
parent | 04bfce60c8c8e4d0ba17460e89d7a6d3d071c147 (diff) | |
download | poky-c2fecb0a513cfe5ddf75bfe24e98dec15dab3adc.tar.gz |
linux-libc-headers: update to 5.x headers
Updating the linux-libc-headers to the 5.x kernel variant to match
the latest reference kernel in the 2.7 release.
We have two patches refreshed for context changes, and three patches
dropped since they have been merged to the mainline kernel and are
no longer necessary.
(From OE-Core rev: f6c825c41e3d4c14ae4ba0b2a07cc41d538e0d61)
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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" |