Package: linux-source-4.7
Severity: normal

Dear Maintainer,

we are using the kernel source packages to generate minimized configurations
for particular use cases. As our tools only give us a partial configuration,
we need to expand our precomputed set of options to a full kernel config.

We do that by using the following command:

KCONFIG_ALLCONFIG="path_to_partial_conf" make allnoconfig

which should set all configuration options not present in the initial partial
configuration to 'n'.

With the source code in this package, all previously unset variables are set
to 'y' instead, leading to a much bigger configuration than we anticipate.

The cause for this lies in the Debian patch

debian/patches/features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch

which #defines the newly introduced SYMBOL_NEW macro in scripts/kconfig/expr.h
to the same value (0x200000) as SYMBOL_ALLNOCONFIG_Y in the previous line.

This leads to all new values being treated as if they were marked in Kconfig to
be set to "y" if the are not found in the initial seed configuration when we
try to build 'make allnoconfig' - which is exactly the opposite of a 'noconfig'.

* How to reproduce (in the Linux source tree from this package):
$> make allnoconfig
$> cat .config | grep '=y' | wc -l
8112
$> make allyesconfig
$> cat .config | grep '=y' | wc -l
8112

* Expected outcome (with the above mentioned patch un-applied or the #define
changed to '#define SYMBOL_NEW 0x400000'):
$> make allnoconfig
$> cat .config | grep '=y' | wc -l
206


-- System Information:
Debian Release: 8.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/32 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=UTF-8 (charmap=UTF-8) (ignored: LC_ALL set 
to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Reply via email to