summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSasha Levin <sashal@kernel.org>2019-06-28 16:36:14 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-07-03 13:15:59 +0200
commitc6975e4196549c18c5277a55e30b2d6d1b80abf2 (patch)
tree0980b801b15e808f631dbb678ba291202efaa9d3
parent5267bb9c170d2b99e3cfdb8b60704e375e942266 (diff)
downloadlinux-stable-c6975e4196549c18c5277a55e30b2d6d1b80abf2.tar.gz
linux-stable-c6975e4196549c18c5277a55e30b2d6d1b80abf2.tar.bz2
linux-stable-c6975e4196549c18c5277a55e30b2d6d1b80abf2.zip
Revert "compiler.h: update definition of unreachable()"
This reverts commit 82017e26e51596ee577171a33f357377ec6513b5, which is upstream commit fe0640eb30b7da261ae84d252ed9ed3c7e68dfd8. On Fri, Jun 28, 2019 at 8:53 AM Tony Battersby <tonyb@cybernetics.com> wrote: > > Old versions of gcc cannot compile 4.14 since 4.14.113: > > ./include/asm-generic/fixmap.h:37: error: implicit declaration of function ‘__builtin_unreachable’ > > The stable commit that caused the problem is 82017e26e515 ("compiler.h: > update definition of unreachable()") (upstream commit fe0640eb30b7). > Reverting the commit fixes the problem. > > Kernel 4.17 dropped support for older versions of gcc in upstream commit > cafa0010cd51 ("Raise the minimum required gcc version to 4.6"). This > was not backported to 4.14 since that would go against the stable kernel > rules. > > Upstream commit 815f0ddb346c ("include/linux/compiler*.h: make > compiler-*.h mutually exclusive") was a fix for cafa0010cd51. This was > not backported to 4.14. > > Upstream commit fe0640eb30b7 ("compiler.h: update definition of > unreachable()") was a fix for 815f0ddb346c. This is the commit that was > backported to 4.14. But it only fixed a problem introduced in the other > commits, and without those commits, it ends up introducing a problem > instead of fixing one. So I recommend reverting that patch in 4.14, > which will enable old gcc to compile 4.14 again. If I understand > correctly, I believe that clang will still be able to compile 4.14 with > the patch reverted, although I haven't tried to compile with clang. > > The problematic commit is not present in 4.9.x, 4.4.x, 3.18.x, or 3.16.x. CC: Nick Desaulniers <ndesaulniers@google.com> CC: Tony Battersby <tonyb@cybernetics.com>, Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r--include/linux/compiler.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 67c3934fb9ed..a704d032713b 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -119,10 +119,7 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
# define ASM_UNREACHABLE
#endif
#ifndef unreachable
-# define unreachable() do { \
- annotate_unreachable(); \
- __builtin_unreachable(); \
-} while (0)
+# define unreachable() do { annotate_reachable(); do { } while (1); } while (0)
#endif
/*