[elf2] Pass BSSSec to the relocation handling code differently. Don't store it in the symbol.
llvm-svn: 248393
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp
index 57180df..58ad5ac 100644
--- a/lld/ELF/Writer.cpp
+++ b/lld/ELF/Writer.cpp
@@ -365,6 +365,11 @@
}
BSSSec = getSection(".bss", SHT_NOBITS, SHF_ALLOC | SHF_WRITE);
+
+ // The only type in OutputSections is currently OutputSection.
+ for (OutputSectionBase<ELFT::Is64Bits> *OSB : OutputSections)
+ static_cast<OutputSection<ELFT> *>(OSB)->setBssSec(BSSSec);
+
SymTabSec.setBssSec(BSSSec);
DynSymSec.setBssSec(BSSSec);
@@ -376,7 +381,6 @@
uintX_t Align = C->MaxAlignment;
Off = RoundUpToAlignment(Off, Align);
C->OffsetInBSS = Off;
- C->OutputSec = BSSSec;
Off += Sym.st_size;
}