<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 15, 2015 at 2:57 PM, Adrian Prantl via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-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 style="word-wrap:break-word"><div><div class="h5"><div><blockquote type="cite"><div>On Oct 15, 2015, at 2:51 PM, Alex Rosenberg <<a href="mailto:alexr@leftfield.org" target="_blank">alexr@leftfield.org</a>> wrote:</div><br><div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">On Oct 15, 2015, at 2:20 PM, Adrian Prantl via cfe-commits <</span><a href="mailto:cfe-commits@lists.llvm.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">cfe-commits@lists.llvm.org</a><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">> wrote:</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br><blockquote type="cite"><div style="font-family:Helvetica;font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote type="cite"><div><br>On Oct 15, 2015, at 2:09 PM, Adrian Prantl via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>> wrote:</div><br><div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><blockquote type="cite"><div><br>On Oct 15, 2015, at 1:42 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div><br><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 15, 2015 at 11:14 AM, Adrian Prantl<span> </span><span dir="ltr"><<a href="mailto:aprantl@apple.com" target="_blank">aprantl@apple.com</a>></span><span> </span>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div style="word-wrap:break-word"><span><br><div><blockquote type="cite"><div>On Oct 14, 2015, at 5:07 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div><div><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>Ack, there are non-modular headers in the Darwin module. =( I seem to recall that they're not version-locked to your compiler, so we've got to support them as-is?</div><div><br></div><div>If we can't turn on local submodule visibility, then we need a module map for libc++ that covers all of its headers. I'll look into pruning the include path when building a module from an implicitly-loaded module map.</div></div></div></div></div></blockquote></div><br></span><div>The attached patch implements this in the most hacky way; with it I can successfully compile the first few hundred files of LLVM.</div></div></blockquote><div><br></div><div>Great, it looks like this plan should work then. What failure do you eventually hit? Does it look related to these <foo.h> changes?</div></div></div></div></div></blockquote><div><br></div><div>So far I fixed <span style="font-family:Menlo-Regular">250446</span>  and <span style="font-family:Menlo-Regular">250459 </span>which were both just missing include files. I’m puzzled by <span style="font-family:Menlo-Regular">250459</span> though, as there is nothing Darwin-specific about the change. I’ll keep iterating and will let you know if there are any libc++-related problems.</div><br><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>I'm working on a more refined version of the approach I described earlier; I'll mail you a patch to test when I have it finished.</div></div></div></div></div></blockquote></div><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">That sounds great.</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">thanks,</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">adrian</div></div></blockquote><br></div><div style="font-family:Helvetica;font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Here’s a weird one:</div><div style="font-family:Helvetica;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;font-size:9px"><br></div><div style="font-family:Helvetica;font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px"><b>../lib/Transforms/Scalar/ScalarReplAggregates.cpp:1031:6:<span> </span></b><span style="color:rgb(195,55,32)"><b>error:<span> </span></b></span><b>'SROA' is not a class, namespace, or enumeration</b></div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px">bool SROA::runOnFunction(Function &F) {</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(52,189,38);font-size:11px"><b>     ^</b></div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px"><b>../lib/Transforms/Scalar/ScalarReplAggregates.cpp:1031:6:<span> </span></b><span style="color:rgb(195,55,32)"><b>error:<span> </span></b></span><b>reference to 'SROA' is ambiguous</b></div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px"><b>../include/llvm/Transforms/Scalar/SROA.h:54:7: note:<span> </span></b>candidate found by name lookup is 'llvm::SROA'</div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px">class SROA {</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(52,189,38);font-size:11px"><b>      ^</b></div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px"><b>../lib/Transforms/Scalar/ScalarReplAggregates.cpp:63:10: note:<span> </span></b>candidate found by name lookup is '(anonymous namespace)::SROA'</div><div style="margin:0px;line-height:normal;font-family:Menlo;font-size:11px">  struct SROA : public FunctionPass {</div><div style="margin:0px;line-height:normal;font-family:Menlo;color:rgb(52,189,38);font-size:11px"><b>         ^</b></div><div><br></div></div><span style="font-family:Helvetica;font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">this doesn’t look Darwin-specific at all. Assuming that the Linux module build works, why am I seeing this?</span></blockquote><div><br></div>The Linux bot has the same problem: <a href="http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/7331/steps/compile.llvm.stage2/logs/stdio" target="_blank">http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/7331/steps/compile.llvm.stage2/logs/stdio</a></div></div></blockquote></div><br></div></div><div>Oh :-) That bot does not look very happy:</div><div><a href="http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules?numbuilds=1000" target="_blank">http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules?numbuilds=1000</a></div><div><br></div><div>What’s the appropriate solution, renaming the struct ::SROA in the anonymous namespace to something else?</div></div></blockquote><div><br></div><div>Oh, and please don't do that: the point of the modules selfhost bot is to find bugs in Clang's modules implementation. We shouldn't make changes to the LLVM code to make the build pass unless the problem is known to be a bug in the code being compiled rather than a bug in the compiler.</div></div></div></div>