4 files changed, 0 insertions(+), 200 deletions(-)
M linux-motorola-doha/APKBUILD
D linux-motorola-doha/gcc7-give-up-on-ilog2-const-optimizations.patch
D linux-motorola-doha/gcc8-fix-put-user.patch
D linux-motorola-doha/kernel-use-the-gnu89-standard-explicitly.patch
M linux-motorola-doha/APKBUILD => linux-motorola-doha/APKBUILD +0 -4
@@ 36,10 36,6 @@ source="
fix_ipa_buf_size_mismatch.patch
Fix-dangerous-relocation.patch
"
-# gcc10-extern_YYLOC_global_declaration.patch
-# gcc7-give-up-on-ilog2-const-optimizations.patch
-# gcc8-fix-put-user.patch
-# kernel-use-the-gnu89-standard-explicitly.patch
builddir="$srcdir/$_repository-$_commit"
_outdir="out"
D linux-motorola-doha/gcc7-give-up-on-ilog2-const-optimizations.patch => linux-motorola-doha/gcc7-give-up-on-ilog2-const-optimizations.patch +0 -90
@@ 1,90 0,0 @@
-From a7bfe0a2832e66f3d732e4210b5d53c81cc7a85f Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds@linux-foundation.org>
-Date: Thu, 27 Sep 2018 19:16:56 -0400
-Subject: [PATCH] give up on gcc ilog2() constant optimizations
-
-commit 474c90156c8dcc2fa815e6716cc9394d7930cb9c upstream.
-
-gcc-7 has an "optimization" pass that completely screws up, and
-generates the code expansion for the (impossible) case of calling
-ilog2() with a zero constant, even when the code gcc compiles does not
-actually have a zero constant.
-
-And we try to generate a compile-time error for anybody doing ilog2() on
-a constant where that doesn't make sense (be it zero or negative). So
-now gcc7 will fail the build due to our sanity checking, because it
-created that constant-zero case that didn't actually exist in the source
-code.
-
-There's a whole long discussion on the kernel mailing about how to work
-around this gcc bug. The gcc people themselevs have discussed their
-"feature" in
-
- https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785
-
-but it's all water under the bridge, because while it looked at one
-point like it would be solved by the time gcc7 was released, that was
-not to be.
-
-So now we have to deal with this compiler braindamage.
-
-And the only simple approach seems to be to just delete the code that
-tries to warn about bad uses of ilog2().
-
-So now "ilog2()" will just return 0 not just for the value 1, but for
-any non-positive value too.
-
-It's not like I can recall anybody having ever actually tried to use
-this function on any invalid value, but maybe the sanity check just
-meant that such code never made it out in public.
-
-[js] no tools/include/linux/log2.h copy of that yet
-
-Reported-by: Laura Abbott <labbott@redhat.com>
-Cc: John Stultz <john.stultz@linaro.org>,
-Cc: Thomas Gleixner <tglx@linutronix.de>
-Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Jiri Slaby <jslaby@suse.cz>
----
- include/linux/log2.h | 13 ++-----------
- 1 file changed, 2 insertions(+), 11 deletions(-)
-
-diff --git a/include/linux/log2.h b/include/linux/log2.h
-index fd7ff3d91..f38fae23b 100644
---- a/include/linux/log2.h
-+++ b/include/linux/log2.h
-@@ -15,12 +15,6 @@
- #include <linux/types.h>
- #include <linux/bitops.h>
-
--/*
-- * deal with unrepresentable constant logarithms
-- */
--extern __attribute__((const, noreturn))
--int ____ilog2_NaN(void);
--
- /*
- * non-constant log of base 2 calculators
- * - the arch may override these in asm/bitops.h if they can be implemented
-@@ -85,7 +79,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n)
- #define ilog2(n) \
- ( \
- __builtin_constant_p(n) ? ( \
-- (n) < 1 ? ____ilog2_NaN() : \
-+ (n) < 2 ? 0 : \
- (n) & (1ULL << 63) ? 63 : \
- (n) & (1ULL << 62) ? 62 : \
- (n) & (1ULL << 61) ? 61 : \
-@@ -148,10 +142,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n)
- (n) & (1ULL << 4) ? 4 : \
- (n) & (1ULL << 3) ? 3 : \
- (n) & (1ULL << 2) ? 2 : \
-- (n) & (1ULL << 1) ? 1 : \
-- (n) & (1ULL << 0) ? 0 : \
-- ____ilog2_NaN() \
-- ) : \
-+ 1 ) : \
- (sizeof(n) <= 4) ? \
- __ilog2_u32(n) : \
- __ilog2_u64(n) \
D linux-motorola-doha/gcc8-fix-put-user.patch => linux-motorola-doha/gcc8-fix-put-user.patch +0 -39
@@ 1,39 0,0 @@
-From 8c8187d41b99acd4f2078d0fff6807e0eeb47407 Mon Sep 17 00:00:00 2001
-From: Arnd Bergmann <arnd@arndb.de>
-Date: Thu, 26 Jul 2018 10:13:23 +0200
-Subject: [PATCH] ARM: fix put_user() for gcc-8
-
-Building kernels before linux-4.7 with gcc-8 results in many build failures
-when gcc triggers a check that was meant to catch broken compilers:
-
-/tmp/ccCGMQmS.s:648: Error: .err encountered
-
-According to the discussion in the gcc bugzilla, a local "register
-asm()" variable is still supposed to be the correct way to force an
-inline assembly to use a particular register, but marking it 'const'
-lets the compiler do optimizations that break that, i.e the compiler is
-free to treat the variable as either 'const' or 'register' in that case.
-
-Upstream commit 9f73bd8bb445 ("ARM: uaccess: remove put_user() code
-duplication") fixed this problem in linux-4.8 as part of a larger change,
-but seems a little too big to be backported to 4.4.
-
-Let's take the simplest fix and change only the one broken line in the
-same way as newer kernels.
-
-Suggested-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
-Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85745
-Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86673
-Signed-off-by: Arnd Bergmann <arnd@arndb.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- arch/arm/include/asm/uaccess.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
-index b04850fdeb5..f8ad54b24ac 100644
---- a/arch/arm/include/asm/uaccess.h
-+++ b/arch/arm/include/asm/uaccess.h
-@@ -162 +162 @@ extern int __put_user_8(void *, unsigned long long);
-- register const typeof(*(p)) __r2 asm("r2") = (x); \
-+ register typeof(*(p)) __r2 asm("r2") = (x); \
D linux-motorola-doha/kernel-use-the-gnu89-standard-explicitly.patch => linux-motorola-doha/kernel-use-the-gnu89-standard-explicitly.patch +0 -67
@@ 1,67 0,0 @@
-From 51b97e354ba9fce1890cf38ecc754aa49677fc89 Mon Sep 17 00:00:00 2001
-From: "Kirill A. Shutemov" <kirill@shutemov.name>
-Date: Mon, 20 Oct 2014 12:23:12 +0300
-Subject: kernel: use the gnu89 standard explicitly
-
-From: "Kirill A. Shutemov" <kirill@shutemov.name>
-
-commit 51b97e354ba9fce1890cf38ecc754aa49677fc89 upstream.
-
-Sasha Levin reports:
- "gcc5 changes the default standard to c11, which makes kernel build
- unhappy
-
- Explicitly define the kernel standard to be gnu89 which should keep
- everything working exactly like it was before gcc5"
-
-There are multiple small issues with the new default, but the biggest
-issue seems to be that the old - and very useful - GNU extension to
-allow a cast in front of an initializer has gone away.
-
-Patch updated by Kirill:
- "I'm pretty sure all gcc versions you can build kernel with supports
- -std=gnu89. cc-option is redunrant.
-
- We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"
-
-Note by Andrew Pinski:
- "Yes it was reported and both problems relating to this extension has
- been added to gnu99 and gnu11. Though there are other issues with the
- kernel dealing with extern inline have different semantics between
- gnu89 and gnu99/11"
-
-End result: we may be able to move up to a newer stdc model eventually,
-but right now the newer models have some annoying deficiencies, so the
-traditional "gnu89" model ends up being the preferred one.
-
-Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-Singed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-
----
- Makefile | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
---- a/Makefile
-+++ b/Makefile
-@@ -241,7 +241,7 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH"
-
- HOSTCC = gcc
- HOSTCXX = g++
--HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
-+HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
- HOSTCXXFLAGS = -O2
-
- # Decide whether to build built-in, modular, or both.
-@@ -373,7 +373,9 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstric
- -fno-strict-aliasing -fno-common \
- -Werror-implicit-function-declaration \
- -Wno-format-security \
-- -fno-delete-null-pointer-checks
-+ -fno-delete-null-pointer-checks \
-+ -std=gnu89
-+
- KBUILD_AFLAGS_KERNEL :=
- KBUILD_CFLAGS_KERNEL :=
- KBUILD_AFLAGS := -D__ASSEMBLY__