[llvm-dev] [llvm-lit] Old echo causes test failure on windows

via llvm-dev llvm-dev at lists.llvm.org
Wed Oct 6 07:52:09 PDT 2021

cd and mkdir are builtin commands in cmd.exe, but I accept that the list is incomplete.  I suppose really it’s a representative set rather than an exhaustive list, intended to verify that the place it points to is reasonable.

Re. my reference to bit-rotting GnuWin32 tools, it looks like references to GnuWin32 in llvm/docs/GettingStartedVS.rst were removed by https://reviews.llvm.org/D108513 in August, but it is still mentioned in llvm/docs/CMake.rst, that should be updated to cite the git-bash tools.

From: James Henderson <jh7370.2008 at my.bristol.ac.uk>
Sent: Wednesday, October 6, 2021 3:38 AM
To: Robinson, Paul <paul.robinson at sony.com>
Cc: Cazalet-Hyams, Orlando <orlando.hyams at sony.com>; llvm-dev <llvm-dev at lists.llvm.org>
Subject: Re: [llvm-dev] [llvm-lit] Old echo causes test failure on windows

That list that lit checks for looks out-of-date and insufficient these days. Off the top of my head, I know for example that we need od, cd, rm, and mkdir, and there are probably several others that are necessary.

On Tue, 5 Oct 2021 at 15:51, via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
At a minimum, I think we should stop using (and recommending) the bit-rotting GnuWin32 tools, and instead use the tools that come with git-for-Windows.  Lit currently checks for 5 tools (cmp, diff, echo, grep, sed) and all of these are in the git-Windows set.  This will reduce the set of packages we depend on, even if it doesn’t reduce the set of actual tools we depend on.

From: llvm-dev <llvm-dev-bounces at lists.llvm.org<mailto:llvm-dev-bounces at lists.llvm.org>> On Behalf Of via llvm-dev
Sent: Tuesday, October 5, 2021 10:30 AM
To: llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
Subject: [llvm-dev] [llvm-lit] Old echo causes test failure on windows

Hi llvm-dev,

I wanted to bring discussion from D110986 to a wider audience.

After D110986 added a unicode character to the test, llvm\test\tools\llvm-cxxfilt\delimiters.test
started failing in our (Sony's) downstream Windows CI build (and locally for me) because the
unicode character was being converted to '?' at some stage in the test. The upstream Windows bots
seemed to have no such trouble. I added a workaround in D111072 that we landed because a Chromium
bot was running into the same issue.

Digging a little deeper it turns out that the echo that lit was picking up for me (`echo (GNU
coreutils) 5.3.0` from GnuWin32) converts unicode characters to '?'.

llvm-lit has its own built in echo which handles unicode without an issue. This is used in the workaround
D111072; lit's echo is used iff the echo command isn't used in a pipeline.

N.B. `echo (GNU coreutils) 8.32` shipped with git for Windows also appears to handle unicode without
an issue.

I have a few questions:
1) Is there a reason we cannot always use lit's echo, as Hans suggests in D111072?
2) If we can't always use lit's echo, maybe we could add an error/warning if a "bad" echo is
detected at build-config or test-running time?

LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20211006/994a95d8/attachment-0001.html>

More information about the llvm-dev mailing list