Skip to content
  • Sasha Levin's avatar
    Revert "compiler.h: update definition of unreachable()" · c6975e41
    Sasha Levin authored
    This reverts commit 82017e26, which is
    upstream commit fe0640eb.
    
    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 82017e26 ("compiler.h:
    > update definition of unreachable()") (upstream commit fe0640eb).
    > Reverting the commit fixes the problem.
    >
    > Kernel 4.17 dropped support for older versions of gcc in upstream commit
    > cafa0010 ("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 815f0ddb ("include/linux/compiler*.h: make
    > compiler-*.h mutually exclusive") was a fix for cafa0010.  This was
    > not backported to 4.14.
    >
    > Upstream commit fe0640eb ("compiler.h: update definition of
    > unreachable()") was a fix for 815f0ddb
    
    .  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: default avatarSasha Levin <sashal@kernel.org>
    c6975e41