All of lore.kernel.org
 help / color / mirror / Atom feed
* Regression: cannot compile kernel 4.14 with old gcc
@ 2019-06-28 15:53 Tony Battersby
  2019-06-28 16:42 ` Nick Desaulniers
  0 siblings, 1 reply; 3+ messages in thread
From: Tony Battersby @ 2019-06-28 15:53 UTC (permalink / raw)
  To: stable, Greg Kroah-Hartman, Sasha Levin, Nick Desaulniers
  Cc: Miguel Ojeda, Nathan Chancellor, Josh Poimboeuf, Andy Lutomirski

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.

Tony Battersby
Cybernetics


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression: cannot compile kernel 4.14 with old gcc
  2019-06-28 15:53 Regression: cannot compile kernel 4.14 with old gcc Tony Battersby
@ 2019-06-28 16:42 ` Nick Desaulniers
  2019-06-28 20:37   ` Sasha Levin
  0 siblings, 1 reply; 3+ messages in thread
From: Nick Desaulniers @ 2019-06-28 16:42 UTC (permalink / raw)
  To: Tony Battersby, Greg Kroah-Hartman, Sasha Levin
  Cc: stable, Miguel Ojeda, Nathan Chancellor, Josh Poimboeuf, Andy Lutomirski

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.

$ make CC=clang -j71 arch/x86/mm/fault.o
produces no objtool warning with upstream commit fe0640eb30b7 reverted.

x86 defconfig w/ Clang also have no issue with that reverted on 4.14.y.

Revert away.

Greg, Sasha,
Do you need a patch file for that, or can you please push a
$ cd linux-stable
$ git checkout 4.14.y
$ git revert 82017e26e51596ee577171a33f357377ec6513b5
-- 
Thanks,
~Nick Desaulniers

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression: cannot compile kernel 4.14 with old gcc
  2019-06-28 16:42 ` Nick Desaulniers
@ 2019-06-28 20:37   ` Sasha Levin
  0 siblings, 0 replies; 3+ messages in thread
From: Sasha Levin @ 2019-06-28 20:37 UTC (permalink / raw)
  To: Nick Desaulniers
  Cc: Tony Battersby, Greg Kroah-Hartman, stable, Miguel Ojeda,
	Nathan Chancellor, Josh Poimboeuf, Andy Lutomirski

On Fri, Jun 28, 2019 at 09:42:21AM -0700, Nick Desaulniers wrote:
>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.
>
>$ make CC=clang -j71 arch/x86/mm/fault.o
>produces no objtool warning with upstream commit fe0640eb30b7 reverted.
>
>x86 defconfig w/ Clang also have no issue with that reverted on 4.14.y.
>
>Revert away.
>
>Greg, Sasha,
>Do you need a patch file for that, or can you please push a
>$ cd linux-stable
>$ git checkout 4.14.y
>$ git revert 82017e26e51596ee577171a33f357377ec6513b5

You got it.

>-- 
>Thanks,
>~Nick Desaulniers

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-06-28 20:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-28 15:53 Regression: cannot compile kernel 4.14 with old gcc Tony Battersby
2019-06-28 16:42 ` Nick Desaulniers
2019-06-28 20:37   ` Sasha Levin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.