Skip to content

kconfig migrate: new subcommand to run make oldconfig

Alexey Min requested to merge kconfig-oldconfig into master

With this new command you can run

$ pmbootstrap kconfig migrate --arch <arch> linux-postmarketos-xxx-xxx

to perform safe kconfig upgrades between kernel releases.

make oldconfig will ask question for every new or renamed kconfig option, so you have no chance to miss anything.

Read more: https://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-in-the-linux-kernel-makefile

Test plan:

pmaports!2508 (merged) was a good test case for this, as the kernel was upgraded from 5.13.13 to 5.14.1, but kconfig was not migrated yet. (it is migrated now already)

  • In pmaports dir checkout MR 2508 (or git checkout msm8974-514).
  • In pmbootstrap dir checkout this MR (or git checkout kconfig-oldconfig)
  • run pmbootstrap kconfig edit --oldconfig linux-postmarketos-qcom-msm8974, observe how it looks like:
[11:53:55] (native) make oldconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/confdata.o
  HOSTCC  scripts/kconfig/expr.o
  LEX     scripts/kconfig/lexer.lex.c
  YACC    scripts/kconfig/parser.tab.[ch]
  HOSTCC  scripts/kconfig/lexer.lex.o
  HOSTCC  scripts/kconfig/menu.o
  HOSTCC  scripts/kconfig/parser.tab.o
  HOSTCC  scripts/kconfig/preprocess.o
  HOSTCC  scripts/kconfig/symbol.o
  HOSTCC  scripts/kconfig/util.o
  HOSTLD  scripts/kconfig/conf
*
* Restart config...
*
*
* Enable the block layer
*
Enable the block layer (BLOCK) [Y/n/?] y
  Block layer SG support v4 (BLK_DEV_BSG) [Y/n/?] y
  Block layer SG support v4 helper lib (BLK_DEV_BSGLIB) [N/y/?] n
  Block layer data integrity support (BLK_DEV_INTEGRITY) [N/y/?] n
  Zoned block device support (BLK_DEV_ZONED) [N/y/?] n
  Block layer bio throttling support (BLK_DEV_THROTTLING) [Y/n/?] y
    Block throttling .low limit interface support (EXPERIMENTAL) (BLK_DEV_THROTTLING_LOW) [N/y/?] n
  Block device command line partition parser (BLK_CMDLINE_PARSER) [N/y/?] n
  Enable support for block device writeback throttling (BLK_WBT) [N/y/?] n
  Enable support for latency based cgroup IO protection (BLK_CGROUP_IOLATENCY) [N/y/?] n
  Enable support for cost model based cgroup IO controller (BLK_CGROUP_IOCOST) [N/y/?] n
  Cgroup I/O controller for assigning an I/O priority class (BLK_CGROUP_IOPRIO) [N/y/?] (NEW)

^^ stops at new questions and waits for answer.

Edited by Alexey Min

Merge request reports