mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-01 15:17:25 +00:00
Turn on pubnames by default on linux.
Until gdb supports the new accelerator tables we should add the pubnames section so that gdb_index can be generated from gold at link time. On darwin we already emit the accelerator tables and so don't need to worry about pubnames. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188708 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -57,11 +57,6 @@ static cl::opt<bool> UnknownLocations(
|
||||
cl::desc("Make an absence of debug location information explicit."),
|
||||
cl::init(false));
|
||||
|
||||
static cl::opt<bool>
|
||||
GenerateDwarfPubNamesSection("generate-dwarf-pubnames", cl::Hidden,
|
||||
cl::init(false),
|
||||
cl::desc("Generate DWARF pubnames section"));
|
||||
|
||||
static cl::opt<bool>
|
||||
GenerateODRHash("generate-odr-hash", cl::Hidden,
|
||||
cl::desc("Add an ODR hash to external type DIEs."),
|
||||
@@ -104,6 +99,14 @@ SplitDwarf("split-dwarf", cl::Hidden,
|
||||
clEnumVal(Disable, "Disabled"), clEnumValEnd),
|
||||
cl::init(Default));
|
||||
|
||||
static cl::opt<DefaultOnOff>
|
||||
DwarfPubNames("generate-dwarf-pubnames", cl::Hidden,
|
||||
cl::desc("Generate DWARF pubnames section"),
|
||||
cl::values(clEnumVal(Default, "Default for platform"),
|
||||
clEnumVal(Enable, "Enabled"),
|
||||
clEnumVal(Disable, "Disabled"), clEnumValEnd),
|
||||
cl::init(Default));
|
||||
|
||||
namespace {
|
||||
const char *const DWARFGroupName = "DWARF Emission";
|
||||
const char *const DbgTimerName = "DWARF Debug Writer";
|
||||
@@ -225,6 +228,14 @@ DwarfDebug::DwarfDebug(AsmPrinter *A, Module *M)
|
||||
else
|
||||
HasSplitDwarf = SplitDwarf == Enable ? true : false;
|
||||
|
||||
if (DwarfPubNames == Default) {
|
||||
if (IsDarwin)
|
||||
HasDwarfPubNames = false;
|
||||
else
|
||||
HasDwarfPubNames = true;
|
||||
} else
|
||||
HasDwarfPubNames = DwarfPubNames == Enable ? true : false;
|
||||
|
||||
DwarfVersion = getDwarfVersionFromModule(MMI->getModule());
|
||||
|
||||
{
|
||||
@@ -797,7 +808,7 @@ void DwarfDebug::constructSubprogramDIE(CompileUnit *TheCU,
|
||||
TheCU->addToContextOwner(SubprogramDie, SP.getContext());
|
||||
|
||||
// Expose as global, if requested.
|
||||
if (GenerateDwarfPubNamesSection)
|
||||
if (HasDwarfPubNames)
|
||||
TheCU->addGlobalName(SP.getName(), SubprogramDie);
|
||||
}
|
||||
|
||||
@@ -1146,7 +1157,7 @@ void DwarfDebug::endModule() {
|
||||
}
|
||||
|
||||
// Emit info into a debug pubnames section, if requested.
|
||||
if (GenerateDwarfPubNamesSection)
|
||||
if (HasDwarfPubNames)
|
||||
emitDebugPubnames();
|
||||
|
||||
// Emit info into a debug pubtypes section.
|
||||
@@ -1932,7 +1943,7 @@ void DwarfDebug::emitSectionLabels() {
|
||||
DwarfLineSectionSym =
|
||||
emitSectionSym(Asm, TLOF.getDwarfLineSection(), "section_line");
|
||||
emitSectionSym(Asm, TLOF.getDwarfLocSection());
|
||||
if (GenerateDwarfPubNamesSection)
|
||||
if (HasDwarfPubNames)
|
||||
emitSectionSym(Asm, TLOF.getDwarfPubNamesSection());
|
||||
emitSectionSym(Asm, TLOF.getDwarfPubTypesSection());
|
||||
DwarfStrSectionSym =
|
||||
@@ -2307,8 +2318,8 @@ void DwarfDebug::emitDebugPubnames() {
|
||||
continue;
|
||||
|
||||
// Start the dwarf pubnames section.
|
||||
Asm->OutStreamer.SwitchSection(
|
||||
Asm->getObjFileLowering().getDwarfPubNamesSection());
|
||||
Asm->OutStreamer
|
||||
.SwitchSection(Asm->getObjFileLowering().getDwarfPubNamesSection());
|
||||
|
||||
Asm->OutStreamer.AddComment("Length of Public Names Info");
|
||||
Asm->EmitLabelDifference(Asm->GetTempSymbol("pubnames_end", ID),
|
||||
|
||||
Reference in New Issue
Block a user