On Mon, Dec 9, 2024, at 07:34, Masahiro Yamada wrote: > On Mon, Dec 9, 2024 at 1:36 AM Leon Romanovsky <leon@xxxxxxxxxx> wrote: >> >> On Sun, Dec 08, 2024 at 11:49:12PM +0900, Masahiro Yamada wrote: >> > On Wed, Dec 4, 2024 at 5:49 PM Leon Romanovsky <leon@xxxxxxxxxx> wrote: >> > > >> > > On Wed, Dec 04, 2024 at 05:25:50PM +0900, Masahiro Yamada wrote: >> > > > On Tue, Dec 3, 2024 at 10:55 PM Leon Romanovsky <leon@xxxxxxxxxx> wrote: >> > > > > >> > > > > From: Leon Romanovsky <leonro@xxxxxxxxxx> >> > > > > >> > > > > Builds with -s option (silent) are supposed to silence all output >> > > > > which is not an error. It is the case for target builds but not >> > > > > for configs. These builds generate prints like this: >> > > > > >> > > > > ➜ kernel git:(rdma-next) make -s defconfig debug.config >> > > > > Using .config as base >> > > > > Merging ./kernel/configs/debug.config >> > > > > # >> > > > > # merged configuration written to .config (needs make) >> > > > > # >> > > > > ... >> > > > > Value of CONFIG_FUNCTION_TRACER is redefined by fragment ./kernel/configs/debug.config: >> > > > > Previous value: # CONFIG_FUNCTION_TRACER is not set >> > > > > New value: CONFIG_FUNCTION_TRACER=y >> > > > > ---- >> > > > > >> > > > > Let's honor -s option and hide all non-error output. >> > > > >> > > > >> > > > Is it necessary to add the --quiet option to every script? >> > > > >> > > > Kbuild already provides a generic way to suppress the stdout >> > > > with 'make -s'. >> > > > >> > > > The following code works for me. >> > > > 'make defconfig debug.config' is as verbose as before. >> > > > 'make -s defconfig debug.config' is really silent. >> > > >> > > This is exactly what I'm doing. I'm using -s option and added -q to very >> > > specific merge_config script, because "-s" is already in use in that >> > > script. >> > > >> > > Before my change on 40384c840ea1 ("Linux 6.13-rc1"): >> > > [leonro@e534d5fa4327 kernel]$ make -s defconfig debug.config >> > > Using .config as base >> > > Merging ./kernel/configs/debug.config >> > > Value of CONFIG_DYNAMIC_DEBUG is redefined by fragment ./kernel/configs/debug.config: >> > > Previous value: # CONFIG_DYNAMIC_DEBUG is not set >> > > New value: CONFIG_DYNAMIC_DEBUG=y >> > > >> > > Value of CONFIG_PRINTK_CALLER is redefined by fragment ./kernel/configs/debug.config: >> > > Previous value: # CONFIG_PRINTK_CALLER is not set >> > > New value: CONFIG_PRINTK_CALLER=y >> > > ... >> > > >> > > After my change: >> > > [leonro@4dd2c2078dff kernel]$ make -s defconfig debug.config <--- silent >> > >> > >> > Not sure if you checked the attached code diff in my previous reply. >> > >> > To make my question clearer, does this suffice your needs? >> > https://lore.kernel.org/all/20241208144622.605523-1-masahiroy@xxxxxxxxxx/T/#u >> >> Unfortunately no, as both my development suite and our CI rely on >> merge_config script to create right config. >> >> In CI, they run add very specific config options to already >> well-established .config. >> In my development suite, I'm removing extra options with merge_config >> script. >> >> subprocess.call(cmd + ['defconfig', 'kvm_guest.config', 'nopm.config', 'debug.config']) >> subprocess.call(['scripts/kconfig/merge_config.sh', '-y', '-m', '-q', >> '.config', '/plugins/kernel.config']) >> subprocess.call(cmd + ['olddefconfig']) >> >> https://github.com/Mellanox/mkt/blob/master/plugins/do-build.py#L19 >> https://github.com/Mellanox/mkt/commit/26d7cbd776f508ab506f6d33cfe0e9b0bf44d557 >> >> I need both chunks, silence make ... and silence merge_config script. > > > You are no longer talking about 'make -s'. Yes, I killed two birds with one stone. > > "> /dev/null" is the standard way to suppress stdout, but you do not use it. > > Similarly, subprocess.call() supports stdout=subprocess.DEVNULL > https://docs.python.org/3.13/library/subprocess.html#subprocess.call No problem, will do it. > > > > > > > >> Thanks >> >> > >> > >> > -- >> > Best Regards >> > Masahiro Yamada > > > > -- > Best Regards > Masahiro Yamada