Skip to content

Commit 43a2ec4

Browse files
authored
[dsymutil] Remove support for obfuscated bitcode (#85713)
Remove support for obfuscated bitcode in dsymutil and the DWARF linker. We no longer support bitcode submissions and the obfuscation support has been removed from the rest of the compiler. rdar://123863918
1 parent 31eaf86 commit 43a2ec4

30 files changed

+28
-555
lines changed

llvm/docs/CommandGuide/dsymutil.rst

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,6 @@ OPTIONS
140140
(in bytes) to the linked dSYM. The table is sorted by the output size listing
141141
the object files with the largest contribution first.
142142

143-
.. option:: --symbol-map <bcsymbolmap>
144-
145-
Update the existing dSYMs inplace using symbol map specified.
146-
147143
.. option:: -s, --symtab
148144

149145
Dumps the symbol table found in *executable* or object file(s) and exits.

llvm/include/llvm/CodeGen/NonRelocatableStringpool.h

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ class NonRelocatableStringpool {
2727
/// order.
2828
using MapTy = StringMap<DwarfStringPoolEntry, BumpPtrAllocator>;
2929

30-
NonRelocatableStringpool(
31-
std::function<StringRef(StringRef Input)> Translator = nullptr,
32-
bool PutEmptyString = false)
33-
: Translator(Translator) {
30+
NonRelocatableStringpool(bool PutEmptyString = false) {
3431
if (PutEmptyString)
3532
getEntry("");
3633
}
@@ -59,7 +56,6 @@ class NonRelocatableStringpool {
5956
MapTy Strings;
6057
uint64_t CurrentEndOffset = 0;
6158
unsigned NumEntries = 0;
62-
std::function<StringRef(StringRef Input)> Translator;
6359
};
6460

6561
/// Helper for making strong types.

llvm/include/llvm/DWARFLinker/Classic/DWARFStreamer.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,13 @@ class DwarfStreamer : public DwarfEmitter {
4545
public:
4646
DwarfStreamer(DWARFLinkerBase::OutputFileType OutFileType,
4747
raw_pwrite_stream &OutFile,
48-
DWARFLinkerBase::TranslatorFuncTy Translator,
4948
DWARFLinkerBase::MessageHandlerTy Warning)
50-
: OutFile(OutFile), OutFileType(OutFileType), Translator(Translator),
51-
WarningHandler(Warning) {}
49+
: OutFile(OutFile), OutFileType(OutFileType), WarningHandler(Warning) {}
5250
virtual ~DwarfStreamer() = default;
5351

5452
static Expected<std::unique_ptr<DwarfStreamer>> createStreamer(
5553
const Triple &TheTriple, DWARFLinkerBase::OutputFileType FileType,
56-
raw_pwrite_stream &OutFile, DWARFLinkerBase::TranslatorFuncTy Translator,
57-
DWARFLinkerBase::MessageHandlerTy Warning);
54+
raw_pwrite_stream &OutFile, DWARFLinkerBase::MessageHandlerTy Warning);
5855

5956
Error init(Triple TheTriple, StringRef Swift5ReflectionSegmentName);
6057

@@ -295,7 +292,6 @@ class DwarfStreamer : public DwarfEmitter {
295292
/// The output file we stream the linked Dwarf to.
296293
raw_pwrite_stream &OutFile;
297294
DWARFLinker::OutputFileType OutFileType = DWARFLinker::OutputFileType::Object;
298-
std::function<StringRef(StringRef Input)> Translator;
299295

300296
uint64_t RangesSectionSize = 0;
301297
uint64_t RngListsSectionSize = 0;

llvm/include/llvm/DWARFLinker/DWARFLinkerBase.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ class DWARFLinkerBase {
8282
std::function<void(const DWARFFile &File, llvm::StringRef Output)>;
8383
using ObjectPrefixMapTy = std::map<std::string, std::string>;
8484
using CompileUnitHandlerTy = function_ref<void(const DWARFUnit &Unit)>;
85-
using TranslatorFuncTy = std::function<StringRef(StringRef)>;
8685
using SwiftInterfacesMapTy = std::map<std::string, std::string>;
8786
/// Type of output file.
8887
enum class OutputFileType : uint8_t {

llvm/include/llvm/DWARFLinker/Parallel/DWARFLinker.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,7 @@ class DWARFLinker : public DWARFLinkerBase {
123123

124124
/// Creates dwarf linker instance.
125125
static std::unique_ptr<DWARFLinker>
126-
createLinker(MessageHandlerTy ErrorHandler, MessageHandlerTy WarningHandler,
127-
TranslatorFuncTy StringsTranslator = nullptr);
126+
createLinker(MessageHandlerTy ErrorHandler, MessageHandlerTy WarningHandler);
128127

129128
/// Set output DWARF handler. Result of linking DWARF is set of sections
130129
/// containing final debug info. DWARFLinkerBase::link() pass generated

llvm/lib/CodeGen/NonRelocatableStringpool.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
namespace llvm {
1313

1414
DwarfStringPoolEntryRef NonRelocatableStringpool::getEntry(StringRef S) {
15-
if (Translator)
16-
S = Translator(S);
1715
auto I = Strings.insert({S, DwarfStringPoolEntry()});
1816
auto &Entry = I.first->second;
1917
if (I.second || !Entry.isIndexed()) {
@@ -28,9 +26,6 @@ DwarfStringPoolEntryRef NonRelocatableStringpool::getEntry(StringRef S) {
2826
StringRef NonRelocatableStringpool::internString(StringRef S) {
2927
DwarfStringPoolEntry Entry{nullptr, 0, DwarfStringPoolEntry::NotIndexed};
3028

31-
if (Translator)
32-
S = Translator(S);
33-
3429
auto InsertResult = Strings.insert({S, Entry});
3530
return InsertResult.first->getKey();
3631
}

llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2701,8 +2701,8 @@ Error DWARFLinker::link() {
27012701
// This Dwarf string pool which is used for emission. It must be used
27022702
// serially as the order of calling getStringOffset matters for
27032703
// reproducibility.
2704-
OffsetsStringPool DebugStrPool(StringsTranslator, true);
2705-
OffsetsStringPool DebugLineStrPool(StringsTranslator, false);
2704+
OffsetsStringPool DebugStrPool(true);
2705+
OffsetsStringPool DebugLineStrPool(false);
27062706
DebugDieValuePool StringOffsetPool;
27072707

27082708
// ODR Contexts for the optimize.

llvm/lib/DWARFLinker/Classic/DWARFStreamer.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@ using namespace dwarf_linker::classic;
3232

3333
Expected<std::unique_ptr<DwarfStreamer>> DwarfStreamer::createStreamer(
3434
const Triple &TheTriple, DWARFLinkerBase::OutputFileType FileType,
35-
raw_pwrite_stream &OutFile, DWARFLinkerBase::TranslatorFuncTy Translator,
36-
DWARFLinkerBase::MessageHandlerTy Warning) {
35+
raw_pwrite_stream &OutFile, DWARFLinkerBase::MessageHandlerTy Warning) {
3736
std::unique_ptr<DwarfStreamer> Streamer =
38-
std::make_unique<DwarfStreamer>(FileType, OutFile, Translator, Warning);
37+
std::make_unique<DwarfStreamer>(FileType, OutFile, Warning);
3938
if (Error Err = Streamer->init(TheTriple, "__DWARF"))
4039
return std::move(Err);
4140

@@ -977,11 +976,10 @@ void DwarfStreamer::emitLineTableString(const DWARFDebugLine::Prologue &P,
977976

978977
switch (String.getForm()) {
979978
case dwarf::DW_FORM_string: {
980-
StringRef TranslatedString =
981-
(Translator) ? Translator(*StringVal) : *StringVal;
982-
Asm->OutStreamer->emitBytes(TranslatedString.data());
979+
StringRef Str = *StringVal;
980+
Asm->OutStreamer->emitBytes(Str.data());
983981
Asm->emitInt8(0);
984-
LineSectionSize += TranslatedString.size() + 1;
982+
LineSectionSize += Str.size() + 1;
985983
} break;
986984
case dwarf::DW_FORM_strp:
987985
case dwarf::DW_FORM_line_strp: {

llvm/lib/DWARFLinker/Parallel/DWARFLinker.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ using namespace dwarf_linker::parallel;
1515

1616
std::unique_ptr<DWARFLinker>
1717
DWARFLinker::createLinker(MessageHandlerTy ErrorHandler,
18-
MessageHandlerTy WarningHandler,
19-
TranslatorFuncTy StringsTranslator) {
20-
return std::make_unique<DWARFLinkerImpl>(ErrorHandler, WarningHandler,
21-
StringsTranslator);
18+
MessageHandlerTy WarningHandler) {
19+
return std::make_unique<DWARFLinkerImpl>(ErrorHandler, WarningHandler);
2220
}

llvm/lib/DWARFLinker/Parallel/DWARFLinkerGlobalData.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ class DWARFDie;
2121
namespace dwarf_linker {
2222
namespace parallel {
2323

24-
using TranslatorFuncTy = std::function<StringRef(StringRef)>;
2524
using MessageHandlerTy = std::function<void(
2625
const Twine &Warning, StringRef Context, const DWARFDie *DIE)>;
2726

@@ -95,19 +94,6 @@ class LinkingGlobalData {
9594
/// Returns global string pool.
9695
StringPool &getStringPool() { return Strings; }
9796

98-
/// Set translation function.
99-
void setTranslator(TranslatorFuncTy Translator) {
100-
this->Translator = Translator;
101-
}
102-
103-
/// Translate specified string.
104-
StringRef translateString(StringRef String) {
105-
if (Translator)
106-
return Translator(String);
107-
108-
return String;
109-
}
110-
11197
/// Returns linking options.
11298
const DWARFLinkerOptions &getOptions() const { return Options; }
11399

@@ -161,7 +147,6 @@ class LinkingGlobalData {
161147
protected:
162148
llvm::parallel::PerThreadBumpPtrAllocator Allocator;
163149
StringPool Strings;
164-
TranslatorFuncTy Translator;
165150
DWARFLinkerOptions Options;
166151
MessageHandlerTy WarningHandler;
167152
MessageHandlerTy ErrorHandler;

llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,9 @@ using namespace dwarf_linker;
2020
using namespace dwarf_linker::parallel;
2121

2222
DWARFLinkerImpl::DWARFLinkerImpl(MessageHandlerTy ErrorHandler,
23-
MessageHandlerTy WarningHandler,
24-
TranslatorFuncTy StringsTranslator)
23+
MessageHandlerTy WarningHandler)
2524
: UniqueUnitID(0), DebugStrStrings(GlobalData),
2625
DebugLineStrStrings(GlobalData), CommonSections(GlobalData) {
27-
GlobalData.setTranslator(StringsTranslator);
2826
GlobalData.setErrorHandler(ErrorHandler);
2927
GlobalData.setWarningHandler(WarningHandler);
3028
}

llvm/lib/DWARFLinker/Parallel/DWARFLinkerImpl.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ namespace parallel {
2626
class DWARFLinkerImpl : public DWARFLinker {
2727
public:
2828
DWARFLinkerImpl(MessageHandlerTy ErrorHandler,
29-
MessageHandlerTy WarningHandler,
30-
TranslatorFuncTy StringsTranslator);
29+
MessageHandlerTy WarningHandler);
3130

3231
/// Add object file to be linked. Pre-load compile unit die. Call
3332
/// \p OnCUDieLoaded for each compile unit die. If specified \p File

llvm/lib/DWARFLinker/Parallel/OutputSections.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ struct SectionDescriptor : SectionDescriptorBase {
253253

254254
/// Emit specified inplace string value into the current section contents.
255255
void emitInplaceString(StringRef String) {
256-
OS << GlobalData.translateString(String);
256+
OS << String;
257257
emitIntVal(0, 1);
258258
}
259259

llvm/lib/DWARFLinker/Parallel/StringEntryToDwarfStringPoolEntryMap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class StringEntryToDwarfStringPoolEntryMap {
3333
DwarfStringPoolEntryWithExtString *DataPtr =
3434
GlobalData.getAllocator()
3535
.Allocate<DwarfStringPoolEntryWithExtString>();
36-
DataPtr->String = GlobalData.translateString(String->getKey());
36+
DataPtr->String = String->getKey();
3737
DataPtr->Index = DwarfStringPoolEntry::NotIndexed;
3838
DataPtr->Offset = 0;
3939
DataPtr->Symbol = nullptr;

0 commit comments

Comments
 (0)