Thank you! :) -bw
On Nov 25, 2012, at 5:41 AM, Alexey Samsonov <[email protected]> wrote: > r168562. Sorry for the breakage! > > On Sun, Nov 25, 2012 at 4:05 PM, Bill Wendling <[email protected]> wrote: > Ping! Could you fix this please? It's been failing for days now. > > -bw > > On Nov 23, 2012, at 10:24 AM, David Blaikie <[email protected]> wrote: > > > On Wed, Nov 21, 2012 at 6:17 AM, Alexey Samsonov <[email protected]> > > wrote: > >> Author: samsonov > >> Date: Wed Nov 21 08:17:42 2012 > >> New Revision: 168428 > >> > >> URL: http://llvm.org/viewvc/llvm-project?rev=168428&view=rev > >> Log: > >> [Sanitizer] force linking with static sanitizer runtimes on Darwin even if > >> they are not found in resource directory. Add test checking sanitizer > >> linker flags on Darwin. > >> > >> Added: > >> cfe/trunk/test/Driver/darwin-sanitizer-ld.c > >> Modified: > >> cfe/trunk/lib/Driver/ToolChains.cpp > >> cfe/trunk/lib/Driver/ToolChains.h > >> > >> Modified: cfe/trunk/lib/Driver/ToolChains.cpp > >> URL: > >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=168428&r1=168427&r2=168428&view=diff > >> ============================================================================== > >> --- cfe/trunk/lib/Driver/ToolChains.cpp (original) > >> +++ cfe/trunk/lib/Driver/ToolChains.cpp Wed Nov 21 08:17:42 2012 > >> @@ -261,16 +261,18 @@ > >> > >> void DarwinClang::AddLinkRuntimeLib(const ArgList &Args, > >> ArgStringList &CmdArgs, > >> - const char *DarwinStaticLib) const { > >> + const char *DarwinStaticLib, > >> + bool AlwaysLink) const { > >> llvm::sys::Path P(getDriver().ResourceDir); > >> P.appendComponent("lib"); > >> P.appendComponent("darwin"); > >> P.appendComponent(DarwinStaticLib); > >> > >> // For now, allow missing resource libraries to support developers who > >> may > >> - // not have compiler-rt checked out or integrated into their build. > >> + // not have compiler-rt checked out or integrated into their build > >> (unless > >> + // we explicitly force linking with this library). > >> bool Exists; > >> - if (!llvm::sys::fs::exists(P.str(), Exists) && Exists) > >> + if (AlwaysLink || (!llvm::sys::fs::exists(P.str(), Exists) && Exists)) > >> CmdArgs.push_back(Args.MakeArgString(P.str())); > >> } > >> > >> @@ -326,7 +328,7 @@ > >> getDriver().Diag(diag::err_drv_clang_unsupported_per_platform) > >> << "-fsanitize=undefined"; > >> } else { > >> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.ubsan_osx.a"); > >> + AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.ubsan_osx.a", true); > >> > >> // The Ubsan runtime library requires C++. > >> AddCXXStdlibLibArgs(Args, CmdArgs); > >> @@ -343,7 +345,7 @@ > >> getDriver().Diag(diag::err_drv_clang_unsupported_per_platform) > >> << "-fsanitize=address"; > >> } else { > >> - AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.asan_osx.a"); > >> + AddLinkRuntimeLib(Args, CmdArgs, "libclang_rt.asan_osx.a", true); > >> > >> // The ASAN runtime library requires C++ and CoreFoundation. > >> AddCXXStdlibLibArgs(Args, CmdArgs); > >> > >> Modified: cfe/trunk/lib/Driver/ToolChains.h > >> URL: > >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.h?rev=168428&r1=168427&r2=168428&view=diff > >> ============================================================================== > >> --- cfe/trunk/lib/Driver/ToolChains.h (original) > >> +++ cfe/trunk/lib/Driver/ToolChains.h Wed Nov 21 08:17:42 2012 > >> @@ -370,9 +370,10 @@ > >> > >> virtual void AddLinkRuntimeLibArgs(const ArgList &Args, > >> ArgStringList &CmdArgs) const; > >> - void AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs, > >> - const char *DarwinStaticLib) const; > >> - > >> + void AddLinkRuntimeLib(const ArgList &Args, ArgStringList &CmdArgs, > >> + const char *DarwinStaticLib, > >> + bool AlwaysLink = false) const; > >> + > >> virtual void AddCXXStdlibLibArgs(const ArgList &Args, > >> ArgStringList &CmdArgs) const; > >> > >> > >> Added: cfe/trunk/test/Driver/darwin-sanitizer-ld.c > >> URL: > >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-sanitizer-ld.c?rev=168428&view=auto > >> ============================================================================== > >> --- cfe/trunk/test/Driver/darwin-sanitizer-ld.c (added) > >> +++ cfe/trunk/test/Driver/darwin-sanitizer-ld.c Wed Nov 21 08:17:42 2012 > >> @@ -0,0 +1,40 @@ > >> +// Test sanitizer link flags on Darwin. > >> + > >> +// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \ > >> +// RUN: -fsanitize=address %s -o %t.o 2>&1 \ > >> +// RUN: | FileCheck --check-prefix=CHECK-ASAN %s > >> + > >> +// CHECK-ASAN: "{{.*}}ld" > >> +// CHECK-ASAN: libclang_rt.asan_osx.a" > >> +// CHECK-ASAN: "-lstdc++" > > > > This check fails on Snow Leopard, by the looks of it > > > > http://lab.llvm.org:8011/builders/clang-x86_64-darwin10-gdb/builds/37/steps/check-all/logs/darwin-sanitizer-ld.c > > > > Full output: > > > > macmini4:build buildslave$ > > /Users/buildslave/build/Debug+Asserts/bin/clang > > -no-canonical-prefixes -### -target x86_64-darwin > > -fsanitize=address > > /Users/buildslave/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c > > -o > > /Users/buildslave/build/tools/clang/test/Driver/Output/darwin-sanitizer-ld.c.tmp.o > > 2>&1 | ./Debug+Asserts/bin/FileCheck --check-prefix=CHECK-ASAN > > /Users/buildslave/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c > > /Users/buildslave/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c:9:16: > > error: expected string not found in input > > // CHECK-ASAN: "-lstdc++" > > ^ > > <stdin>:5:319: note: scanning from here > > "/usr/bin/ld" "-demangle" "-dynamic" "-arch" "x86_64" > > "-macosx_version_min" "10.4.0" "-o" > > "/Users/buildslave/build/tools/clang/test/Driver/Output/darwin-sanitizer-ld.c.tmp.o" > > "-lcrt1.o" "/tmp/darwin-sanitizer-ld-1EuvSw.o" > > "/Users/buildslave/build/Debug+Asserts/bin/../lib/clang/3.3/lib/darwin/libclang_rt.asan_osx.a" > > "/usr/lib/libstdc++.6.dylib" "-framework" "CoreFoundation" "-lSystem" > > "-lgcc_s.10.4" > > > > > > > > > > ^ > > <stdin>:5:329: note: possible intended match here > > "/usr/bin/ld" "-demangle" "-dynamic" "-arch" "x86_64" > > "-macosx_version_min" "10.4.0" "-o" > > "/Users/buildslave/build/tools/clang/test/Driver/Output/darwin-sanitizer-ld.c.tmp.o" > > "-lcrt1.o" "/tmp/darwin-sanitizer-ld-1EuvSw.o" > > "/Users/buildslave/build/Debug+Asserts/bin/../lib/clang/3.3/lib/darwin/libclang_rt.asan_osx.a" > > "/usr/lib/libstdc++.6.dylib" "-framework" "CoreFoundation" "-lSystem" > > "-lgcc_s.10.4" > > > > > > > > > > ^ > > macmini4:build buildslave$ > > /Users/buildslave/build/Debug+Asserts/bin/clang > > -no-canonical-prefixes -### -target x86_64-darwin > > -fsanitize=address > > /Users/buildslave/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c > > -o > > /Users/buildslave/build/tools/clang/test/Driver/Output/darwin-sanitizer-ld.c.tmp.o > > 2>&1 > > clang version 3.3 (trunk 168521) > > Target: x86_64--darwin > > Thread model: posix > > "/Users/buildslave/build/Debug+Asserts/bin/clang" "-cc1" "-triple" > > "x86_64--macosx10.4.0" "-emit-obj" "-mrelax-all" "-disable-free" > > "-main-file-name" "darwin-sanitizer-ld.c" "-mrelocation-model" "pic" > > "-pic-level" "2" "-mdisable-fp-elim" "-masm-verbose" "-munwind-tables" > > "-target-cpu" "core2" "-target-linker-version" "127.2.1" > > "-resource-dir" > > "/Users/buildslave/build/Debug+Asserts/bin/../lib/clang/3.3" > > "-fmodule-cache-path" "/var/tmp/clang-module-cache" > > "-fdebug-compilation-dir" "/Users/buildslave/build" "-ferror-limit" > > "19" "-fmessage-length" "238" "-fsanitize=address" "-mstackrealign" > > "-fblocks" "-fblocks-runtime-optional" "-fobjc-runtime=macosx-10.4.0" > > "-fobjc-dispatch-method=non-legacy" > > "-fobjc-default-synthesize-properties" > > "-fencode-extended-block-signature" "-fdiagnostics-show-option" > > "-fcolor-diagnostics" "-o" "/tmp/darwin-sanitizer-ld-WCSNj1.o" "-x" > > "c" "/Users/buildslave/llvm/tools/clang/test/Driver/darwin-sanitizer-ld.c" > > "/usr/bin/ld" "-demangle" "-dynamic" "-arch" "x86_64" > > "-macosx_version_min" "10.4.0" "-o" > > "/Users/buildslave/build/tools/clang/test/Driver/Output/darwin-sanitizer-ld.c.tmp.o" > > "-lcrt1.o" "/tmp/darwin-sanitizer-ld-WCSNj1.o" > > "/Users/buildslave/build/Debug+Asserts/bin/../lib/clang/3.3/lib/darwin/libclang_rt.asan_osx.a" > > "/usr/lib/libstdc++.6.dylib" "-framework" "CoreFoundation" "-lSystem" > > "-lgcc_s.10.4" > > macmini4:build buildslave$ > > > > Is there something we could do to tidy this up? (either generalize the > > CHECKs or, if ASan doesn't support Snow Leopard, XFAIL the test there > > (I'm not sure how to detect that state in the REQUIRES lines, perhaps > > we'd need to plumb through another property)). > > > > Any other ideas? (I'm hoping to get this cleaned up so we can get the > > bot back to green - it's already hiding/noisy-ing up some debug info > > regressions also being reported by the bot) > > > >> +// CHECK-ASAN: "-framework" "CoreFoundation" > >> + > >> +// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \ > >> +// RUN: -fPIC -shared -fsanitize=address %s -o %t.so 2>&1 \ > >> +// RUN: | FileCheck --check-prefix=CHECK-DYN-ASAN %s > >> + > >> +// CHECK-DYN-ASAN: "{{.*}}ld" > >> +// CHECK-DYN-ASAN: "-dylib" > >> +// CHECK-DYN-ASAN-NOT: libclang_rt.asan_osx.a > >> +// CHECK-DYN-ASAN: "-undefined" > >> +// CHECK-DYN-ASAN: "dynamic_lookup" > >> +// CHECK-DYN-ASAN-NOT: libclang_rt.asan_osx.a > >> + > >> +// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \ > >> +// RUN: -fsanitize=undefined %s -o %t.o 2>&1 \ > >> +// RUN: | FileCheck --check-prefix=CHECK-UBSAN %s > >> + > >> +// CHECK-UBSAN: "{{.*}}ld" > >> +// CHECK-UBSAN: libclang_rt.ubsan_osx.a" > >> +// CHECK-UBSAN: "-lstdc++" > >> + > >> +// RUN: %clang -no-canonical-prefixes -### -target x86_64-darwin \ > >> +// RUN: -fPIC -shared -fsanitize=undefined %s -o %t.so 2>&1 \ > >> +// RUN: | FileCheck --check-prefix=CHECK-DYN-UBSAN %s > >> + > >> +// CHECK-DYN-UBSAN: "{{.*}}ld" > >> +// CHECK-DYN-UBSAN: "-dylib" > >> +// CHECK-DYN-UBSAN-NOT: libclang_rt.ubsan_osx.a > >> +// CHECK-DYN-UBSAN: "-undefined" > >> +// CHECK-DYN-UBSAN: "dynamic_lookup" > >> +// CHECK-DYN-UBSAN-NOT: libclang_rt.ubsan_osx.a > >> > >> > >> _______________________________________________ > >> cfe-commits mailing list > >> [email protected] > >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits > > _______________________________________________ > > 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
