[llvm-branch-commits] [lld] ebac710 - [lld-macho] Don't warn on non-existent system libraries
Nico Weber via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Nov 30 13:12:11 PST 2020
Author: Nico Weber
Date: 2020-11-30T16:07:20-05:00
New Revision: ebac7100090a914e6a4dd0fdf2a5a196423cbaec
URL: https://github.com/llvm/llvm-project/commit/ebac7100090a914e6a4dd0fdf2a5a196423cbaec
DIFF: https://github.com/llvm/llvm-project/commit/ebac7100090a914e6a4dd0fdf2a5a196423cbaec.diff
LOG: [lld-macho] Don't warn on non-existent system libraries
Now, new mach-o lld no longer warns if the isysroot has just
usr/lib and System/Library/Frameworks but is missing usr/local/lib
and System/Frameworks.
This matches ld64 and old mach-o lld and fixes a regression from D85992.
It also fixes the only test failure in `check-lld` when running it
on an M1 Mac.
Differential Revision: https://reviews.llvm.org/D91891
Added:
Modified:
lld/MachO/Driver.cpp
lld/test/MachO/syslibroot.test
Removed:
################################################################################
diff --git a/lld/MachO/Driver.cpp b/lld/MachO/Driver.cpp
index 3de92f510b30..58a41c2b3af1 100644
--- a/lld/MachO/Driver.cpp
+++ b/lld/MachO/Driver.cpp
@@ -178,7 +178,7 @@ getSearchPaths(unsigned optionCode, opt::InputArgList &args,
for (auto root : roots) {
SmallString<261> buffer(root);
path::append(buffer, path);
- if (warnIfNotDirectory(optionLetter, buffer))
+ if (fs::is_directory(buffer))
paths.push_back(saver.save(buffer.str()));
}
}
diff --git a/lld/test/MachO/syslibroot.test b/lld/test/MachO/syslibroot.test
index b09156eb0d1b..ade8652820b1 100644
--- a/lld/test/MachO/syslibroot.test
+++ b/lld/test/MachO/syslibroot.test
@@ -6,8 +6,9 @@ CHECK-NONEXISTENT-SYSLIBROOT: Library search paths:
CHECK-NONEXISTENT-SYSLIBROOT-NEXT: Framework search paths:
RUN: mkdir -p %t/usr/lib
-RUN: lld -flavor darwinnew -v -syslibroot %t | FileCheck %s -check-prefix CHECK-SYSLIBROOT -DROOT=%t
+RUN: lld -flavor darwinnew -v -syslibroot %t 2>&1 | FileCheck %s -check-prefix CHECK-SYSLIBROOT -DROOT=%t
+CHECK-SYSLIBROOT-NOT: directory not found{{.*}}usr/local/lib
CHECK-SYSLIBROOT: Library search paths:
CHECK-SYSLIBROOT-NEXT: [[ROOT]]/usr/lib
@@ -22,14 +23,6 @@ RUN: lld -flavor darwinnew -v -syslibroot %t -L %t/Library/libxml2-development |
CHECK-PATH-WITHOUT-REROOT: Library search paths:
CHECK-PATH-WITHOUT-REROOT-NEXT: [[PATH]]
-# NOTE: the match here is fuzzy because the default search paths exist on Linux
-# and macOS, but not on Windows (that is we ignore `/var/empty`). This allows
-# us to run the test uniformly on all the platforms.
-RUN: lld -flavor darwinnew -v -syslibroot /var/empty -syslibroot / 2>&1 | FileCheck %s -check-prefix CHECK-SYSLIBROOT-IGNORED
-
-CHECK-SYSLIBROOT-IGNORED: /usr/lib
-CHECK-SYSLIBROOT-IGNORED: /usr/local/lib
-
RUN: mkdir -p %t.2/usr/lib
RUN: lld -flavor darwinnew -v -syslibroot %t -syslibroot %t.2 | FileCheck %s -check-prefix CHECK-SYSLIBROOT-MATRIX -DROOT=%t
@@ -37,19 +30,18 @@ CHECK-SYSLIBROOT-MATRIX: Library search paths:
CHECK-SYSLIBROOT-MATRIX: [[ROOT]]/usr/lib
CHECK-SYSLIBROOT-MATRIX: [[ROOT]].2/usr/lib
+RUN: lld -flavor darwinnew -v -syslibroot %t -syslibroot %t.2 -syslibroot / | FileCheck %s -check-prefix CHECK-SYSLIBROOT-IGNORED -DROOT=%t
+
+CHECK-SYSLIBROOT-IGNORED: Library search paths:
+CHECK-SYSLIBROOT-IGNORED-NOT: [[ROOT]]/usr/lib
+CHECK-SYSLIBROOT-IGNORED-NOT: [[ROOT]].2/usr/lib
+
RUN: mkdir -p %t/System/Library/Frameworks
RUN: lld -flavor darwinnew -v -syslibroot %t | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK -DROOT=%t
CHECK-SYSLIBROOT-FRAMEWORK: Framework search paths:
CHECK-SYSLIBROOT-FRAMEWORK: [[ROOT]]/System/Library/Frameworks
-# NOTE: the match here is fuzzy because the default search paths exist on Linux
-# and macOS, but not on Windows (that is we ignore `/var/empty`). This allows
-# us to run the test uniformly on all the platforms.
-RUN: lld -flavor darwinnew -v -syslibroot /var/empty -syslibroot / 2>&1 | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-IGNORED
-
-CHECK-SYSLIBROOT-FRAMEWORK-IGNORED: /System/Library/Framework
-
RUN: mkdir -p %t/Library/Frameworks
RUN: mkdir -p %t.2/Library/Frameworks
RUN: lld -flavor darwinnew -v -syslibroot %t -syslibroot %t.2 -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-MATRIX -DROOT=%t
@@ -57,3 +49,9 @@ RUN: lld -flavor darwinnew -v -syslibroot %t -syslibroot %t.2 -F /Library/Framew
CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: Framework search paths:
CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: [[ROOT]]/Library/Frameworks
CHECK-SYSLIBROOT-FRAMEWORK-MATRIX: [[ROOT]].2/Library/Frameworks
+
+RUN: lld -flavor darwinnew -v -syslibroot %t -syslibroot %t.2 -syslibroot / -F /Library/Frameworks | FileCheck %s -check-prefix CHECK-SYSLIBROOT-FRAMEWORK-IGNORED -DROOT=%t
+
+CHECK-SYSLIBROOT-FRAMEWORK-IGNORED: Framework search paths:
+CHECK-SYSLIBROOT-FRAMEWORK-IGNORED-NOT: [[ROOT]]/Library/Frameworks
+CHECK-SYSLIBROOT-FRAMEWORK-IGNORED-NOT: [[ROOT]].2/Library/Frameworks
More information about the llvm-branch-commits
mailing list