diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/kconfig/conf.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index e39fcd8143ea..bde5b95c8c19 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c | |||
| @@ -13,6 +13,7 @@ | |||
| 13 | #include <getopt.h> | 13 | #include <getopt.h> |
| 14 | #include <sys/stat.h> | 14 | #include <sys/stat.h> |
| 15 | #include <sys/time.h> | 15 | #include <sys/time.h> |
| 16 | #include <errno.h> | ||
| 16 | 17 | ||
| 17 | #include "lkc.h" | 18 | #include "lkc.h" |
| 18 | 19 | ||
| @@ -514,14 +515,23 @@ int main(int ac, char **av) | |||
| 514 | { | 515 | { |
| 515 | struct timeval now; | 516 | struct timeval now; |
| 516 | unsigned int seed; | 517 | unsigned int seed; |
| 518 | char *seed_env; | ||
| 517 | 519 | ||
| 518 | /* | 520 | /* |
| 519 | * Use microseconds derived seed, | 521 | * Use microseconds derived seed, |
| 520 | * compensate for systems where it may be zero | 522 | * compensate for systems where it may be zero |
| 521 | */ | 523 | */ |
| 522 | gettimeofday(&now, NULL); | 524 | gettimeofday(&now, NULL); |
| 523 | |||
| 524 | seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1)); | 525 | seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1)); |
| 526 | |||
| 527 | seed_env = getenv("KCONFIG_SEED"); | ||
| 528 | if( seed_env && *seed_env ) { | ||
| 529 | char *endp; | ||
| 530 | int tmp = (int)strtol(seed_env, &endp, 10); | ||
| 531 | if (*endp == '\0') { | ||
| 532 | seed = tmp; | ||
| 533 | } | ||
| 534 | } | ||
| 525 | srand(seed); | 535 | srand(seed); |
| 526 | break; | 536 | break; |
| 527 | } | 537 | } |
