[PATCH] D102154: [lld-macho] Fix order file arch filtering
Jez Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 10 01:31:38 PDT 2021
int3 created this revision.
int3 added a reviewer: lld-macho.
Herald added a project: lld-macho.
int3 requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
We had a hardcoded check and a stale TODO, written back when we only had
support for one architecture.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D102154
Files:
lld/MachO/Driver.cpp
lld/MachO/InputFiles.cpp
lld/MachO/Target.h
lld/test/MachO/order-file.s
Index: lld/test/MachO/order-file.s
===================================================================
--- lld/test/MachO/order-file.s
+++ lld/test/MachO/order-file.s
@@ -127,7 +127,7 @@
_main
#--- ord-arch-nomatch
-ppc:-[Foo doFoo:andBar:]
+arm64:-[Foo doFoo:andBar:]
_main
-[Foo doFoo:andBar:]
Index: lld/MachO/Target.h
===================================================================
--- lld/MachO/Target.h
+++ lld/MachO/Target.h
@@ -68,7 +68,7 @@
}
uint32_t magic;
- uint32_t cpuType;
+ llvm::MachO::CPUType cpuType;
uint32_t cpuSubtype;
uint64_t pageZeroSize;
Index: lld/MachO/InputFiles.cpp
===================================================================
--- lld/MachO/InputFiles.cpp
+++ lld/MachO/InputFiles.cpp
@@ -222,7 +222,7 @@
return None;
}
- if (read32be(&arch[i].cputype) != target->cpuType ||
+ if (read32be(&arch[i].cputype) != static_cast<uint32_t>(target->cpuType) ||
read32be(&arch[i].cpusubtype) != target->cpuSubtype)
continue;
Index: lld/MachO/Driver.cpp
===================================================================
--- lld/MachO/Driver.cpp
+++ lld/MachO/Driver.cpp
@@ -421,13 +421,13 @@
.StartsWith("ppc:", CPU_TYPE_POWERPC)
.StartsWith("ppc64:", CPU_TYPE_POWERPC64)
.Default(CPU_TYPE_ANY);
+
+ if (cpuType != CPU_TYPE_ANY && cpuType != target->cpuType)
+ continue;
+
// Drop the CPU type as well as the colon
if (cpuType != CPU_TYPE_ANY)
line = line.drop_until([](char c) { return c == ':'; }).drop_front();
- // TODO: Update when we extend support for other CPUs
- if (cpuType != CPU_TYPE_ANY && cpuType != CPU_TYPE_X86_64 &&
- cpuType != CPU_TYPE_ARM64)
- continue;
constexpr std::array<StringRef, 2> fileEnds = {".o:", ".o):"};
for (StringRef fileEnd : fileEnds) {
@@ -869,7 +869,6 @@
errorHandler().logName = args::getFilenameWithoutExe(argsArr[0]);
stderrOS.enable_colors(stderrOS.has_colors());
- // TODO: Set up error handler properly, e.g. the errorLimitExceededMsg
MachOOptTable parser;
InputArgList args = parser.parse(argsArr.slice(1));
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D102154.344002.patch
Type: text/x-patch
Size: 2204 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210510/6d2413a6/attachment.bin>
More information about the llvm-commits
mailing list