[PATCH] D103428: [lld/mac] Make -t work correctly with -flat_namespace
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 1 16:24:54 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rG222a88a24371: [lld/mac] Make -t work correctly with -flat_namespace (authored by thakis).
Herald added a project: LLVM.
Changed prior to commit:
https://reviews.llvm.org/D103428?vs=349068&id=349128#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D103428/new/
https://reviews.llvm.org/D103428
Files:
lld/MachO/Driver.cpp
lld/MachO/DriverUtils.cpp
lld/test/MachO/flat-namespace.s
Index: lld/test/MachO/flat-namespace.s
===================================================================
--- lld/test/MachO/flat-namespace.s
+++ lld/test/MachO/flat-namespace.s
@@ -14,7 +14,15 @@
# With flat_namespace, the linker automatically looks in foo.dylib and
# bar.dylib too, but it doesn't add a LC_LOAD_DYLIB for it.
-# RUN: %lld -flat_namespace -lSystem %t/main.o %t/baz.dylib -o %t/out
+# RUN: %lld -flat_namespace -lSystem %t/main.o %t/baz.dylib -o %t/out -t | \
+# RUN: FileCheck --check-prefix=T %s
+## FIXME: The `bar.dylib` line should use `T-NEXT`, but on Windows we load
+## libSystem.tbd with different slash styles and end up loading it twice
+## for that reason.
+# T: main.o
+# T-NEXT: baz.dylib
+# T: bar.dylib
+# T-NEXT: foo.dylib
# RUN: llvm-objdump --macho --all-headers %t/out \
# RUN: | FileCheck --check-prefix=HEADERBITS %s
# RUN: llvm-objdump --macho --bind --lazy-bind --weak-bind %t/out \
Index: lld/MachO/DriverUtils.cpp
===================================================================
--- lld/MachO/DriverUtils.cpp
+++ lld/MachO/DriverUtils.cpp
@@ -214,6 +214,8 @@
return nullptr;
}
file = make<DylibFile>(**result, umbrella, isBundleLoader);
+ if (config->printEachFile)
+ message(toString(file));
// parseReexports() can recursively call loadDylib(). That's fine since
// we wrote DylibFile we just loaded to the loadDylib cache via the `file`
@@ -229,6 +231,8 @@
magic == file_magic::macho_executable ||
magic == file_magic::macho_bundle);
file = make<DylibFile>(mbref, umbrella, isBundleLoader);
+ if (config->printEachFile)
+ message(toString(file));
// parseLoadCommands() can also recursively call loadDylib(). See comment
// in previous block for why this means we must copy `file` here.
Index: lld/MachO/Driver.cpp
===================================================================
--- lld/MachO/Driver.cpp
+++ lld/MachO/Driver.cpp
@@ -316,7 +316,8 @@
if (newFile) {
// printArchiveMemberLoad() prints both .a and .o names, so no need to
// print the .a name here.
- if (config->printEachFile && magic != file_magic::archive)
+ if (config->printEachFile && magic != file_magic::archive &&
+ !isa<DylibFile>(newFile))
message(toString(newFile));
inputFiles.insert(newFile);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D103428.349128.patch
Type: text/x-patch
Size: 2376 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210601/261f32dd/attachment.bin>
More information about the llvm-commits
mailing list