diff options
author | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-02-28 23:26:05 +0000 |
---|---|---|
committer | A. Wilcox <AWilcox@Wilcox-Tech.com> | 2019-02-28 23:26:05 +0000 |
commit | 6b29bc81c698ab1fb182269901864747c6be368b (patch) | |
tree | dfa698eb1d38bd6424d2a56cc66dfcd022e8197e /system/easy-kernel-power8 | |
parent | 1986226438581150c70592abbba6ba49e4c47931 (diff) | |
download | packages-6b29bc81c698ab1fb182269901864747c6be368b.tar.gz packages-6b29bc81c698ab1fb182269901864747c6be368b.tar.bz2 packages-6b29bc81c698ab1fb182269901864747c6be368b.tar.xz packages-6b29bc81c698ab1fb182269901864747c6be368b.zip |
system/easy-kernel*: Fix build for powerpc64 with GCC 8
Diffstat (limited to 'system/easy-kernel-power8')
-rw-r--r-- | system/easy-kernel-power8/APKBUILD | 5 | ||||
-rw-r--r-- | system/easy-kernel-power8/ppc64-epapr-gcc8.patch | 84 |
2 files changed, 87 insertions, 2 deletions
diff --git a/system/easy-kernel-power8/APKBUILD b/system/easy-kernel-power8/APKBUILD index 34f8faddd..f06424d1a 100644 --- a/system/easy-kernel-power8/APKBUILD +++ b/system/easy-kernel-power8/APKBUILD @@ -13,7 +13,6 @@ options="!check !dbg !strip !tracedeps" license="GPL-2.0-only" depends="" makedepends="bc gzip kmod lzop openssl-dev xz" -install="" provides="easy-kernel$_kflavour=$pkgver-r$pkgrel" subpackages="$_pkgname-modules-$pkgver-mc$pkgrel:modules $_pkgname-src-$pkgver-mc$pkgrel:src @@ -25,6 +24,7 @@ source="https://cdn.kernel.org/pub/linux/kernel/v${_pkgmajver}.x/linux-${_pkgmin ast-endianness.patch config-ppc64 futex-cmpxchg.patch + ppc64-epapr-gcc8.patch " builddir="$srcdir/linux-${_pkgminver}" @@ -94,4 +94,5 @@ sha512sums="77e43a02d766c3d73b7e25c4aafb2e931d6b16e870510c22cef0cdb05c3acb7952b8 bfe606f208894cc572fb98f323e26956c69b4f75febd4a9b500514cbb2aa70bddb2aba05b3f16a5fe52535236b215335f73974324065f80643265f17f281faa6 linux-4.14-mc13.patch.xz e41d9111219342ad13367902242444ecdd847a93575c3f9709d6c6a075bc650f4a15be9db1a8798435fc0a0b56d41705829bfe0d2c2d88f8d1c28931e27ef5be ast-endianness.patch 70c09aaa7e75ef04389d69768874bc243f351a63f481b191d5708f74f1ceccf32dbbc286415aff4eaf44040a0fd75e90487a50f0c53a32f6d1c0dc779cb56fec config-ppc64 -64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch" +64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch +0df4e823e19e8fc379b5ad66192eb3e890daa3dac8d7a9ebbab4cf3c60ce9f15fcc25a54b86b341db53db3d78c928ca5f55933e12eee75680e705cca8a7bdff4 ppc64-epapr-gcc8.patch" diff --git a/system/easy-kernel-power8/ppc64-epapr-gcc8.patch b/system/easy-kernel-power8/ppc64-epapr-gcc8.patch new file mode 100644 index 000000000..192e83845 --- /dev/null +++ b/system/easy-kernel-power8/ppc64-epapr-gcc8.patch @@ -0,0 +1,84 @@ +From 186b8f1587c79c2fa04bfa392fdf084443e398c1 Mon Sep 17 00:00:00 2001 +From: Seth Forshee <seth.forshee@canonical.com> +Date: Thu, 28 Sep 2017 09:33:39 -0400 +Subject: powerpc: Always initialize input array when calling epapr_hypercall() + +Several callers to epapr_hypercall() pass an uninitialized stack +allocated array for the input arguments, presumably because they +have no input arguments. However this can produce errors like +this one + + arch/powerpc/include/asm/epapr_hcalls.h:470:42: error: 'in' may be used uninitialized in this function [-Werror=maybe-uninitialized] + unsigned long register r3 asm("r3") = in[0]; + ~~^~~ + +Fix callers to this function to always zero-initialize the input +arguments array to prevent this. + +Signed-off-by: Seth Forshee <seth.forshee@canonical.com> +Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> +--- + arch/powerpc/include/asm/epapr_hcalls.h | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/arch/powerpc/include/asm/epapr_hcalls.h b/arch/powerpc/include/asm/epapr_hcalls.h +index 334459ad145b..90863245df53 100644 +--- a/arch/powerpc/include/asm/epapr_hcalls.h ++++ b/arch/powerpc/include/asm/epapr_hcalls.h +@@ -508,7 +508,7 @@ static unsigned long epapr_hypercall(unsigned long *in, + + static inline long epapr_hypercall0_1(unsigned int nr, unsigned long *r2) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + unsigned long r; + +@@ -520,7 +520,7 @@ static inline long epapr_hypercall0_1(unsigned int nr, unsigned long *r2) + + static inline long epapr_hypercall0(unsigned int nr) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + return epapr_hypercall(in, out, nr); +@@ -528,7 +528,7 @@ static inline long epapr_hypercall0(unsigned int nr) + + static inline long epapr_hypercall1(unsigned int nr, unsigned long p1) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -538,7 +538,7 @@ static inline long epapr_hypercall1(unsigned int nr, unsigned long p1) + static inline long epapr_hypercall2(unsigned int nr, unsigned long p1, + unsigned long p2) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -549,7 +549,7 @@ static inline long epapr_hypercall2(unsigned int nr, unsigned long p1, + static inline long epapr_hypercall3(unsigned int nr, unsigned long p1, + unsigned long p2, unsigned long p3) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +@@ -562,7 +562,7 @@ static inline long epapr_hypercall4(unsigned int nr, unsigned long p1, + unsigned long p2, unsigned long p3, + unsigned long p4) + { +- unsigned long in[8]; ++ unsigned long in[8] = {0}; + unsigned long out[8]; + + in[0] = p1; +-- +cgit 1.2-0.3.lf.el7 + |