kernel/common-config: throw on duplicate configuration option definitions

Previously, when a kernel configuration option was defined multiple times (in
different sections), only the first value was honored and all subsequent ones
were silently ignored. Remove this footgun by throwing in this situation
instead.
In addition, fix all instances where an option was in fact defined multiple
times. In two cases (`RCU_TORTURE_TEST` and `CRASH_DUMP`), the value was
effectively the same both times. In the other two cases (`SCHEDSTATS` and
`DRM_SIMPLEDRM`) the value was in fact different; the one that was actually
applied was kept here to prevent a rebuild.
This commit is contained in:
Alois Wohlschlager 2024-03-22 17:14:13 +01:00
parent 20f77aa099
commit 1bfe0f3c08
No known key found for this signature in database
GPG Key ID: E0F59EA5E5216914
1 changed files with 1 additions and 7 deletions

View File

@ -23,7 +23,7 @@ let
# configuration items have to be part of a subattrs
flattenKConf = nested: mapAttrs (_: head) (zipAttrs (attrValues nested));
flattenKConf = nested: mapAttrs (name: values: if length values == 1 then head values else throw "duplicate kernel configuration option: ${name}") (zipAttrs (attrValues nested));
whenPlatformHasEBPFJit =
mkIf (stdenv.hostPlatform.isAarch32 ||
@ -111,9 +111,6 @@ let
# Enable CPU energy model for scheduling
ENERGY_MODEL = whenAtLeast "5.0" yes;
# Enable scheduling stats collection
SCHEDSTATS = yes;
# Enable thermal interface netlink API
THERMAL_NETLINK = whenAtLeast "5.9" yes;
@ -413,7 +410,6 @@ let
whenHasDevicePrivate = mkIf (!stdenv.isx86_32 && versionAtLeast version "5.1");
in {
DRM_LEGACY = whenOlder "6.8" no;
DRM_SIMPLEDRM = yes;
NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no;
@ -890,7 +886,6 @@ let
NOTIFIER_ERROR_INJECTION = option no;
RCU_PERF_TEST = whenOlder "5.9" no;
RCU_SCALE_TEST = whenAtLeast "5.10" no;
RCU_TORTURE_TEST = option no;
TEST_ASYNC_DRIVER_PROBE = option no;
WW_MUTEX_SELFTEST = option no;
XZ_DEC_TEST = option no;
@ -999,7 +994,6 @@ let
# Removed on 5.17 as it was unused
# upstream: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0a4ee518185e902758191d968600399f3bc2be31
CLEANCACHE = whenOlder "5.17" (option yes);
CRASH_DUMP = option no;
FSCACHE_STATS = yes;