[PATCH] D92902: [llvm-elfabi] Add flag to keep timestamp when output is the same

Haowei Wu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 28 10:14:08 PST 2021


haowei added a comment.

In D92902#2527600 <https://reviews.llvm.org/D92902#2527600>, @hans wrote:

>   In any case, if it's working on your side, then there must be something wrong with my setup for some reason. I'll try to figure it out or just update the tests in our downstream repo. The Windows container does seem quite brittle after all. Sorry for bothering and thanks for checking anyway!
>
> The test also fails on my machine, and I can reproduce the touch problem:
>
>   C:\src\tmp>touch --version
>   touch (GNU coreutils) 5.3.0
>   Written by Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, and Randy Smith.
>   
>   Copyright (C) 2005 Free Software Foundation, Inc.
>   This is free software; see the source for copying conditions.  There is NO
>   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>   
>   C:\src\tmp>touch -m -t 197001010000 foo
>   touch: invalid date format `197001010000'
>
> I also don't see it on any buildbots, but I'm not entirely sure why.
>
> In any case, my machine is used to build the LLVM releases, and since this landed before the 12.0.0 branch point, it's now blocking the LLVM 12 release and we need to fix it somehow. Filed https://bugs.llvm.org/show_bug.cgi?id=48917 to track this.

I tried your command on my windows workstation and it works without issue:

  C:\Users\Zero\Downloads\GnuBin\GetGnuWin32\bin>touch --version
  touch (GNU coreutils) 5.3.0
  Written by Paul Rubin, Arnold Robbins, Jim Kingdon, David MacKenzie, and Randy Smith.
  
  Copyright (C) 2005 Free Software Foundation, Inc.
  This is free software; see the source for copying conditions.  There is NO
  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  
  C:\Users\Zero\Downloads\GnuBin\GetGnuWin32\bin>touch -m -t 197001010000 foo
  
  C:\Users\Zero\Downloads\GnuBin\GetGnuWin32\bin>dir foo
   Volume in drive C has no label.
  
   Directory of C:\Users\Zero\Downloads\GnuBin\GetGnuWin32\bin
  
  01/01/1970  00:00                 0 foo
                 1 File(s)              0 bytes
                 0 Dir(s)  1,044,239,425,536 bytes free
  
  C:\Users\Zero\Downloads\GnuBin\GetGnuWin32\bin>

I suspect it might be related to the Windows data&time region format. My region setting in windows was set to "United States" and 19700101 is the correct representation for 1970 Jan. 1st. @hans is your machine set to a different date format?

If that is the root cause of the failures we saw, it sounds like a bug in touch.exe from the GunWin32, the time format explained in the help message `[[CC]YY]MMDDhhmm[.ss]` does not match its actual behavior. We might have to disable these 2 tests on Windows machines.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92902/new/

https://reviews.llvm.org/D92902



More information about the llvm-commits mailing list