From a9f6941436e83d2f91caf06c13bee86cad309064 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 8 Jan 2015 14:33:53 +0000 Subject: scripts/config: sync with linux upstream Signed-off-by: Felix Fietkau SVN-Revision: 43873 --- scripts/config/conf.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'scripts/config/conf.c') diff --git a/scripts/config/conf.c b/scripts/config/conf.c index b769654a89..16e5c43787 100644 --- a/scripts/config/conf.c +++ b/scripts/config/conf.c @@ -13,6 +13,7 @@ #include #include #include +#include #include "lkc.h" @@ -514,14 +515,24 @@ int main(int ac, char **av) { struct timeval now; unsigned int seed; + char *seed_env; /* * Use microseconds derived seed, * compensate for systems where it may be zero */ gettimeofday(&now, NULL); - seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1)); + + seed_env = getenv("KCONFIG_SEED"); + if( seed_env && *seed_env ) { + char *endp; + int tmp = (int)strtol(seed_env, &endp, 0); + if (*endp == '\0') { + seed = tmp; + } + } + fprintf( stderr, "KCONFIG_SEED=0x%X\n", seed ); srand(seed); break; } @@ -622,7 +633,8 @@ int main(int ac, char **av) conf_set_all_new_symbols(def_default); break; case randconfig: - conf_set_all_new_symbols(def_random); + /* Really nothing to do in this loop */ + while (conf_set_all_new_symbols(def_random)) ; break; case defconfig: conf_set_all_new_symbols(def_default); @@ -664,7 +676,7 @@ int main(int ac, char **av) } else if (input_mode == savedefconfig) { if (conf_write_defconfig(defconfig_file)) { fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"), - defconfig_file); + defconfig_file); return 1; } } else if (input_mode != listnewconfig) { -- cgit v1.2.3