From d96389666d37d0bdd898e2f1812e89b277a3fb74 Mon Sep 17 00:00:00 2001 From: Jan Patrick Lehr Date: Tue, 8 Apr 2025 17:52:11 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"[dsymutil]=20Avoid=20copying=20binary?= =?UTF-8?q?=20swiftmodules=20built=20from=20textual=20(#134=E2=80=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 561506144531cf0a760bb437fd74c683931c60ae. --- lldb/source/Core/Statusline.cpp | 15 +- .../tools/dsymutil/Inputs/Binary.swiftmodule | Bin 17192 -> 0 bytes .../dsymutil/Inputs/FromInterface.swiftmodule | Bin 17028 -> 0 bytes llvm/test/tools/dsymutil/swiftmodule.test | 29 --- .../dsymutil/yaml-object-address-rewrite.test | 3 - llvm/tools/dsymutil/CMakeLists.txt | 1 - llvm/tools/dsymutil/DebugMap.cpp | 8 +- llvm/tools/dsymutil/DwarfLinkerForBinary.cpp | 16 -- llvm/tools/dsymutil/RelocationMap.h | 1 - llvm/tools/dsymutil/SwiftModule.cpp | 192 ------------------ llvm/tools/dsymutil/SwiftModule.h | 15 -- 11 files changed, 8 insertions(+), 272 deletions(-) delete mode 100644 llvm/test/tools/dsymutil/Inputs/Binary.swiftmodule delete mode 100644 llvm/test/tools/dsymutil/Inputs/FromInterface.swiftmodule delete mode 100644 llvm/test/tools/dsymutil/swiftmodule.test delete mode 100644 llvm/tools/dsymutil/SwiftModule.cpp delete mode 100644 llvm/tools/dsymutil/SwiftModule.h diff --git a/lldb/source/Core/Statusline.cpp b/lldb/source/Core/Statusline.cpp index a2ecebbefbfb1..b7650503e16bc 100644 --- a/lldb/source/Core/Statusline.cpp +++ b/lldb/source/Core/Statusline.cpp @@ -12,7 +12,6 @@ #include "lldb/Host/StreamFile.h" #include "lldb/Interpreter/CommandInterpreter.h" #include "lldb/Symbol/SymbolContext.h" -#include "lldb/Target/Process.h" #include "lldb/Target/StackFrame.h" #include "lldb/Utility/AnsiTerminal.h" #include "lldb/Utility/StreamString.h" @@ -127,7 +126,9 @@ void Statusline::Redraw(bool update) { return; } - ExecutionContext exe_ctx = m_debugger.GetSelectedExecutionContext(); + StreamString stream; + ExecutionContext exe_ctx = + m_debugger.GetCommandInterpreter().GetExecutionContext(); // For colors and progress events, the format entity needs access to the // debugger, which requires a target in the execution context. @@ -135,15 +136,9 @@ void Statusline::Redraw(bool update) { exe_ctx.SetTargetPtr(&m_debugger.GetSelectedOrDummyTarget()); SymbolContext symbol_ctx; - if (ProcessSP process_sp = exe_ctx.GetProcessSP()) { - Process::StopLocker stop_locker; - if (stop_locker.TryLock(&process_sp->GetRunLock())) { - if (auto frame_sp = exe_ctx.GetFrameSP()) - symbol_ctx = frame_sp->GetSymbolContext(eSymbolContextEverything); - } - } + if (auto frame_sp = exe_ctx.GetFrameSP()) + symbol_ctx = frame_sp->GetSymbolContext(eSymbolContextEverything); - StreamString stream; if (auto *format = m_debugger.GetStatuslineFormat()) FormatEntity::Format(*format, stream, &symbol_ctx, &exe_ctx, nullptr, nullptr, false, false); diff --git a/llvm/test/tools/dsymutil/Inputs/Binary.swiftmodule b/llvm/test/tools/dsymutil/Inputs/Binary.swiftmodule deleted file mode 100644 index 7ba817b22b707a23387b728923ae764699578561..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17192 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 Vu73Nrt=F_KF#l=&FeUr*{{U!EIS>E< diff --git a/llvm/test/tools/dsymutil/Inputs/FromInterface.swiftmodule b/llvm/test/tools/dsymutil/Inputs/FromInterface.swiftmodule deleted file mode 100644 index 2873ee93e137a7651f01638440c22ee3c3b4d558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17028 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 LI.swift -# echo ''>B.swift -# echo 'import I'>main.swift -# xcrun swiftc -emit-module-interface-path I.swiftinterface -enable-library-evolution I.swift -# xcrun swiftc -emit-module-path B.swiftmodule B.swift -Xfrontend -no-serialize-debugging-options -# xcrun swiftc -explicit-module-build main.swift -I. -module-cache-path cache -g -Xfrontend -no-serialize-debugging-options -# output is "B.swiftmodule" and "cache/I*.swiftmodule" -# -# CHECK-NOT: Skipping compiled textual Swift interface: {{.*}}/Inputs/Binary.swiftmodule -# CHECK: Skipping compiled textual Swift interface: {{.*}}/Inputs/FromInterface.swiftmodule - -# ---- -triple: 'arm64-apple-darwin' -objects: - - filename: '/Inputs/Binary.swiftmodule' - timestamp: 0 - type: 50 - symbols: [] - - filename: '/Inputs/FromInterface.swiftmodule' - timestamp: 0 - type: 50 - symbols: [] -... diff --git a/llvm/test/tools/dsymutil/yaml-object-address-rewrite.test b/llvm/test/tools/dsymutil/yaml-object-address-rewrite.test index 74e8c1e7ae777..dfa0f285c5ce5 100644 --- a/llvm/test/tools/dsymutil/yaml-object-address-rewrite.test +++ b/llvm/test/tools/dsymutil/yaml-object-address-rewrite.test @@ -12,12 +12,10 @@ # CHECK-NEXT: objects: # CHECK-NEXT: filename:{{.*}}/Inputs/basic1.macho.x86_64.o # CHECK-NEXT: timestamp: 0 -# CHECK-NEXT: type: 102 # CHECK-NEXT: symbols: # CHECK-NEXT: sym: _main, objAddr: 0x0, binAddr: 0x100000EA0, size: 0x24 # CHECK-NEXT: filename:{{.*}}/Inputs/./libbasic.a(basic2.macho.x86_64.o)' # CHECK-NEXT: timestamp: 0 -# CHECK-NEXT: type: 102 # CHECK-NEXT: symbols: # CHECK-DAG: sym: _foo, objAddr: 0x20, binAddr: 0x100000ED0, size: 0x50 # CHECK-DAG: sym: _private_int, objAddr: 0x560, binAddr: 0x100001004, size: 0x0 @@ -26,7 +24,6 @@ # CHECK-NOT: { sym: # CHECK-NEXT: filename:{{.*}}/Inputs/./libbasic.a(basic3.macho.x86_64.o)' # CHECK-NEXT: timestamp: 0 -# CHECK-NEXT: type: 102 # CHECK-NEXT: symbols: # CHECK-DAG: sym: _val, binAddr: 0x100001008, size: 0x0 # CHECK-DAG: sym: _bar, objAddr: 0x20, binAddr: 0x100000F40, size: 0x50 diff --git a/llvm/tools/dsymutil/CMakeLists.txt b/llvm/tools/dsymutil/CMakeLists.txt index f88b1d0b20cef..efe28bda68ebf 100644 --- a/llvm/tools/dsymutil/CMakeLists.txt +++ b/llvm/tools/dsymutil/CMakeLists.txt @@ -32,7 +32,6 @@ add_llvm_tool(dsymutil MachOUtils.cpp Reproducer.cpp RelocationMap.cpp - SwiftModule.cpp DEPENDS intrinsics_gen diff --git a/llvm/tools/dsymutil/DebugMap.cpp b/llvm/tools/dsymutil/DebugMap.cpp index f1cd7e402f28d..b38d502dda7c9 100644 --- a/llvm/tools/dsymutil/DebugMap.cpp +++ b/llvm/tools/dsymutil/DebugMap.cpp @@ -161,13 +161,12 @@ namespace yaml { // Normalize/Denormalize between YAML and a DebugMapObject. struct MappingTraits::YamlDMO { - YamlDMO(IO &io) {} + YamlDMO(IO &io) { Timestamp = 0; } YamlDMO(IO &io, dsymutil::DebugMapObject &Obj); dsymutil::DebugMapObject denormalize(IO &IO); std::string Filename; - int64_t Timestamp = 0; - uint8_t Type = MachO::N_OSO; + int64_t Timestamp; std::vector Entries; }; @@ -184,7 +183,6 @@ void MappingTraits::mapping( MappingNormalization Norm(io, DMO); io.mapRequired("filename", Norm->Filename); io.mapOptional("timestamp", Norm->Timestamp); - io.mapOptional("type", Norm->Type); io.mapRequired("symbols", Norm->Entries); } @@ -238,7 +236,6 @@ MappingTraits::YamlDMO::YamlDMO( IO &io, dsymutil::DebugMapObject &Obj) { Filename = Obj.Filename; Timestamp = sys::toTimeT(Obj.getTimestamp()); - Type = Obj.getType(); Entries.reserve(Obj.Symbols.size()); for (auto &Entry : Obj.Symbols) Entries.push_back( @@ -289,6 +286,7 @@ MappingTraits::YamlDMO::denormalize(IO &IO) { } } + uint8_t Type = MachO::N_OSO; if (Path.ends_with(".dylib")) { // FIXME: find a more resilient way Type = MachO::N_LIB; diff --git a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp index c8fa4dbeffb9e..f6a35708dc076 100644 --- a/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp +++ b/llvm/tools/dsymutil/DwarfLinkerForBinary.cpp @@ -10,7 +10,6 @@ #include "BinaryHolder.h" #include "DebugMap.h" #include "MachOUtils.h" -#include "SwiftModule.h" #include "dsymutil.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" @@ -784,21 +783,6 @@ bool DwarfLinkerForBinary::linkImpl( reportWarning("Could not open '" + File + "'"); continue; } - auto FromInterfaceOrErr = - IsBuiltFromSwiftInterface((*ErrorOrMem)->getBuffer()); - if (!FromInterfaceOrErr) { - reportWarning("Could not parse binary Swift module: " + - toString(FromInterfaceOrErr.takeError()), - Obj->getObjectFilename()); - // Only skip swiftmodules that could be parsed and are - // positively identified as textual. - } else if (*FromInterfaceOrErr) { - if (Options.Verbose) - outs() << "Skipping compiled textual Swift interface: " - << Obj->getObjectFilename() << "\n"; - continue; - } - sys::fs::file_status Stat; if (auto Err = sys::fs::status(File, Stat)) { reportWarning(Err.message()); diff --git a/llvm/tools/dsymutil/RelocationMap.h b/llvm/tools/dsymutil/RelocationMap.h index 5a804cd141c38..3d851acf2b892 100644 --- a/llvm/tools/dsymutil/RelocationMap.h +++ b/llvm/tools/dsymutil/RelocationMap.h @@ -37,7 +37,6 @@ struct SymbolMapping { std::optional ObjectAddress; yaml::Hex64 BinaryAddress; yaml::Hex32 Size; - yaml::Hex8 Type; SymbolMapping(std::optional ObjectAddr, uint64_t BinaryAddress, uint32_t Size) diff --git a/llvm/tools/dsymutil/SwiftModule.cpp b/llvm/tools/dsymutil/SwiftModule.cpp deleted file mode 100644 index 7b21f30237e4e..0000000000000 --- a/llvm/tools/dsymutil/SwiftModule.cpp +++ /dev/null @@ -1,192 +0,0 @@ -//===- tools/dsymutil/SwiftModule.cpp -------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "llvm/Bitcode/BitcodeReader.h" -#include "llvm/Bitcode/LLVMBitCodes.h" -#include "llvm/Bitstream/BitCodes.h" -#include "llvm/Bitstream/BitstreamReader.h" - -namespace { -// Copied from swift/lib/Serialization/ModuleFormat.h -constexpr unsigned char SWIFTMODULE_SIGNATURE[] = {0xE2, 0x9C, 0xA8, 0x0E}; -constexpr uint16_t expectedMajorVersion = 0; -constexpr unsigned MODULE_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID; -constexpr unsigned CONTROL_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID + 1; -constexpr unsigned METADATA = 1; -constexpr unsigned OPTIONS_BLOCK_ID = llvm::bitc::FIRST_APPLICATION_BLOCKID + 8; -constexpr unsigned IS_BUILT_FROM_INTERFACE = 11; - -llvm::Error checkModuleSignature(llvm::BitstreamCursor &cursor, - llvm::ArrayRef signature) { - for (unsigned char byte : signature) { - if (cursor.AtEndOfStream()) - return llvm::createStringError("malformed bitstream"); - llvm::Expected maybeRead = - cursor.Read(8); - if (!maybeRead) - return maybeRead.takeError(); - if (maybeRead.get() != byte) - return llvm::createStringError("malformed bitstream"); - } - return llvm::Error::success(); -} - -llvm::Error enterTopLevelModuleBlock(llvm::BitstreamCursor &cursor, - unsigned ID) { - llvm::Expected maybeNext = cursor.advance(); - if (!maybeNext) - return maybeNext.takeError(); - llvm::BitstreamEntry next = maybeNext.get(); - - if (next.Kind != llvm::BitstreamEntry::SubBlock) - return llvm::createStringError("malformed bitstream"); - - if (next.ID == llvm::bitc::BLOCKINFO_BLOCK_ID) { - if (cursor.SkipBlock()) - return llvm::createStringError("malformed bitstream"); - return enterTopLevelModuleBlock(cursor, ID); - } - - if (next.ID != ID) - return llvm::createStringError("malformed bitstream"); - - if (llvm::Error Err = cursor.EnterSubBlock(ID)) - return Err; - - return llvm::Error::success(); -} - -llvm::Expected -readOptionsBlock(llvm::BitstreamCursor &cursor, - llvm::SmallVectorImpl &scratch) { - bool is_built_from_interface = false; - while (!cursor.AtEndOfStream()) { - llvm::Expected maybeEntry = cursor.advance(); - if (!maybeEntry) - return maybeEntry.takeError(); - - llvm::BitstreamEntry entry = maybeEntry.get(); - if (entry.Kind == llvm::BitstreamEntry::EndBlock) - break; - - if (entry.Kind == llvm::BitstreamEntry::Error) - return llvm::createStringError("malformed bitstream"); - - if (entry.Kind == llvm::BitstreamEntry::SubBlock) { - if (cursor.SkipBlock()) - return llvm::createStringError("malformed bitstream"); - continue; - } - - scratch.clear(); - llvm::StringRef blobData; - llvm::Expected maybeKind = - cursor.readRecord(entry.ID, scratch, &blobData); - if (!maybeKind) - return maybeKind.takeError(); - unsigned kind = maybeKind.get(); - switch (kind) { - case IS_BUILT_FROM_INTERFACE: - is_built_from_interface = true; - continue; - default: - continue; - } - } - return is_built_from_interface; -} - -llvm::Expected -parseControlBlock(llvm::BitstreamCursor &cursor, - llvm::SmallVectorImpl &scratch) { - // The control block is malformed until we've at least read a major version - // number. - bool versionSeen = false; - - while (!cursor.AtEndOfStream()) { - llvm::Expected maybeEntry = cursor.advance(); - if (!maybeEntry) - return maybeEntry.takeError(); - - llvm::BitstreamEntry entry = maybeEntry.get(); - if (entry.Kind == llvm::BitstreamEntry::EndBlock) - break; - - if (entry.Kind == llvm::BitstreamEntry::Error) - return llvm::createStringError("malformed bitstream"); - - if (entry.Kind == llvm::BitstreamEntry::SubBlock) { - if (entry.ID == OPTIONS_BLOCK_ID) { - if (llvm::Error Err = cursor.EnterSubBlock(OPTIONS_BLOCK_ID)) - return Err; - - return readOptionsBlock(cursor, scratch); - } else { - // Unknown metadata sub-block, possibly for use by a future version of - // the module format. - if (cursor.SkipBlock()) - return llvm::createStringError("malformed bitstream"); - } - continue; - } - - scratch.clear(); - llvm::StringRef blobData; - llvm::Expected maybeKind = - cursor.readRecord(entry.ID, scratch, &blobData); - if (!maybeKind) - return maybeKind.takeError(); - - unsigned kind = maybeKind.get(); - if (kind == METADATA) { - if (versionSeen) - return llvm::createStringError("multiple metadata blocks"); - - uint16_t versionMajor = scratch[0]; - if (versionMajor != expectedMajorVersion) - return llvm::createStringError("unsupported module version"); - - versionSeen = true; - } - } - return llvm::createStringError("could not find control block"); -} - -} // namespace - -llvm::Expected IsBuiltFromSwiftInterface(llvm::StringRef data) { - llvm::BitstreamCursor cursor(data); - if (llvm::Error Err = checkModuleSignature(cursor, SWIFTMODULE_SIGNATURE)) - return llvm::joinErrors( - llvm::createStringError("could not check signature"), std::move(Err)); - if (llvm::Error Err = enterTopLevelModuleBlock(cursor, MODULE_BLOCK_ID)) - return llvm::joinErrors( - llvm::createStringError("could not enter top level block"), - std::move(Err)); - - llvm::BitstreamEntry topLevelEntry; - llvm::SmallVector scratch; - - while (!cursor.AtEndOfStream()) { - llvm::Expected maybeEntry = - cursor.advance(llvm::BitstreamCursor::AF_DontPopBlockAtEnd); - if (!maybeEntry) - return maybeEntry.takeError(); - - topLevelEntry = maybeEntry.get(); - if (topLevelEntry.Kind != llvm::BitstreamEntry::SubBlock) - break; - - if (topLevelEntry.ID == CONTROL_BLOCK_ID) { - if (llvm::Error Err = cursor.EnterSubBlock(CONTROL_BLOCK_ID)) - return Err; - return parseControlBlock(cursor, scratch); - } - } - return llvm::createStringError("no control block found"); -} diff --git a/llvm/tools/dsymutil/SwiftModule.h b/llvm/tools/dsymutil/SwiftModule.h deleted file mode 100644 index 9a272fd6fed36..0000000000000 --- a/llvm/tools/dsymutil/SwiftModule.h +++ /dev/null @@ -1,15 +0,0 @@ -//===- tools/dsymutil/SwiftModule.h ---------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -#ifndef LLVM_TOOLS_DSYMUTIL_SWIFTMODULE_H -#define LLVM_TOOLS_DSYMUTIL_SWIFTMODULE_H - -#include "llvm/Support/Error.h" - -llvm::Expected IsBuiltFromSwiftInterface(llvm::StringRef data); - -#endif