[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAK7LNAT4KW=SiWSYyC7fZYcpX5-6FFsPsHCVNbTvvgdKCXSctw@mail.gmail.com>
Date: Sun, 19 Feb 2023 19:14:14 +0900
From: Masahiro Yamada <masahiroy@...nel.org>
To: Randy Dunlap <rdunlap@...radead.org>
Cc: linux-kernel@...r.kernel.org, linux-kbuild@...r.kernel.org
Subject: Re: [PATCH] kconfig: save the KCONFIG_SEED value in the config file
On Fri, Feb 17, 2023 at 3:52 PM Randy Dunlap <rdunlap@...radead.org> wrote:
>
> Save (print) the randconfig seed value in the kernel .config file.
> This enables someone to see easily that the .config file is a
> randconfig file.
I still do not understand why this is useful.
Who cares if it was generated by randconfig or menuconfig?
They are the same.
If I run "make randconfig" followed by "make olddefconfig",
I get the same .config file, except that "KCONFIG_SEED=..."
has disappeared.
So, you cannot carry this kind of information, anyway.
$ make randconfig
KCONFIG_SEED=0x69256B40
#
# configuration written to .config
#
$ make olddefconfig
#
# configuration written to .config
#
$ diff -u .config.old .config
--- .config.old 2023-02-19 19:03:16.831931359 +0900
+++ .config 2023-02-19 19:03:37.147477826 +0900
@@ -1,7 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 6.2.0-rc5 Kernel Configuration
-# KCONFIG_SEED=0x69256B40
#
CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0"
CONFIG_CC_IS_GCC=y
>
> It also allows the randconfig file to be recreated by using the
> KCONFIG_SEED environment variable, as long as KCONFIG_PROBABILITY
> was not specified (the default probability values were used) and
> as long as the file was not edited.
>
> Signed-off-by: Randy Dunlap <rdunlap@...radead.org>
> Cc: Masahiro Yamada <masahiroy@...nel.org>
> Cc: linux-kbuild@...r.kernel.org
> ---
> scripts/kconfig/conf.c | 3 +++
> scripts/kconfig/confdata.c | 2 ++
> scripts/kconfig/lkc.h | 2 ++
> 3 files changed, 7 insertions(+)
>
> diff -- a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -83,6 +83,8 @@ static void xfgets(char *str, int size,
> printf("%s", str);
> }
>
> +unsigned int rand_seed;
> +
> static void set_randconfig_seed(void)
> {
> unsigned int seed;
> @@ -109,6 +111,7 @@ static void set_randconfig_seed(void)
> seed = (now.tv_sec + 1) * (now.tv_usec + 1);
> }
>
> + rand_seed = seed;
> printf("KCONFIG_SEED=0x%X\n", seed);
> srand(seed);
> }
> diff -- a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
> --- a/scripts/kconfig/confdata.c
> +++ b/scripts/kconfig/confdata.c
> @@ -621,6 +621,8 @@ static void conf_write_heading(FILE *fp,
> cs->decoration);
>
> fprintf(fp, "%s %s\n", cs->decoration, rootmenu.prompt->text);
> + if (rand_seed)
> + fprintf(fp, "%s KCONFIG_SEED=0x%X\n", cs->decoration, rand_seed);
If 'rand_seed' just happens to become zero,
this does not print it, which is weird.
The seed is generated by:
seed = (now.tv_sec + 1) * (now.tv_usec + 1);
This is very rare, but it may become zero.
--
Best Regards
Masahiro Yamada
Powered by blists - more mailing lists