russell.gallop added a subscriber: ruiu.
russell.gallop added a comment.

> Hello, this embeds an absolute path into the generated .obj file, which means 
> the output now is no longer deterministic (since it depends on the absolute 
> path to clang_rt.profile-x86_64.lib).

Yes, it embeds the absolute path. Note that -fsanitize=undefined has done that 
since r241225 (in 2015).

> This means the output will be different on different machines, which breaks 
> things like caching in distributed builds and whatnot.

I assume that your distributed build sandboxes tool paths so this is 
deterministic from one users point of view, just not deterministic across users 
with tools installed in different locations so it defeats the cache. Yes, 
that's not ideal.

> I can't see an obvious way to save this patch either, since you won't know at 
> compile time what the CWD will be at link time.

I assume you're considering relative paths here. Yes, I don't think that would 
work nicely.

> As-is, this breaks Chromium's deterministic builds. ("Only" the coverage 
> builds, and they don't yet check for determinism, which is why it took us a 
> while to notice.)
>  Suggestions?

If this was made into a library name instead of a path (e.g. 
--dependent-lib=clang_rt.profile-x86_64.lib) then it would solve the problem of 
different paths on different nodes, but then you would have to tell the linker 
where to find this library.

That is *almost* as bad as having to specify the full path to the library to 
the linker in the first place! It's not quite as bad as you don't have to 
specify the architecture and you only need to specify it once regardless of 
whether you're using profiling or sanitizers. If lld-link added the clang 
library path itself, then the library name would be all that was needed from 
the compiler side.

Rui, would it be possible for lld-link to search the path to the clang 
libraries (e.g. C:\Program Files\LLVM\lib\clang\8.0.0\lib\windows) by default? 
Would this have any undesirable side effects?


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61742/new/

https://reviews.llvm.org/D61742



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to