mirror of https://github.com/microsoft/clang.git
Revert "Revert "Revert "Revert "Fix LLVMgold plugin name/path for non-Linux.""""
With tests fixed for Windows style paths now that they are going through path canonicalization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@311487 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
5730f5ad03
commit
99c20f4d54
|
@ -376,8 +376,20 @@ void tools::AddGoldPlugin(const ToolChain &ToolChain, const ArgList &Args,
|
||||||
// as gold requires -plugin to come before any -plugin-opt that -Wl might
|
// as gold requires -plugin to come before any -plugin-opt that -Wl might
|
||||||
// forward.
|
// forward.
|
||||||
CmdArgs.push_back("-plugin");
|
CmdArgs.push_back("-plugin");
|
||||||
std::string Plugin =
|
|
||||||
ToolChain.getDriver().Dir + "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold.so";
|
#if defined(LLVM_ON_WIN32)
|
||||||
|
const char *Suffix = ".dll";
|
||||||
|
#elif defined(__APPLE__)
|
||||||
|
const char *Suffix = ".dylib";
|
||||||
|
#else
|
||||||
|
const char *Suffix = ".so";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
SmallString<1024> Plugin;
|
||||||
|
llvm::sys::path::native(Twine(ToolChain.getDriver().Dir) +
|
||||||
|
"/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold" +
|
||||||
|
Suffix,
|
||||||
|
Plugin);
|
||||||
CmdArgs.push_back(Args.MakeArgString(Plugin));
|
CmdArgs.push_back(Args.MakeArgString(Plugin));
|
||||||
|
|
||||||
// Try to pass driver level flags relevant to LTO code generation down to
|
// Try to pass driver level flags relevant to LTO code generation down to
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
|
|
||||||
// RUN: %clang -target x86_64-pc-freebsd8 %s -### -flto 2>&1 \
|
// RUN: %clang -target x86_64-pc-freebsd8 %s -### -flto 2>&1 \
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-LTO %s
|
// RUN: | FileCheck --check-prefix=CHECK-LTO %s
|
||||||
// CHECK-LTO: ld{{.*}}" "-plugin{{.*}}LLVMgold.so
|
// CHECK-LTO: ld{{.*}}" "-plugin{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}
|
||||||
|
|
||||||
// RUN: %clang -target sparc-unknown-freebsd8 %s -### -fpic -no-integrated-as 2>&1 \
|
// RUN: %clang -target sparc-unknown-freebsd8 %s -### -fpic -no-integrated-as 2>&1 \
|
||||||
// RUN: | FileCheck --check-prefix=CHECK-SPARC-PIE %s
|
// RUN: | FileCheck --check-prefix=CHECK-SPARC-PIE %s
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
||||||
// RUN: -Wl,-plugin-opt=foo -O3 \
|
// RUN: -Wl,-plugin-opt=foo -O3 \
|
||||||
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-BASIC
|
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-BASIC
|
||||||
// CHECK-X86-64-BASIC: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-X86-64-BASIC: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-X86-64-BASIC: "-plugin-opt=O3"
|
// CHECK-X86-64-BASIC: "-plugin-opt=O3"
|
||||||
// CHECK-X86-64-BASIC: "-plugin-opt=foo"
|
// CHECK-X86-64-BASIC: "-plugin-opt=foo"
|
||||||
//
|
//
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
// RUN: %clang -target x86_64-unknown-linux -### %t.o -flto 2>&1 \
|
||||||
// RUN: -march=corei7 -Wl,-plugin-opt=foo -Ofast \
|
// RUN: -march=corei7 -Wl,-plugin-opt=foo -Ofast \
|
||||||
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-COREI7
|
// RUN: | FileCheck %s --check-prefix=CHECK-X86-64-COREI7
|
||||||
// CHECK-X86-64-COREI7: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-X86-64-COREI7: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-X86-64-COREI7: "-plugin-opt=mcpu=corei7"
|
// CHECK-X86-64-COREI7: "-plugin-opt=mcpu=corei7"
|
||||||
// CHECK-X86-64-COREI7: "-plugin-opt=O3"
|
// CHECK-X86-64-COREI7: "-plugin-opt=O3"
|
||||||
// CHECK-X86-64-COREI7: "-plugin-opt=foo"
|
// CHECK-X86-64-COREI7: "-plugin-opt=foo"
|
||||||
|
@ -18,11 +18,11 @@
|
||||||
// RUN: %clang -target arm-unknown-linux -### %t.o -flto 2>&1 \
|
// RUN: %clang -target arm-unknown-linux -### %t.o -flto 2>&1 \
|
||||||
// RUN: -march=armv7a -Wl,-plugin-opt=foo -O0 \
|
// RUN: -march=armv7a -Wl,-plugin-opt=foo -O0 \
|
||||||
// RUN: | FileCheck %s --check-prefix=CHECK-ARM-V7A
|
// RUN: | FileCheck %s --check-prefix=CHECK-ARM-V7A
|
||||||
// CHECK-ARM-V7A: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-ARM-V7A: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-ARM-V7A: "-plugin-opt=mcpu=generic"
|
// CHECK-ARM-V7A: "-plugin-opt=mcpu=generic"
|
||||||
// CHECK-ARM-V7A: "-plugin-opt=O0"
|
// CHECK-ARM-V7A: "-plugin-opt=O0"
|
||||||
// CHECK-ARM-V7A: "-plugin-opt=foo"
|
// CHECK-ARM-V7A: "-plugin-opt=foo"
|
||||||
//
|
//
|
||||||
// RUN: %clang -target i686-linux-android -### %t.o -flto 2>&1 \
|
// RUN: %clang -target i686-linux-android -### %t.o -flto 2>&1 \
|
||||||
// RUN: | FileCheck %s --check-prefix=CHECK-X86-ANDROID
|
// RUN: | FileCheck %s --check-prefix=CHECK-X86-ANDROID
|
||||||
// CHECK-X86-ANDROID: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-X86-ANDROID: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Check that Darwin uses LLVMgold.dylib.
|
||||||
|
// REQUIRES: system-darwin
|
||||||
|
// RUN: %clang -### %s -flto 2>&1 \
|
||||||
|
// RUN: | FileCheck -check-prefix=CHECK-LTO-PLUGIN %s
|
||||||
|
//
|
||||||
|
// CHECK-LTO-PLUGIN: "-plugin" "{{.*}}/LLVMgold.dylib"
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Check that non-Windows, non-Darwin OSs use LLVMgold.so.
|
||||||
|
// REQUIRES: !system-darwin && !system-windows
|
||||||
|
// RUN: %clang -### %s -flto 2>&1 \
|
||||||
|
// RUN: | FileCheck -check-prefix=CHECK-LTO-PLUGIN %s
|
||||||
|
//
|
||||||
|
// CHECK-LTO-PLUGIN: "-plugin" "{{.*}}/LLVMgold.so"
|
|
@ -0,0 +1,6 @@
|
||||||
|
// Check that Windows uses LLVMgold.dll.
|
||||||
|
// REQUIRES: system-windows
|
||||||
|
// RUN: %clang -### %s -flto 2>&1 \
|
||||||
|
// RUN: | FileCheck -check-prefix=CHECK-LTO-PLUGIN %s
|
||||||
|
//
|
||||||
|
// CHECK-LTO-PLUGIN: "-plugin" "{{.*}}\\LLVMgold.dll"
|
|
@ -36,19 +36,19 @@
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-LTO-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-LTO-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-LTO-ACTION: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-LTO-ACTION: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
|
|
||||||
// -flto=full should cause link using gold plugin
|
// -flto=full should cause link using gold plugin
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-FULL-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-FULL-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-FULL-ACTION: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-FULL-ACTION: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
|
|
||||||
// Check that subsequent -fno-lto takes precedence
|
// Check that subsequent -fno-lto takes precedence
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full -fno-lto 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full -fno-lto 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-NOLTO-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-NOLTO-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
|
|
||||||
// -flto passes along an explicit debugger tuning argument.
|
// -flto passes along an explicit debugger tuning argument.
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto -glldb 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto -glldb 2> %t
|
||||||
|
|
|
@ -19,19 +19,19 @@
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full -fno-lto -flto=thin 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=full -fno-lto -flto=thin 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-THIN-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-THIN-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-THIN-ACTION: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-THIN-ACTION: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-LINK-THIN-ACTION: "-plugin-opt=thinlto"
|
// CHECK-LINK-THIN-ACTION: "-plugin-opt=thinlto"
|
||||||
|
|
||||||
// Check that subsequent -flto=full takes precedence
|
// Check that subsequent -flto=full takes precedence
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin -flto=full 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin -flto=full 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-FULL-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-FULL-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-FULL-ACTION: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-FULL-ACTION: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-LINK-FULL-ACTION-NOT: "-plugin-opt=thinlto"
|
// CHECK-LINK-FULL-ACTION-NOT: "-plugin-opt=thinlto"
|
||||||
|
|
||||||
// Check that subsequent -fno-lto takes precedence
|
// Check that subsequent -fno-lto takes precedence
|
||||||
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin -fno-lto 2> %t
|
// RUN: %clang -target x86_64-unknown-linux -### %s -flto=thin -fno-lto 2> %t
|
||||||
// RUN: FileCheck -check-prefix=CHECK-LINK-NOLTO-ACTION < %t %s
|
// RUN: FileCheck -check-prefix=CHECK-LINK-NOLTO-ACTION < %t %s
|
||||||
//
|
//
|
||||||
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin" "{{.*}}/LLVMgold.so"
|
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin" "{{.*}}{{[/\\]}}LLVMgold.{{dll|dylib|so}}"
|
||||||
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin-opt=thinlto"
|
// CHECK-LINK-NOLTO-ACTION-NOT: "-plugin-opt=thinlto"
|
||||||
|
|
Loading…
Reference in New Issue