[PATCH] D106766: [lld/mac] Move output segment rename logic into OutputSegment
Nico Weber via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 25 15:21:57 PDT 2021
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGafdeb432f0a1: [lld/mac] Move output segment rename logic into OutputSegment (authored by thakis).
Herald added a project: LLVM.
Changed prior to commit:
https://reviews.llvm.org/D106766?vs=361500&id=361551#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D106766/new/
https://reviews.llvm.org/D106766
Files:
lld/MachO/ConcatOutputSection.cpp
lld/MachO/OutputSegment.cpp
lld/test/MachO/rename.s
Index: lld/test/MachO/rename.s
===================================================================
--- lld/test/MachO/rename.s
+++ lld/test/MachO/rename.s
@@ -71,8 +71,7 @@
# SECTSEGYES-NEXT: segname __TEXT
# SECTSEGYES: Section
# SECTSEGYES-NEXT: sectname __to_sect
-# SECTSEGYES-NEXT: segname __TO_SECT
-## FIXME: ^ This should use __SEG like ld64 does.
+# SECTSEGYES-NEXT: segname __SEG
## ...but rename_segment has no effect if it doesn't match the name after
## rename_section is applied.
# RUN: %lld -dylib \
Index: lld/MachO/OutputSegment.cpp
===================================================================
--- lld/MachO/OutputSegment.cpp
+++ lld/MachO/OutputSegment.cpp
@@ -153,7 +153,16 @@
static DenseMap<StringRef, OutputSegment *> nameToOutputSegment;
std::vector<OutputSegment *> macho::outputSegments;
+static StringRef maybeRenameSegment(StringRef name) {
+ auto newName = config->segmentRenameMap.find(name);
+ if (newName != config->segmentRenameMap.end())
+ return newName->second;
+ return name;
+}
+
OutputSegment *macho::getOrCreateOutputSegment(StringRef name) {
+ name = maybeRenameSegment(name);
+
OutputSegment *&segRef = nameToOutputSegment[name];
if (segRef)
return segRef;
Index: lld/MachO/ConcatOutputSection.cpp
===================================================================
--- lld/MachO/ConcatOutputSection.cpp
+++ lld/MachO/ConcatOutputSection.cpp
@@ -339,7 +339,7 @@
void ConcatOutputSection::finalizeFlags(InputSection *input) {
switch (sectionType(input->getFlags())) {
default /*type-unspec'ed*/:
- // FIXME: Add additional logics here when supporting emitting obj files.
+ // FIXME: Add additional logic here when supporting emitting obj files.
break;
case S_4BYTE_LITERALS:
case S_8BYTE_LITERALS:
@@ -373,8 +373,5 @@
auto newNames = config->sectionRenameMap.find(key);
if (newNames != config->sectionRenameMap.end())
return newNames->second;
- auto newName = config->segmentRenameMap.find(key.first);
- if (newName != config->segmentRenameMap.end())
- return std::make_pair(newName->second, key.second);
return key;
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D106766.361551.patch
Type: text/x-patch
Size: 2155 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210725/833b57b7/attachment.bin>
More information about the llvm-commits
mailing list