<div dir="ltr">Yes, the dependency file gets generated if I use one of the standard targets.<div><br></div><div>When running clang++, it turns around and recalls clang (clang-3.9 specifically) with a bunch of options, one of which includes a -dependency-file build/<a href="http://network.ll.dep.mk">network.ll.dep.mk</a> which looks promising. However, I tried to run clang with those arguments via copy/paste into the shell and I get the following errors.</div><div><div></div>





<p class="inbox-inbox-p1"><span class="inbox-inbox-s1"><b>error: </b></span><span class="inbox-inbox-s2">unknown argument: '--driver-mode=g++'<br></span><span class="inbox-inbox-s1" style="line-height:1.5"><b>error: </b></span><span class="inbox-inbox-s2" style="line-height:1.5">unknown argument: '--target=my_target'<br></span><span class="inbox-inbox-s1" style="line-height:1.5"><b>error: </b></span><span class="inbox-inbox-s2" style="line-height:1.5">unknown argument: '-MMD'<br></span><span class="inbox-inbox-s1" style="line-height:1.5"><b>error: </b></span><span class="inbox-inbox-s2" style="line-height:1.5">unknown argument: '-MF'</span></p><p class="inbox-inbox-p1">Those errors do not show up when invoked internally from clang++, and the output file is generated successfully but the dependency file is not. That seems to match the fact that those unknown arguments show up above. I know the target is being recognized because custom passes we've inserted specifically for our target are getting run. I'm guessing the -triple argument is sufficient for triggering the proper backend.</p><p class="inbox-inbox-p1">Is there a way for me to strace into the sub-clang process invoked by clang++? I'm not very familiar with those tools, but running strace just on clang++ reveals very little other than gathering a few things and then spawning off clang-3.9.</p></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, May 17, 2016 at 9:03 PM Richard Smith <<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>> wrote:<br></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">On Tue, May 17, 2016 at 9:06 AM, Dustyn Blasig via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></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 dir="ltr">Hi All,<div><br></div><div>I'm attempting to use the above-mentioned flags together but I cannot figure out a combination of flags that will get clang to emit the dependency file if the emit-llvm flag is also on. I've seen examples in the forums of people doing this, so it seems like it should work, but there must be some small mistake I'm making.</div><div><br></div><div><div>clang++ -O2 -o build/network.ll network.cxx -std=c++11 -S -emit-llvm -target my_target -I /depot/include -I build -v -MMD -MP -MF build/<a href="http://network.ll.dep.mk" target="_blank">network.ll.dep.mk</a> -MT build/network.ll</div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>That works for me:</div><div><br></div><div>$ touch network.cxx</div><div>$ mkdir build</div><div>$ clang++ -O2 -o build/network.ll network.cxx -std=c++11 -S -emit-llvm -target x86_64 -I /depot/include -I build -v -MMD -MP -MF build/<a href="http://network.ll.dep.mk" target="_blank">network.ll.dep.mk</a> -MT build/network.ll</div><div>$ ls build </div><div>network.ll  <a href="http://network.ll.dep.mk" target="_blank">network.ll.dep.mk</a></div><div>$ cat build/<a href="http://network.ll.dep.mk" target="_blank">network.ll.dep.mk</a> </div><div>build/network.ll: network.cxx</div><div><br></div><div>Can you try running clang under strace and see whether it tries to open your .<a href="http://dep.mk" target="_blank">dep.mk</a> file?</div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><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 dir="ltr"><div>I've tried a number of variations on the compiler -M flags to no avail. We do have a custom target my_target that really only adds a few additional defines into the environment. Do we need to specify something in our target to allow dependency generation?</div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Do you see a dependency file being generated if you use a different target?</div></div></div></div>
</blockquote></div>