[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