107 lines
3.5 KiB
Diff
107 lines
3.5 KiB
Diff
From 7559a2927de29db9765d3ab744490b1cf4500d1f Mon Sep 17 00:00:00 2001
|
|
From: Jon Turney <jon.turney@dronecode.org.uk>
|
|
Date: Fri, 17 Nov 2017 17:14:32 +0000
|
|
Subject: [PATCH 19/19] Disable DwpReader for MinGW
|
|
|
|
elf_reader.cc uses mmap(), which isn't available
|
|
|
|
Perhaps we could change to using MmapWrapper(), which I've already fixed for
|
|
Windows, but this code isn't doing anything for us anyhow
|
|
|
|
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
|
|
---
|
|
Makefile.am | 1 -
|
|
src/common/dwarf/dwarf2reader.cc | 12 +++++++++++-
|
|
src/common/dwarf/dwarf2reader.h | 2 ++
|
|
3 files changed, 13 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index b6fd0682..703cba7a 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -810,7 +810,6 @@ src_tools_windows_dump_syms_dwarf_dump_syms_SOURCES = \
|
|
src/common/dwarf/bytereader.cc \
|
|
src/common/dwarf/dwarf2diehandler.cc \
|
|
src/common/dwarf/dwarf2reader.cc \
|
|
- src/common/dwarf/elf_reader.cc \
|
|
src/common/pecoff/dump_symbols.cc \
|
|
src/common/pecoff/pecoffutils.cc \
|
|
src/common/pecoff/pecoff_file_id.cc \
|
|
diff --git a/src/common/dwarf/dwarf2reader.cc b/src/common/dwarf/dwarf2reader.cc
|
|
index 27f3a83e..a6914a64 100644
|
|
--- a/src/common/dwarf/dwarf2reader.cc
|
|
+++ b/src/common/dwarf/dwarf2reader.cc
|
|
@@ -64,7 +64,11 @@ CompilationUnit::CompilationUnit(const string& path,
|
|
is_split_dwarf_(false), dwo_id_(0), dwo_name_(),
|
|
skeleton_dwo_id_(0), ranges_base_(0), addr_base_(0),
|
|
have_checked_for_dwp_(false), dwp_path_(),
|
|
- dwp_byte_reader_(), dwp_reader_() {}
|
|
+ dwp_byte_reader_()
|
|
+#ifdef DWPREADER_WANTED
|
|
+ , dwp_reader_()
|
|
+#endif
|
|
+{}
|
|
|
|
// Initialize a compilation unit from a .dwo or .dwp file.
|
|
// In this case, we need the .debug_addr section from the
|
|
@@ -346,6 +350,7 @@ uint64 CompilationUnit::Start() {
|
|
// Now that we have our abbreviations, start processing DIE's.
|
|
ProcessDIEs();
|
|
|
|
+#ifdef DWPREADER_WANTED
|
|
// If this is a skeleton compilation unit generated with split DWARF,
|
|
// and the client needs the full debug info, we need to find the full
|
|
// compilation unit in a .dwo or .dwp file.
|
|
@@ -353,6 +358,7 @@ uint64 CompilationUnit::Start() {
|
|
&& dwo_name_ != NULL
|
|
&& handler_->NeedSplitDebugInfo())
|
|
ProcessSplitDwarf();
|
|
+#endif
|
|
|
|
return ourlength;
|
|
}
|
|
@@ -610,6 +616,7 @@ inline int GetElfWidth(const ElfReader& elf) {
|
|
return 0;
|
|
}
|
|
|
|
+#ifdef DWPREADER_WANTED
|
|
void CompilationUnit::ProcessSplitDwarf() {
|
|
struct stat statbuf;
|
|
if (!have_checked_for_dwp_) {
|
|
@@ -694,7 +701,9 @@ void CompilationUnit::ReadDebugSectionsFromDwo(ElfReader* elf_reader,
|
|
section_size)));
|
|
}
|
|
}
|
|
+#endif
|
|
|
|
+#ifdef DWPREADER_WANTED
|
|
DwpReader::DwpReader(const ByteReader& byte_reader, ElfReader* elf_reader)
|
|
: elf_reader_(elf_reader), byte_reader_(byte_reader),
|
|
cu_index_(NULL), cu_index_size_(0), string_buffer_(NULL),
|
|
@@ -900,6 +909,7 @@ uint32 DwpReader::LookupCUv2(uint64 dwo_id) {
|
|
}
|
|
return index;
|
|
}
|
|
+#endif
|
|
|
|
LineInfo::LineInfo(const uint8_t *buffer, uint64 buffer_length,
|
|
ByteReader* reader, LineInfoHandler* handler):
|
|
diff --git a/src/common/dwarf/dwarf2reader.h b/src/common/dwarf/dwarf2reader.h
|
|
index cf3ba3cd..e77c2258 100644
|
|
--- a/src/common/dwarf/dwarf2reader.h
|
|
+++ b/src/common/dwarf/dwarf2reader.h
|
|
@@ -586,8 +586,10 @@ class CompilationUnit {
|
|
// ByteReader for the DWP file.
|
|
std::unique_ptr<ByteReader> dwp_byte_reader_;
|
|
|
|
+#ifdef DWPREADER_WANTED
|
|
// DWP reader.
|
|
std::unique_ptr<DwpReader> dwp_reader_;
|
|
+#endif
|
|
};
|
|
|
|
// A Reader for a .dwp file. Supports the fetching of DWARF debug
|
|
--
|
|
2.28.0
|
|
|