[llvm-branch-commits] [cfe-branch] r287784 - [LTO] Merge r287685 into the 3.9.1 branch, darwin: Unconditionally pass -lto_library, remove -Wliblto warning.
Mehdi Amini via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed Nov 23 10:00:06 PST 2016
Author: mehdi_amini
Date: Wed Nov 23 12:00:06 2016
New Revision: 287784
URL: http://llvm.org/viewvc/llvm-project?rev=287784&view=rev
Log:
[LTO] Merge r287685 into the 3.9.1 branch, darwin: Unconditionally pass -lto_library, remove -Wliblto warning.
See: https://llvm.org/bugs/PR31120
Modified:
cfe/branches/release_39/include/clang/Basic/DiagnosticDriverKinds.td
cfe/branches/release_39/lib/Driver/Tools.cpp
cfe/branches/release_39/test/Driver/darwin-ld-lto.c
Modified: cfe/branches/release_39/include/clang/Basic/DiagnosticDriverKinds.td
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/include/clang/Basic/DiagnosticDriverKinds.td?rev=287784&r1=287783&r2=287784&view=diff
==============================================================================
--- cfe/branches/release_39/include/clang/Basic/DiagnosticDriverKinds.td (original)
+++ cfe/branches/release_39/include/clang/Basic/DiagnosticDriverKinds.td Wed Nov 23 12:00:06 2016
@@ -159,8 +159,6 @@ def err_drv_bitcode_unsupported_on_toolc
"-fembed-bitcode is not supported on versions of iOS prior to 6.0">;
def warn_O4_is_O3 : Warning<"-O4 is equivalent to -O3">, InGroup<Deprecated>;
-def warn_drv_lto_libpath : Warning<"libLTO.dylib relative to clang installed dir not found; using 'ld' default search path instead">,
- InGroup<LibLTO>;
def warn_drv_optimization_value : Warning<"optimization level '%0' is not supported; using '%1%2' instead">,
InGroup<InvalidCommandLineArgument>;
def warn_ignored_gcc_optimization : Warning<"optimization flag '%0' is not supported">,
Modified: cfe/branches/release_39/lib/Driver/Tools.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/lib/Driver/Tools.cpp?rev=287784&r1=287783&r2=287784&view=diff
==============================================================================
--- cfe/branches/release_39/lib/Driver/Tools.cpp (original)
+++ cfe/branches/release_39/lib/Driver/Tools.cpp Wed Nov 23 12:00:06 2016
@@ -7640,20 +7640,20 @@ void darwin::Linker::AddLinkArgs(Compila
}
// Use -lto_library option to specify the libLTO.dylib path. Try to find
- // it in clang installed libraries. If not found, the option is not used
- // and 'ld' will use its default mechanism to search for libLTO.dylib.
+ // it in clang installed libraries. ld64 will only look at this argument
+ // when it actually uses LTO, so libLTO.dylib only needs to exist at link
+ // time if ld64 decides that it needs to use LTO.
+ // Since this is passed unconditionally, ld64 will never look for libLTO.dylib
+ // next to it. That's ok since ld64 using a libLTO.dylib not matching the
+ // clang version won't work anyways.
if (Version[0] >= 133) {
// Search for libLTO in <InstalledDir>/../lib/libLTO.dylib
StringRef P = llvm::sys::path::parent_path(D.Dir);
SmallString<128> LibLTOPath(P);
llvm::sys::path::append(LibLTOPath, "lib");
llvm::sys::path::append(LibLTOPath, "libLTO.dylib");
- if (llvm::sys::fs::exists(LibLTOPath)) {
- CmdArgs.push_back("-lto_library");
- CmdArgs.push_back(C.getArgs().MakeArgString(LibLTOPath));
- } else {
- D.Diag(diag::warn_drv_lto_libpath);
- }
+ CmdArgs.push_back("-lto_library");
+ CmdArgs.push_back(C.getArgs().MakeArgString(LibLTOPath));
}
// Derived from the "link" spec.
Modified: cfe/branches/release_39/test/Driver/darwin-ld-lto.c
URL: http://llvm.org/viewvc/llvm-project/cfe/branches/release_39/test/Driver/darwin-ld-lto.c?rev=287784&r1=287783&r2=287784&view=diff
==============================================================================
--- cfe/branches/release_39/test/Driver/darwin-ld-lto.c (original)
+++ cfe/branches/release_39/test/Driver/darwin-ld-lto.c Wed Nov 23 12:00:06 2016
@@ -1,6 +1,6 @@
// REQUIRES: system-darwin
-// Check that ld gets "-lto_library" and warnings about libLTO.dylib path.
+// Check that ld gets "-lto_library".
// RUN: %clang -target x86_64-apple-darwin10 -### %s \
// RUN: -ccc-install-dir %T/bin -mlinker-version=133 2> %t.log
@@ -9,16 +9,8 @@
// LINK_LTOLIB_PATH: {{ld(.exe)?"}}
// LINK_LTOLIB_PATH: "-lto_library"
+// Also pass -lto_library even if the file doesn't exist; if it's needed at
+// link time, ld will complain instead.
// RUN: %clang -target x86_64-apple-darwin10 -### %s \
// RUN: -ccc-install-dir %S/dummytestdir -mlinker-version=133 2> %t.log
-// RUN: cat %t.log
-// RUN: FileCheck -check-prefix=LINK_LTOLIB_PATH_WRN %s < %t.log
-//
-// LINK_LTOLIB_PATH_WRN: warning: libLTO.dylib relative to clang installed dir not found; using 'ld' default search path instead
-
-// RUN: %clang -target x86_64-apple-darwin10 -### %s \
-// RUN: -ccc-install-dir %S/dummytestdir -mlinker-version=133 -Wno-liblto 2> %t.log
-// RUN: cat %t.log
-// RUN: FileCheck -check-prefix=LINK_LTOLIB_PATH_NOWRN %s < %t.log
-//
-// LINK_LTOLIB_PATH_NOWRN-NOT: warning: libLTO.dylib relative to clang installed dir not found; using 'ld' default search path instead
+// RUN: FileCheck -check-prefix=LINK_LTOLIB_PATH %s -input-file %t.log
More information about the llvm-branch-commits
mailing list