<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 4, 2016 at 5:05 PM, Sean Silva via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Wed, May 4, 2016 at 9:15 AM, Robinson, Paul <span dir="ltr"><<a href="mailto:paul.robinson@sony.com" target="_blank">paul.robinson@sony.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><span>> > My thought is, Windows has a specific breaking point between short & long<br>
> > forms, which is much shorter than any other modern OS's PATH_MAX.  If we<br>
> > had a bot where the root of the LLVM checkout was past the Windows short<br>
> > max, I bet we'd smoke out 90% of the problems.  The last 10% would be where<br>
> > filespec A fit into the short size but generated filespec B=A+"otherstuff"<br>
> > slid past it; those are always going to be hard to find.<br>
> ><br>
> > It would at least be better coverage than we have now, and seems less<br>
> > prone to overrun problems than going for PATH_MAX-N.<br>
><br>
> The problem being fixed here is not actually an issue in LLVM's handling of longer<br>
> paths. It is actually the other tools used in the test which fail because *they*<br>
> don't handle longer paths.<br>
<br>
</span>Right, and if we want our stuff to work smoothly in a long-path environment,<br>
we need to know what we can or cannot rely on from other tools.  We tripped<br>
over one, and had to re-engineer some things to avoid the problem.  I would<br>
much rather we figured that out ourselves right away, than have users filing<br>
bug reports a year later when it will be a *lot* harder to address.  If the<br>
long-path problem is in our code, we can fix it; if it is in some other tool,<br>
we need to figure out how to avoid that tool's bug *without* forcing users<br>
to change their environment.<br></blockquote><div><br></div></span><div>Yes, that's why I'm so concerned that Rafael removed the XXX without removing the `REQUIRES: shell` hack in r268404 (see that thread). In this case, the way to avoid the long-path issues in other tools is to directly create the archive so that we don't need to fully expand the long path on windows. But the way the test is currently written we just skip the entire test on Windows when really we just need to skip the extraction step.</div></div></div></div></blockquote><div><br></div><div>We can remove that "REQUIRES: shell" by extracting files and sending them to stdout instead of writing them to a filesystem. Let me try to do that.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class=""><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
Either way it's on us to operate cleanly with long paths, and explicitly<br>
running all the tests in a long-path environment can only help us.<br></blockquote><div><br></div></span><div>I'm not sure I understand what you are suggesting. If we make the build directory be past PATH_MAX, then lots of tests will fail because they use tools that are not long-path capable. Do you mean that we should explicitly identify which tools we rely on that use long paths?</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">
--paulr<br>
<br>
</blockquote></div><br></div></div>
<br>_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div></div>