From 6b29bc81c698ab1fb182269901864747c6be368b Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 28 Feb 2019 23:26:05 +0000 Subject: system/easy-kernel*: Fix build for powerpc64 with GCC 8 --- system/easy-kernel-power8-64k/APKBUILD | 5 +- .../easy-kernel-power8-64k/ppc64-epapr-gcc8.patch | 84 ++++++++++++++++++++++ 2 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 system/easy-kernel-power8-64k/ppc64-epapr-gcc8.patch (limited to 'system/easy-kernel-power8-64k') diff --git a/system/easy-kernel-power8-64k/APKBUILD b/system/easy-kernel-power8-64k/APKBUILD index 4ccc016fe..fb2fcda0b 100644 --- a/system/easy-kernel-power8-64k/APKBUILD +++ b/system/easy-kernel-power8-64k/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 6e155f1109666ee907baf7f586d856366ba8afb6f008d48489c0bc269438a8280534266d3e37b449e44ce964688ea48f041bb36214eb495d59b84e55cdf49c19 config-ppc64 -64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch" +64486a4f53046a69f727cecd8c39400b50c2d2b15e3b5ca8c18b8249d25990f3a872ec064800ba3d190f9d25b4518899b9ea3675920f487108102856d6beb51e futex-cmpxchg.patch +0df4e823e19e8fc379b5ad66192eb3e890daa3dac8d7a9ebbab4cf3c60ce9f15fcc25a54b86b341db53db3d78c928ca5f55933e12eee75680e705cca8a7bdff4 ppc64-epapr-gcc8.patch" diff --git a/system/easy-kernel-power8-64k/ppc64-epapr-gcc8.patch b/system/easy-kernel-power8-64k/ppc64-epapr-gcc8.patch new file mode 100644 index 000000000..192e83845 --- /dev/null +++ b/system/easy-kernel-power8-64k/ppc64-epapr-gcc8.patch @@ -0,0 +1,84 @@ +From 186b8f1587c79c2fa04bfa392fdf084443e398c1 Mon Sep 17 00:00:00 2001 +From: Seth Forshee +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 +Signed-off-by: Michael Ellerman +--- + 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 + -- cgit v1.2.3-60-g2f50