I did the same change for Mac in r173014
On Sun, Jan 20, 2013 at 4:59 AM, Jean-Daniel Dupas <[email protected]>wrote: > Should it be done for darwin too ? (see Toolchains.cpp:321) > > > Le 18 janv. 2013 à 23:09, Richard Smith <[email protected]> a > écrit : > > > > > Author: rsmith > > Date: Fri Jan 18 16:09:26 2013 > > New Revision: 172856 > > > > URL: http://llvm.org/viewvc/llvm-project?rev=172856&view=rev > > Log: > > Include ubsan runtime even when building a shared library. We don't > require the executable to be linked with UBSan. > > > > Modified: > > cfe/trunk/lib/Driver/Tools.cpp > > cfe/trunk/test/Driver/ubsan-ld.c > > > > Modified: cfe/trunk/lib/Driver/Tools.cpp > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=172856&r1=172855&r2=172856&view=diff > > > ============================================================================== > > --- cfe/trunk/lib/Driver/Tools.cpp (original) > > +++ cfe/trunk/lib/Driver/Tools.cpp Fri Jan 18 16:09:26 2013 > > @@ -1587,17 +1587,15 @@ > > /// (Linux). > > static void addUbsanRTLinux(const ToolChain &TC, const ArgList &Args, > > ArgStringList &CmdArgs) { > > - if (!Args.hasArg(options::OPT_shared)) { > > - // LibUbsan is "libclang_rt.ubsan-<ArchName>.a" in the Linux library > > - // resource directory. > > - SmallString<128> LibUbsan(TC.getDriver().ResourceDir); > > - llvm::sys::path::append(LibUbsan, "lib", "linux", > > - (Twine("libclang_rt.ubsan-") + > > - TC.getArchName() + ".a")); > > - CmdArgs.push_back(Args.MakeArgString(LibUbsan)); > > - CmdArgs.push_back("-lpthread"); > > - CmdArgs.push_back("-export-dynamic"); > > - } > > + // LibUbsan is "libclang_rt.ubsan-<ArchName>.a" in the Linux library > > + // resource directory. > > + SmallString<128> LibUbsan(TC.getDriver().ResourceDir); > > + llvm::sys::path::append(LibUbsan, "lib", "linux", > > + (Twine("libclang_rt.ubsan-") + > > + TC.getArchName() + ".a")); > > + CmdArgs.push_back(Args.MakeArgString(LibUbsan)); > > + CmdArgs.push_back("-lpthread"); > > + CmdArgs.push_back("-export-dynamic"); > > } > > > > static bool shouldUseFramePointer(const ArgList &Args, > > > > Modified: cfe/trunk/test/Driver/ubsan-ld.c > > URL: > http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/ubsan-ld.c?rev=172856&r1=172855&r2=172856&view=diff > > > ============================================================================== > > --- cfe/trunk/test/Driver/ubsan-ld.c (original) > > +++ cfe/trunk/test/Driver/ubsan-ld.c Fri Jan 18 16:09:26 2013 > > @@ -9,6 +9,16 @@ > > // CHECK-LINUX: libclang_rt.ubsan-i386.a" > > // CHECK-LINUX: "-lpthread" > > > > +// RUN: %clang -fsanitize=undefined %s -### -o %t.o 2>&1 \ > > +// RUN: -target i386-unknown-linux \ > > +// RUN: --sysroot=%S/Inputs/basic_linux_tree \ > > +// RUN: -shared \ > > +// RUN: | FileCheck --check-prefix=CHECK-LINUX-SHARED %s > > +// CHECK-LINUX-SHARED: "{{.*}}ld{{(.exe)?}}" > > +// CHECK-LINUX-SHARED-NOT: "-lc" > > +// CHECK-LINUX-SHARED: libclang_rt.ubsan-i386.a" > > +// CHECK-LINUX-SHARED: "-lpthread" > > + > > // RUN: %clang -fsanitize=bounds %s -### -o %t.o 2>&1 \ > > // RUN: -target i386-unknown-linux \ > > // RUN: --sysroot=%S/Inputs/basic_linux_tree \ > > > > > > _______________________________________________ > > cfe-commits mailing list > > [email protected] > > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > -- Jean-Daniel > > > > > > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > -- Alexey Samsonov, MSK
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
