<div dir="ltr">Pinging this clang patch now that FCFI is in LLVM. As a reminder, this patch sets jumptable on all functions and turns on FCFI on LLVM through -plugin-opt on gold or in llvm::TargetOptions.<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 7, 2014 at 4:50 PM, Tom Roeder <span dir="ltr"><<a href="mailto:tmroeder@google.com" target="_blank">tmroeder@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Sat, Jul 5, 2014 at 7:39 PM, Nick Lewycky <<a href="mailto:nicholas@mxc.ca" target="_blank">nicholas@mxc.ca</a>> wrote:<br>
> +cc Kostya.<br>
><br>
> Kostya, I'm wondering whether I could interest you or anyone on your team in<br>
> looking at <a href="http://reviews.llvm.org/D4167" target="_blank">http://reviews.llvm.org/D4167</a> . It's an IR transforming runtime<br>
> instrumentation with a lot in common with the asan/tsan/msan passes, except<br>
> that it has a different goal (security guarantees instead of bug finding)<br>
> and that it runs as part of llc due to its integration with the jump tables.<br>
> I think the sanitizers are the closest thing to this in llvm and it would be<br>
> nice to get a review from the sanitizer developers.<br>
><br>
><br>
> Tom Roeder wrote:<br>
>><br>
>> This patch adds a clang flag -ffcfi that enables forward-edge<br>
>> control-flow integrity. It depends on the (not yet reviewed) FCFI<br>
>> patch at <a href="http://reviews.llvm.org/D4167" target="_blank">http://reviews.llvm.org/D4167</a>.<br>
>><br>
>> Specifically, it sets FCFI in llvm::TargetOptions when called LLVM<br>
>> directly, and it passes the LLVM flag -fcfi through LTO to LLVM when<br>
>> using gold.<br>
><br>
><br>
> There is not yet a -fcfi flag on the gold plugin. Is that out for review<br>
> already? I looked but I may have missed it.<br>
<br>
</span>That's part of D4167 as of DIff 10978 on June 30th. It's in<br>
include/llvm/CodeGen/CommandFlags.h<br>
<br>
Thanks,<br>
<br>
Tom<br>
</blockquote></div><br></div></div>