<div dir="ltr"><div dir="ltr">
<div>I have blamed the correct commit.</div><div><br></div>The llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64 updated by this commit contains a reference to /tmp/t.o.<div>To
 reproduce the problem locally simply put the attached t.o file to the 
local /tmp directory and run the test. You can debug from there.</div><div>I
 guess, you just taken some random input file which happens to contain 
more than you actually need for this test? Sanitizing that file would do
 then.</div><div><br></div><div>Thanks</div><div><br></div><div>Galina</div><div><br></div>

</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 18, 2018 at 1:00 PM Adrian Prantl <<a href="mailto:aprantl@apple.com">aprantl@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I don't see any mention of /tmp in the commit you replied to. There was a similar issue in clang recently that was fixed by r349083. Did you mean that one possibly?<br>
<br>
<br>
The error you *linked to* is the one discussed in <a href="https://reviews.llvm.org/rL349066" rel="noreferrer" target="_blank">https://reviews.llvm.org/rL349066</a>. It disappeared on other bots, so we didn't follow up. I'd be happy to debug it if I only had a symbolicated backtrace (which is unfortunately the error that we're seeing).<br>
<br>
-- adrian<br>
<br>
> On Dec 18, 2018, at 12:25 PM, Galina Kistanova <<a href="mailto:gkistanova@gmail.com" target="_blank">gkistanova@gmail.com</a>> wrote:<br>
> <br>
> Hello Adrian,<br>
> <br>
> This commit has introduced a questionable dependency. The test depends on existence or not existence of the /tmp/t.o file, which is not a good idea.<br>
> <br>
> The test could fail with some cryptic message if the file exists and is not what the test expects.<br>
> Please see for example <a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/22229/steps/test/logs/stdio" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/22229/steps/test/logs/stdio</a>.<br>
> <br>
> Could you fix this, please?<br>
> <br>
> Thanks<br>
> <br>
> Galina<br>
> <br>
> On Tue, Nov 13, 2018 at 3:33 PM Adrian Prantl via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: adrian<br>
> Date: Tue Nov 13 15:31:25 2018<br>
> New Revision: 346815<br>
> <br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=346815&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=346815&view=rev</a><br>
> Log:<br>
> Make dsymutil more robust when parsing load commands.<br>
> <br>
> rdar://problem/45883463<br>
> <br>
> Modified:<br>
>     llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64<br>
>     llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test<br>
>     llvm/trunk/tools/dsymutil/MachOUtils.cpp<br>
> <br>
> Modified: llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64?rev=346815&r1=346814&r2=346815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64?rev=346815&r1=346814&r2=346815&view=diff</a><br>
> ==============================================================================<br>
> Binary files llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64 (original) and llvm/trunk/test/tools/dsymutil/Inputs/lc_build_version.x86_64 Tue Nov 13 15:31:25 2018 differ<br>
> <br>
> Modified: llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test?rev=346815&r1=346814&r2=346815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test?rev=346815&r1=346814&r2=346815&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test (original)<br>
> +++ llvm/trunk/test/tools/dsymutil/X86/lc_build_version.test Tue Nov 13 15:31:25 2018<br>
> @@ -8,4 +8,4 @@ CHECK-NEXT:    platform:        1<br>
>  CHECK-NEXT:    minos:           658944<br>
>  CHECK-NEXT:    sdk:             658944<br>
>  CHECK-NEXT:    ntools:          0<br>
> -CHECK-NEXT: - cmd<br>
> +CHECK-NEXT:   - cmd:             LC_BUILD_VERSION<br>
> <br>
> Modified: llvm/trunk/tools/dsymutil/MachOUtils.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/MachOUtils.cpp?rev=346815&r1=346814&r2=346815&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/dsymutil/MachOUtils.cpp?rev=346815&r1=346814&r2=346815&view=diff</a><br>
> ==============================================================================<br>
> --- llvm/trunk/tools/dsymutil/MachOUtils.cpp (original)<br>
> +++ llvm/trunk/tools/dsymutil/MachOUtils.cpp Tue Nov 13 15:31:25 2018<br>
> @@ -374,23 +374,28 @@ bool generateDsymCompanion(const DebugMa<br>
> <br>
>    // Get LC_UUID and LC_BUILD_VERSION.<br>
>    MachO::uuid_command UUIDCmd;<br>
> -  MachO::build_version_command BuildVersionCmd;<br>
> +  SmallVector<MachO::build_version_command, 2> BuildVersionCmd;<br>
>    memset(&UUIDCmd, 0, sizeof(UUIDCmd));<br>
> -  memset(&BuildVersionCmd, 0, sizeof(BuildVersionCmd));<br>
>    for (auto &LCI : InputBinary.load_commands()) {<br>
>      switch (LCI.C.cmd) {<br>
>      case MachO::LC_UUID:<br>
> +      if (UUIDCmd.cmd)<br>
> +        return error("Binary contains more than one UUID");<br>
>        UUIDCmd = InputBinary.getUuidCommand(LCI);<br>
>        ++NumLoadCommands;<br>
> -      LoadCommandSize += sizeof(MachO::uuid_command);<br>
> +      LoadCommandSize += sizeof(UUIDCmd);<br>
>        break;<br>
> -    case MachO::LC_BUILD_VERSION:<br>
> -      BuildVersionCmd = InputBinary.getBuildVersionLoadCommand(LCI);<br>
> +   case MachO::LC_BUILD_VERSION: {<br>
> +      MachO::build_version_command Cmd;<br>
> +      memset(&Cmd, 0, sizeof(Cmd));<br>
> +      Cmd = InputBinary.getBuildVersionLoadCommand(LCI);<br>
>        ++NumLoadCommands;<br>
> -      LoadCommandSize += sizeof(MachO::build_version_command);<br>
> +      LoadCommandSize += sizeof(Cmd);<br>
>        // LLDB doesn't care about the build tools for now.<br>
> -      BuildVersionCmd.ntools = 0;<br>
> +      Cmd.ntools = 0;<br>
> +      BuildVersionCmd.push_back(Cmd);<br>
>        break;<br>
> +    }<br>
>      default:<br>
>        break;<br>
>      }<br>
> @@ -463,13 +468,13 @@ bool generateDsymCompanion(const DebugMa<br>
>      OutFile.write(reinterpret_cast<const char *>(UUIDCmd.uuid), 16);<br>
>      assert(OutFile.tell() == HeaderSize + sizeof(UUIDCmd));<br>
>    }<br>
> -  if (BuildVersionCmd.cmd != 0) {<br>
> -    Writer.W.write<uint32_t>(BuildVersionCmd.cmd);<br>
> -    Writer.W.write<uint32_t>(sizeof(BuildVersionCmd));<br>
> -    Writer.W.write<uint32_t>(BuildVersionCmd.platform);<br>
> -    Writer.W.write<uint32_t>(BuildVersionCmd.minos);<br>
> -    Writer.W.write<uint32_t>(BuildVersionCmd.sdk);<br>
> -    Writer.W.write<uint32_t>(BuildVersionCmd.ntools);<br>
> +  for (auto Cmd : BuildVersionCmd) {<br>
> +    Writer.W.write<uint32_t>(Cmd.cmd);<br>
> +    Writer.W.write<uint32_t>(sizeof(Cmd));<br>
> +    Writer.W.write<uint32_t>(Cmd.platform);<br>
> +    Writer.W.write<uint32_t>(Cmd.minos);<br>
> +    Writer.W.write<uint32_t>(Cmd.sdk);<br>
> +    Writer.W.write<uint32_t>(Cmd.ntools);<br>
>    }<br>
> <br>
>    assert(SymtabCmd.cmd && "No symbol table.");<br>
> <br>
> <br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">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></div>