Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'kbuild-fixes-v6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kbuild fixes from Masahiro Yamada:

- Fix the initial state of the save button in 'make gconfig'

- Improve the Kconfig documentation

- Fix a Kconfig bug regarding property visibility

- Fix build breakage for systems where 'sed' is not installed in /bin

- Fix a false warning about missing MODULE_DESCRIPTION()

* tag 'kbuild-fixes-v6.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
modpost: do not warn about missing MODULE_DESCRIPTION() for vmlinux.o
kbuild: explicitly run mksysmap as sed script from link-vmlinux.sh
kconfig: remove wrong expr_trans_bool()
kconfig: doc: document behavior of 'select' and 'imply' followed by 'if'
kconfig: doc: fix a typo in the note about 'imply'
kconfig: gconf: give a proper initial state to the Save button
kconfig: remove unneeded code for user-supplied values being out of range

+17 -50
+11 -1
Documentation/kbuild/kconfig-language.rst
··· 150 150 That will limit the usefulness but on the other hand avoid 151 151 the illegal configurations all over. 152 152 153 + If "select" <symbol> is followed by "if" <expr>, <symbol> will be 154 + selected by the logical AND of the value of the current menu symbol 155 + and <expr>. This means, the lower limit can be downgraded due to the 156 + presence of "if" <expr>. This behavior may seem weird, but we rely on 157 + it. (The future of this behavior is undecided.) 158 + 153 159 - weak reverse dependencies: "imply" <symbol> ["if" <expr>] 154 160 155 161 This is similar to "select" as it enforces a lower limit on another ··· 190 184 ability to hook into a secondary subsystem while allowing the user to 191 185 configure that subsystem out without also having to unset these drivers. 192 186 193 - Note: If the combination of FOO=y and BAR=m causes a link error, 187 + Note: If the combination of FOO=y and BAZ=m causes a link error, 194 188 you can guard the function call with IS_REACHABLE():: 195 189 196 190 foo_init() ··· 207 201 tristate "foo" 208 202 imply BAR 209 203 imply BAZ 204 + 205 + Note: If "imply" <symbol> is followed by "if" <expr>, the default of <symbol> 206 + will be the logical AND of the value of the current menu symbol and <expr>. 207 + (The future of this behavior is undecided.) 210 208 211 209 - limiting menu display: "visible if" <expr> 212 210
-13
scripts/kconfig/confdata.c
··· 533 533 */ 534 534 if (sym->visible == no && !conf_unsaved) 535 535 sym->flags &= ~SYMBOL_DEF_USER; 536 - switch (sym->type) { 537 - case S_STRING: 538 - case S_INT: 539 - case S_HEX: 540 - /* Reset a string value if it's out of range */ 541 - if (sym_string_within_range(sym, sym->def[S_DEF_USER].val)) 542 - break; 543 - sym->flags &= ~SYMBOL_VALID; 544 - conf_unsaved++; 545 - break; 546 - default: 547 - break; 548 - } 549 536 } 550 537 } 551 538
-29
scripts/kconfig/expr.c
··· 397 397 } 398 398 399 399 /* 400 - * bool FOO!=n => FOO 401 - */ 402 - struct expr *expr_trans_bool(struct expr *e) 403 - { 404 - if (!e) 405 - return NULL; 406 - switch (e->type) { 407 - case E_AND: 408 - case E_OR: 409 - case E_NOT: 410 - e->left.expr = expr_trans_bool(e->left.expr); 411 - e->right.expr = expr_trans_bool(e->right.expr); 412 - break; 413 - case E_UNEQUAL: 414 - // FOO!=n -> FOO 415 - if (e->left.sym->type == S_TRISTATE) { 416 - if (e->right.sym == &symbol_no) { 417 - e->type = E_SYMBOL; 418 - e->right.sym = NULL; 419 - } 420 - } 421 - break; 422 - default: 423 - ; 424 - } 425 - return e; 426 - } 427 - 428 - /* 429 400 * e1 || e2 -> ? 430 401 */ 431 402 static struct expr *expr_join_or(struct expr *e1, struct expr *e2)
-1
scripts/kconfig/expr.h
··· 284 284 void expr_eliminate_eq(struct expr **ep1, struct expr **ep2); 285 285 int expr_eq(struct expr *e1, struct expr *e2); 286 286 tristate expr_calc_value(struct expr *e); 287 - struct expr *expr_trans_bool(struct expr *e); 288 287 struct expr *expr_eliminate_dups(struct expr *e); 289 288 struct expr *expr_transform(struct expr *e); 290 289 int expr_contains_symbol(struct expr *dep, struct symbol *sym);
+2 -1
scripts/kconfig/gconf.c
··· 1422 1422 1423 1423 conf_parse(name); 1424 1424 fixup_rootmenu(&rootmenu); 1425 - conf_read(NULL); 1426 1425 1427 1426 /* Load the interface and connect signals */ 1428 1427 init_main_window(glade_file); 1429 1428 init_tree_model(); 1430 1429 init_left_tree(); 1431 1430 init_right_tree(); 1431 + 1432 + conf_read(NULL); 1432 1433 1433 1434 switch (view_mode) { 1434 1435 case SINGLE_VIEW:
-2
scripts/kconfig/menu.c
··· 398 398 dep = expr_transform(dep); 399 399 dep = expr_alloc_and(expr_copy(basedep), dep); 400 400 dep = expr_eliminate_dups(dep); 401 - if (menu->sym && menu->sym->type != S_TRISTATE) 402 - dep = expr_trans_bool(dep); 403 401 prop->visible.expr = dep; 404 402 405 403 /*
+3 -2
scripts/mod/modpost.c
··· 1647 1647 namespace = get_next_modinfo(&info, "import_ns", 1648 1648 namespace); 1649 1649 } 1650 + 1651 + if (extra_warn && !get_modinfo(&info, "description")) 1652 + warn("missing MODULE_DESCRIPTION() in %s\n", modname); 1650 1653 } 1651 1654 1652 - if (extra_warn && !get_modinfo(&info, "description")) 1653 - warn("missing MODULE_DESCRIPTION() in %s\n", modname); 1654 1655 for (sym = info.symtab_start; sym < info.symtab_stop; sym++) { 1655 1656 symname = remove_dot(info.strtab + sym->st_name); 1656 1657