From 13d7d58bb8f40e296f072f01ca92392d7511676f Mon Sep 17 00:00:00 2001 From: John Wehle Date: Fri, 14 Sep 2001 17:56:47 +0000 Subject: [PATCH] tree.c (append_random_chars): Generate the random characters in a reproducable fashion. * tree.c (append_random_chars): Generate the random characters in a reproducable fashion. From-SVN: r45606 --- gcc/ChangeLog | 5 +++++ gcc/tree.c | 24 +++++++++++++----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 390310d6a5f..281a4eed8d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Sep 14 13:54:50 EDT 2001 John Wehle (john@feith.com) + + * tree.c (append_random_chars): Generate the random + characters in a reproducable fashion. + 2001-09-14 Richard Henderson * config/i386/i386.c (internal_label_prefix): New. diff --git a/gcc/tree.c b/gcc/tree.c index d3db28978c5..14d48071198 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -4533,19 +4533,21 @@ append_random_chars (template) static unsigned HOST_WIDE_INT value; unsigned HOST_WIDE_INT v; -#ifdef HAVE_GETTIMEOFDAY - struct timeval tv; -#endif + if (! value) + { + struct stat st; - template += strlen (template); + /* VALUE should be unique for each file and must + not change between compiles since this can cause + bootstrap comparison errors. */ -#ifdef HAVE_GETTIMEOFDAY - /* Get some more or less random data. */ - gettimeofday (&tv, NULL); - value += ((unsigned HOST_WIDE_INT) tv.tv_usec << 16) ^ tv.tv_sec ^ getpid (); -#else - value += getpid (); -#endif + if (stat (main_input_filename, &st) < 0) + abort (); + + value = st.st_dev ^ st.st_ino ^ st.st_mtime; + } + + template += strlen (template); v = value; -- 2.30.2