<div dir="ltr">Well I found and old post by John Criswell describing how he did his dissertation project SVA. He didn't use LTO but llvm-link. So I figure I would try to do it that way and see if this works since I am not sure how good the current support for LTO is. Will clang generally work if an external assembler is used?</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Oct 17, 2018 at 9:05 PM <<a href="mailto:valdis.kletnieks@vt.edu">valdis.kletnieks@vt.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, 17 Oct 2018 20:02:46 +0800, Carter Cheng said:<br>
<br>
> The problem is I have to do something special with the clang options. I<br>
> have to add an interprocedural link time optimization pass spitting out<br>
> bitcode files and tying them together using llvm-link.<br>
<br>
As I said back on Friday, this is work that's already been done:<br>
<br>
> There's no LTO support in the stock 4.19 tree, but Andi Kleen did a patchset<br>
> for 4.15, and there's another patchset to enable LTO when using Clang rather<br>
> than gcc. (I haven't tried either one, don't use on a production machine, as<br>
> the resulting kernel may crash, eat filesystems, and/or turn your dog green...)<br>
<br>
<a href="http://lmgtfy.com/?q=andi+kleen+linux+4.15+lto" rel="noreferrer" target="_blank">http://lmgtfy.com/?q=andi+kleen+linux+4.15+lto</a><br>
<br>
What you're probably going to run into is that adding the options<br>
isn't the hard part of the project.  The hard part will be fixing all<br>
the places where LTO exposes issues in the code, such as this<br>
(already-fixed) problem:<br>
<br>
<a href="https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1620485.html" rel="noreferrer" target="_blank">https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1620485.html</a><br>
<br>
<br>
</blockquote></div>