<div dir="ltr">The only data we have is that where .o files go, .dwo files go beside them. How to generalize this to other situations isn't really obvious to me - even for a.out (do you put all the .dwo files next to a.out? in the same directory? if the names collide, where then? etc).<br><br>Interestingly GCC for "g++ foo.cpp" puts the foo.dwo file right where it would go by default (next to foo.cpp, even though there's no foo.o).  Oh, LLVM does that too. Huh. I'm not sure that's a terribly helpful default to extrapolate to ThinLTO for, though.<br><br><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Mar 22, 2018 at 1:57 PM Paul Robinson via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">probinson added a comment.<br>
<br>
In <a href="https://reviews.llvm.org/D44788#1046093" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44788#1046093</a>, @dblaikie wrote:<br>
<br>
> In implicit ThinLTO, the object files are only temporary.<br>
><br>
> Sort of similar to using -gsplit-dwarf when compiling straight to an<br>
>  executable (without using -c): "clang++ x.cpp y.cpp -o a.out" - where<br>
>  should the .dwo files go then? If they go where the .o files go, then<br>
>  they'll be in /tmp/ and get deleted either when the ocmpiler ends after it<br>
>  runs the linker, or perhaps at some uncertain point in the future when the<br>
>  temp space is reclaimed.<br>
<br>
<br>
I think that the .dwo files generally go where the user-specified final output goes.  So in your example they would go where a.out goes, not where the intermediate/temporary .o files go.<br>
Being able to override that is fine, but being required to specify a directory in order to get fission in the first place is not.<br>
<br>
<br>
Repository:<br>
  rC Clang<br>
<br>
<a href="https://reviews.llvm.org/D44788" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44788</a><br>
<br>
<br>
<br>
</blockquote></div>