<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>Le 15 oct. 2012 à 23:32, Jean-Daniel Dupas <<a href="mailto:devlists@shadowlab.org">devlists@shadowlab.org</a>> a écrit :</div><br class="Apple-interchange-newline"><blockquote type="cite"><br>Le 15 oct. 2012 à 21:31, "Sean McBride" <<a href="mailto:sean@rogue-research.com">sean@rogue-research.com</a>> a écrit :<br><br><blockquote type="cite">On Mon, 15 Oct 2012 12:21:17 -0700, David Blaikie said:<br><br><blockquote type="cite"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">I see that there have been recent changes wrt -fcatch-undefined-<br></blockquote>behavior, and within the last week or so something changed such that my<br>own build of clang (built with CMake on OS X) is unable to build simple<br>programs that use -fcatch-undefined-behavior, I get link errors like:<br><blockquote type="cite"><br>"___ubsan_handle_divrem_overflow", referenced from:<br>    _main in test-OSZvjm.o<br>"___ubsan_handle_type_mismatch", referenced from:<br>    _main in test-OSZvjm.o<br><br>Any ideas why?<br><br></blockquote><br>This is a new feature. Instead of generating traps, -fcatch-undefined-<br>behavior generates library calls that make it easier to find what is<br>wrong (each undefined behavior calls a different function).<br><br>This functions are provided by the ubsan library that is part of<br>compiler-rt. But I'm not sure the integration to the Makefile build<br>system is done yet.<br></blockquote><br>You mean with the CMake build system?<br></blockquote><br>Generally "Makefile build system" describes the configure+make build<br>system (at least when it's discussed here).<br><br><blockquote type="cite">Perhaps if I build using autotools it will work?  Or do you mean it<br></blockquote>works nowhere yet?<br><br>I believe the implication is that it works with the CMake build<br>system. But you will need to checkout the compiler-rt LLVM project<br>into llvm/projects to build it along with clang. (& I assume you'll<br>need to install compiler-rt alongside clang as well, but hopefully the<br>install target does that)<br></blockquote><br>As I said in my original post, I am using CMake (not autotools aka configure+make).  I do have llvm/projects.<br><br>My full little 'build everything' script is:<br><br>------------<br>(cd ~/llvm/llvm/; svn up)<br>(cd ~/llvm/llvm/tools/clang; svn up)<br>(cd ~/llvm/llvm/projects/compiler-rt; svn up)<br><br>mkdir -p ~/llvm/llvm-rel-bin<br>rm -rf ~/llvm/llvm-rel-bin/*<br><br>mkdir -p ~/llvm/llvm-rel-install<br>rm -rf ~/llvm/llvm-rel-install/*<br><br>cd ~/llvm/llvm-rel-bin<br>CC="$(xcrun --find cc)" CXX="$(xcrun --find c++)" cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=OFF -DCMAKE_INSTALL_PREFIX=~/llvm/llvm-rel-install ../llvm<br>make -j16 install<br></blockquote><br>Yep, it looks like the driver integration for the darwin toolchain is missing too.<br><br>The ubsan library should probably be append to the link flags somewhere in Toolchains.cpp:DarwinClang::AddLinkRuntimeLibArgs(), but I don't see it anywhere.<br><br></blockquote><br><span style="background-color: transparent;">Digging a little further, I found this in ubsan_value.h.</span></div><div><br></div><div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0); ">// For now, only support linux. Other platforms should be easy to add, and</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(0, 132, 0); ">// probably work as-is.</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(120, 73, 42); ">#if !defined(__linux__)</div><div style="margin: 0px; font-size: 11px; font-family: Menlo; color: rgb(120, 73, 42); "><div style="margin: 0px; ">#error "UBSan not supported for this platform!"</div><div style="margin: 0px; ">#endif</div><div style="margin: 0px; "><br></div></div><blockquote type="cite"><br>-- Jean-Daniel<br><br><br><br><br><br>_______________________________________________<br>cfe-dev mailing list<br><a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev<br></blockquote></div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; "><div>-- Jean-Daniel</div><div><br></div><div><br></div></span><br class="Apple-interchange-newline">

</div>
<br></body></html>