Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 899978 - sys-kernel/*: Compatibility issue w/ sys-devel/make-4.4 that can make the kernel build in silent mode
Summary: sys-kernel/*: Compatibility issue w/ sys-devel/make-4.4 that can make the ker...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Kernel Bug Wranglers and Kernel Maintainers
URL: https://git.kernel.org/pub/scm/linux/...
Whiteboard:
Keywords:
Depends on:
Blocks: 879081
  Show dependency tree
 
Reported: 2023-03-07 03:40 UTC by Joshua Kinard
Modified: 2023-03-15 03:01 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Joshua Kinard gentoo-dev 2023-03-07 03:40:33 UTC
This is an issue that I ran into it while updating sys-kernel/mips-sources.

Due to this change in sys-devel/make-4.4* (taken from the NEWS file):

> * WARNING: Backward-incompatibility!
>   Previously only simple (one-letter) options were added to the MAKEFLAGS
>   variable that was visible while parsing makefiles.  Now, all options are
>   available in MAKEFLAGS.  If you want to check MAKEFLAGS for a one-letter
>   option, expanding "$(firstword -$(MAKEFLAGS))" is a reliable way to return
>   the set of one-letter options which can be examined via findstring, etc.

The kernel can drop into silent build mode if command-line variables are passed in on the command line and those variables contain the letter 's':

E.g., here's a snippet of expected cross-compile behavior make-4.3 on a mips-sources build where everything should work right (make --version output trimmed for brevity):

> # make --version
> GNU Make 4.3
> 
> # make ARCH=mips CROSS_COMPILE=mips64-unknown-linux-gnu- -j14 vmlinux
>   HOSTCC  scripts/kconfig/conf.o
>   HOSTLD  scripts/kconfig/conf
> scripts/kconfig/conf  --syncconfig Kconfig
>   SYSTBL  arch/mips/include/generated/asm/syscall_table_32_o32.h
>   SYSTBL  arch/mips/include/generated/asm/syscall_table_64_n32.h
> [snip]

Note the call to scripts/kconfig/conf ONLY passes --synconfig.  This is expected behavior.

This snippet shows the problem:

> # make --version
> GNU Make 4.4.1
> 
> # make ARCH=mips CROSS_COMPILE=mips64-unknown-linux-gnu- -j14 vmlinux
> scripts/kconfig/conf -s --syncconfig Kconfig
> kernel/extable.c: In function 'sort_main_extable':
> kernel/extable.c:37:59: warning: comparison between two arrays [-Warray-compare]
>    37 |         if (main_extable_sort_needed && __stop___ex_table > __start___ex_table) {
>       |                                                           ^
> kernel/extable.c:37:59: note: use '&__stop___ex_table[0] > &__start___ex_table[0]' to compare the addresses

Note that in this instance, the '-s' flag was passed to scripts/kconfig/conf which enabled silent build mode.  This is because of the change in make-4.4 that causes the kernel's preexisting logic for the '-s' flag to be insufficient (the compiler warning is expected output in this case, but it's the *only* output because of the silent mode).  It's the "ARCH=mips" that likely is the trigger here.

Commit 4bf73588165b upstream will fix this in 6.3, but kernels going back to, possibly, 4.13 will need to be patched.  I am not certain yet if this fix will get passed over to -stable and show up in the LTS kernel versions.  I've also referenced a bug on GNU Savannah in the Make project that has additional detail and proposes a fix in make itself, given the longevity of some kernel versions.
Comment 1 Mike Pagano gentoo-dev 2023-03-07 19:38:10 UTC
Thanks.

Looks like it's flowing down to stable.
Comment 2 Mike Pagano gentoo-dev 2023-03-14 19:01:57 UTC
(In reply to Mike Pagano from comment #1)
> Thanks.
> 
> Looks like it's flowing down to stable.

This is in the following kernels (>=):

linux-4.14.309
linux-4.19.277
linux-5.4.236
linux-5.10.174
linux-5.15.102
linux-6.1.19
linux-6.2.0

Are you OK with closing this ?
Comment 3 Joshua Kinard gentoo-dev 2023-03-15 03:01:32 UTC
(In reply to Mike Pagano from comment #2)
> (In reply to Mike Pagano from comment #1)
> > Thanks.
> > 
> > Looks like it's flowing down to stable.
> 
> This is in the following kernels (>=):
> 
> linux-4.14.309
> linux-4.19.277
> linux-5.4.236
> linux-5.10.174
> linux-5.15.102
> linux-6.1.19
> linux-6.2.0
> 
> Are you OK with closing this ?

Yup, thanks for tracking!