From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [IPv6:2620:20:4000:0:a9e:1ff:fe9b:1d1]) by sourceware.org (Postfix) with ESMTP id D38603857813 for ; Sat, 5 Sep 2020 20:49:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D38603857813 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=brobecker@adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 7FDCA1175DA; Sat, 5 Sep 2020 16:49:23 -0400 (EDT) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id kHEcN8FVCA4b; Sat, 5 Sep 2020 16:49:23 -0400 (EDT) Received: from joel.gnat.com (localhost.localdomain [127.0.0.1]) by rock.gnat.com (Postfix) with ESMTP id 5069B11759F; Sat, 5 Sep 2020 16:49:23 -0400 (EDT) Received: by joel.gnat.com (Postfix, from userid 1000) id 9A9F0865FC; Sat, 5 Sep 2020 13:49:21 -0700 (PDT) Date: Sat, 5 Sep 2020 13:49:21 -0700 From: Joel Brobecker To: Tom Tromey Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] Do not adjust mtime timezone on Windows Message-ID: <20200905204921.GA26780@adacore.com> References: <20200903170244.2508330-1-tromey@adacore.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200903170244.2508330-1-tromey@adacore.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Sep 2020 20:49:25 -0000 Hi Tom, On Thu, Sep 03, 2020 at 11:02:44AM -0600, Tom Tromey wrote: > PR win32/25302 notes that gdb will crash when trying to "run" even a > simple program on Windows. The essential bug here is that the BFD > cache can easily be corrupted -- I have sent a separate patch for > that. > > The particular reason that the cache is corrupted on Windows is that > gnulib overrides "stat" to make it do timezone adjustment -- but BFD > does not use this version of stat. The difference here triggers the > latent cache bug, but can also cause other bugs as well; in particular > it can cause spurious warnings about source files being newer. > > This patch simply removes the stat override on mingw, making gnulib > and BFD agree. > > I tested this by backing out the local AdaCore changes to work around > this bug and then verifying that I could reproduce it. Then, I > applied this patch and verified that "run" works again. > > gnulib/ChangeLog > 2020-09-03 Tom Tromey > > PR win32/25302: > * update-gnulib.sh: Apply stat patch. > * patches/0001-use-windows-stat: New file. > * import/m4/stat.m4: Update. > * configure: Rebuild. Thanks for helping us with this patch. This looks good to me. We will want this patch in before we create the gdb-10-branch, but let's give people a few more days to comment if they'd like -- let's say, if by Thursday, we haven't received comments, then we push it. Thanks again! > --- > gnulib/ChangeLog | 8 ++++++++ > gnulib/configure | 3 +-- > gnulib/import/m4/stat.m4 | 2 +- > gnulib/patches/0001-use-windows-stat | 13 +++++++++++++ > gnulib/update-gnulib.sh | 2 ++ > 5 files changed, 25 insertions(+), 3 deletions(-) > create mode 100644 gnulib/patches/0001-use-windows-stat > > diff --git a/gnulib/configure b/gnulib/configure > index fa2feb5ea9a..5c6add6e371 100644 > --- a/gnulib/configure > +++ b/gnulib/configure > @@ -26907,8 +26907,7 @@ $as_echo "#define ssize_t int" >>confdefs.h > > case "$host_os" in > mingw*) > - REPLACE_STAT=1 > - ;; > + ;; > *) > { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 > $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } > diff --git a/gnulib/import/m4/stat.m4 b/gnulib/import/m4/stat.m4 > index 46e9abceee7..8ef355f9407 100644 > --- a/gnulib/import/m4/stat.m4 > +++ b/gnulib/import/m4/stat.m4 > @@ -15,7 +15,7 @@ AC_DEFUN([gl_FUNC_STAT], > mingw*) > dnl On this platform, the original stat() returns st_atime, st_mtime, > dnl st_ctime values that are affected by the time zone. > - REPLACE_STAT=1 > + dnl REPLACE_STAT=1 > ;; > *) > dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). > diff --git a/gnulib/patches/0001-use-windows-stat b/gnulib/patches/0001-use-windows-stat > new file mode 100644 > index 00000000000..adf9638858d > --- /dev/null > +++ b/gnulib/patches/0001-use-windows-stat > @@ -0,0 +1,13 @@ > +diff --git a/gnulib/import/m4/stat.m4 b/gnulib/import/m4/stat.m4 > +index 46e9abceee7..8ef355f9407 100644 > +--- a/gnulib/import/m4/stat.m4 > ++++ b/gnulib/import/m4/stat.m4 > +@@ -15,7 +15,7 @@ AC_DEFUN([gl_FUNC_STAT], > + mingw*) > + dnl On this platform, the original stat() returns st_atime, st_mtime, > + dnl st_ctime values that are affected by the time zone. > +- REPLACE_STAT=1 > ++ dnl REPLACE_STAT=1 > + ;; > + *) > + dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). > diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh > index b9cc7d8f353..ac5e3d56a29 100755 > --- a/gnulib/update-gnulib.sh > +++ b/gnulib/update-gnulib.sh > @@ -173,6 +173,8 @@ apply_patches () > fi > } > > +apply_patches "patches/0001-use-windows-stat" > + > # Regenerate all necessary files... > aclocal && > autoconf && > -- > 2.26.2 -- Joel