From 99ee10d2b83ba4000e14fbb5639174260fcdfb1c Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Thu, 22 May 2014 21:13:30 +0000 Subject: [PATCH] Unify the name of compiler-rt builtins library on Linux. Call it "libclang_rt.builtins-.a" to be consistent with sanitizers/profile libraries naming. Modify Makefile and CMake build systems and Clang driver accordingly. Fixes PR19822. llvm-svn: 209474 --- clang/lib/Driver/Tools.cpp | 7 ++++--- clang/runtime/compiler-rt/Makefile | 4 ++-- clang/test/Driver/linux-ld.c | 4 ++-- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index e51cb1b27957..3fe552db822e 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -1891,14 +1891,15 @@ static SmallString<128> getCompilerRTLibDir(const ToolChain &TC) { return Res; } -// This adds the static libclang_rt.arch.a directly to the command line +// This adds the static libclang_rt.builtins-arch.a directly to the command line // FIXME: Make sure we can also emit shared objects if they're requested // and available, check for possible errors, etc. static void addClangRTLinux( const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) { SmallString<128> LibClangRT = getCompilerRTLibDir(TC); - llvm::sys::path::append(LibClangRT, - Twine("libclang_rt.") + getArchNameForCompilerRTLib(TC) + ".a"); + llvm::sys::path::append(LibClangRT, Twine("libclang_rt.builtins-") + + getArchNameForCompilerRTLib(TC) + + ".a"); CmdArgs.push_back(Args.MakeArgString(LibClangRT)); CmdArgs.push_back("-lgcc_s"); diff --git a/clang/runtime/compiler-rt/Makefile b/clang/runtime/compiler-rt/Makefile index 9833eb901abd..ccd83a357048 100644 --- a/clang/runtime/compiler-rt/Makefile +++ b/clang/runtime/compiler-rt/Makefile @@ -126,7 +126,7 @@ TryCompile = \ # We try to build 32-bit runtimes both on 32-bit hosts and 64-bit hosts. Runtime32BitConfigs = \ - full-i386.a profile-i386.a san-i386.a asan-i386.a asan_cxx-i386.a \ + builtins-i386.a profile-i386.a san-i386.a asan-i386.a asan_cxx-i386.a \ ubsan-i386.a ubsan_cxx-i386.a # We currently only try to generate runtime libraries on x86. @@ -136,7 +136,7 @@ endif ifeq ($(ARCH),x86_64) RuntimeLibrary.linux.Configs += \ - full-x86_64.a profile-x86_64.a san-x86_64.a asan-x86_64.a \ + builtins-x86_64.a profile-x86_64.a san-x86_64.a asan-x86_64.a \ asan_cxx-x86_64.a tsan-x86_64.a msan-x86_64.a ubsan-x86_64.a \ ubsan_cxx-x86_64.a dfsan-x86_64.a lsan-x86_64.a # We need to build 32-bit ASan/UBsan libraries on 64-bit platform, and add them diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c index 4036635847bd..5509e5341962 100644 --- a/clang/test/Driver/linux-ld.c +++ b/clang/test/Driver/linux-ld.c @@ -49,9 +49,9 @@ // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-unknown-linux/4.6.0/../../.." // CHECK-LD-RT: "-L[[SYSROOT]]/lib" // CHECK-LD-RT: "-L[[SYSROOT]]/usr/lib" -// CHECK-LD-RT: libclang_rt.x86_64.a" "-lgcc_s" +// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s" // CHECK-LD-RT: "-lc" -// CHECK-LD-RT: libclang_rt.x86_64.a" "-lgcc_s" +// CHECK-LD-RT: libclang_rt.builtins-x86_64.a" "-lgcc_s" // // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ // RUN: --target=x86_64-unknown-linux \