From 50f50f2582993a079dbcfb8e7ba48920f41e6be0 Mon Sep 17 00:00:00 2001 From: Shubham Sandeep Rastogi Date: Wed, 17 Nov 2021 15:05:58 -0800 Subject: Emit swift5 reflection section data in dsym bundle generated by dsymutil in the Dwarf section. Add support for Swift reflection metadata to dsymutil. This patch adds support for copying Swift reflection metadata (__swift5_.* sections) from .o files to into the symbol-rich binary in the output .dSYM. The functionality is automatically enabled only if a .o file has reflection metadata sections and the binary doesn't. When copying dsymutil moves the section from the __TEXT segment to the __DWARF segment. rdar://76973336 Differential Revision: https://reviews.llvm.org/D115007 --- llvm/lib/Object/MachOObjectFile.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'llvm/lib/Object/MachOObjectFile.cpp') diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index 42e2575..83bc74f 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -20,6 +20,7 @@ #include "llvm/ADT/Triple.h" #include "llvm/ADT/Twine.h" #include "llvm/BinaryFormat/MachO.h" +#include "llvm/BinaryFormat/Swift.h" #include "llvm/Object/Error.h" #include "llvm/Object/MachO.h" #include "llvm/Object/ObjectFile.h" @@ -4765,3 +4766,14 @@ MachOObjectFile::findDsymObjectMembers(StringRef Path) { Path.str().c_str()); return ObjectPaths; } + +llvm::swift::Swift5ReflectionSectionKind +MachOObjectFile::mapReflectionSectionNameToEnumValue( + StringRef SectionName) const { +#define HANDLE_SWIFT_SECTION(KIND, MACHO, ELF, COFF) \ + .Case(MACHO, llvm::swift::Swift5ReflectionSectionKind::KIND) + return StringSwitch(SectionName) +#include "llvm/BinaryFormat/Swift.def" + .Default(llvm::swift::Swift5ReflectionSectionKind::Unknown); +#undef HANDLE_SWIFT_SECTION +} -- cgit v1.1