<div dir="ltr"><div class="gmail_default" style>I did the same change for Mac in r173014</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Jan 20, 2013 at 4:59 AM, Jean-Daniel Dupas <span dir="ltr"><<a href="mailto:devlists@shadowlab.org" target="_blank">devlists@shadowlab.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Should it be done for darwin too ? (see Toolchains.cpp:321)<br>
<br>
<br>
Le 18 janv. 2013 à 23:09, Richard Smith <<a href="mailto:richard-llvm@metafoo.co.uk">richard-llvm@metafoo.co.uk</a>> a écrit :<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> Author: rsmith<br>
> Date: Fri Jan 18 16:09:26 2013<br>
> New Revision: 172856<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=172856&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=172856&view=rev</a><br>
> Log:<br>
> Include ubsan runtime even when building a shared library. We don't require the executable to be linked with UBSan.<br>
><br>
> Modified:<br>
>    cfe/trunk/lib/Driver/Tools.cpp<br>
>    cfe/trunk/test/Driver/ubsan-ld.c<br>
><br>
> Modified: cfe/trunk/lib/Driver/Tools.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=172856&r1=172855&r2=172856&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=172856&r1=172855&r2=172856&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/lib/Driver/Tools.cpp (original)<br>
> +++ cfe/trunk/lib/Driver/Tools.cpp Fri Jan 18 16:09:26 2013<br>
> @@ -1587,17 +1587,15 @@<br>
> /// (Linux).<br>
> static void addUbsanRTLinux(const ToolChain &TC, const ArgList &Args,<br>
>                             ArgStringList &CmdArgs) {<br>
> -  if (!Args.hasArg(options::OPT_shared)) {<br>
> -    // LibUbsan is "libclang_rt.ubsan-<ArchName>.a" in the Linux library<br>
> -    // resource directory.<br>
> -    SmallString<128> LibUbsan(TC.getDriver().ResourceDir);<br>
> -    llvm::sys::path::append(LibUbsan, "lib", "linux",<br>
> -                            (Twine("libclang_rt.ubsan-") +<br>
> -                             TC.getArchName() + ".a"));<br>
> -    CmdArgs.push_back(Args.MakeArgString(LibUbsan));<br>
> -    CmdArgs.push_back("-lpthread");<br>
> -    CmdArgs.push_back("-export-dynamic");<br>
> -  }<br>
> +  // LibUbsan is "libclang_rt.ubsan-<ArchName>.a" in the Linux library<br>
> +  // resource directory.<br>
> +  SmallString<128> LibUbsan(TC.getDriver().ResourceDir);<br>
> +  llvm::sys::path::append(LibUbsan, "lib", "linux",<br>
> +                          (Twine("libclang_rt.ubsan-") +<br>
> +                           TC.getArchName() + ".a"));<br>
> +  CmdArgs.push_back(Args.MakeArgString(LibUbsan));<br>
> +  CmdArgs.push_back("-lpthread");<br>
> +  CmdArgs.push_back("-export-dynamic");<br>
> }<br>
><br>
> static bool shouldUseFramePointer(const ArgList &Args,<br>
><br>
> Modified: cfe/trunk/test/Driver/ubsan-ld.c<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ubsan-ld.c?rev=172856&r1=172855&r2=172856&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ubsan-ld.c?rev=172856&r1=172855&r2=172856&view=diff</a><br>

> ==============================================================================<br>
> --- cfe/trunk/test/Driver/ubsan-ld.c (original)<br>
> +++ cfe/trunk/test/Driver/ubsan-ld.c Fri Jan 18 16:09:26 2013<br>
> @@ -9,6 +9,16 @@<br>
> // CHECK-LINUX: libclang_rt.ubsan-i386.a"<br>
> // CHECK-LINUX: "-lpthread"<br>
><br>
> +// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \<br>
> +// RUN:     -target i386-unknown-linux \<br>
> +// RUN:     --sysroot=%S/Inputs/basic_linux_tree \<br>
> +// RUN:     -shared \<br>
> +// RUN:   | FileCheck --check-prefix=CHECK-LINUX-SHARED %s<br>
> +// CHECK-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}"<br>
> +// CHECK-LINUX-SHARED-NOT: "-lc"<br>
> +// CHECK-LINUX-SHARED: libclang_rt.ubsan-i386.a"<br>
> +// CHECK-LINUX-SHARED: "-lpthread"<br>
> +<br>
> // RUN: %clang -fsanitize=bounds %s -### -o %t.o 2>&1 \<br>
> // RUN:     -target i386-unknown-linux \<br>
> // RUN:     --sysroot=%S/Inputs/basic_linux_tree \<br>
><br>
><br>
> _______________________________________________<br>
> cfe-commits mailing list<br>
> <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">-- Jean-Daniel<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div>Alexey Samsonov, MSK</div>
</div>