================ @@ -239,6 +298,63 @@ class GOFFWriter { GOFFWriter::GOFFWriter(raw_pwrite_stream &OS, MCAssembler &Asm) : OS(OS), Asm(Asm) {} +void GOFFWriter::defineSectionSymbols(const MCSectionGOFF &Section) { + if (Section.isSD()) { + GOFFSymbol SD(Section.getName(), Section.getId(), + Section.getSDAttributes()); + writeSymbol(SD); + } + + if (Section.isED()) { + GOFFSymbol ED(Section.getName(), Section.getId(), + Section.getParent()->getId(), Section.getEDAttributes()); + if (Section.requiresLength()) + ED.SectionLength = Asm.getSectionAddressSize(Section); + writeSymbol(ED); + } + + if (Section.isPR()) { + GOFFSymbol PR(Section.getName(), Section.getId(), + Section.getParent()->getId(), Section.getPRAttributes()); + PR.SectionLength = Asm.getSectionAddressSize(Section); + if (Section.requiresNonZeroLength()) { ---------------- redstar wrote:
PR sections of size zero are allowed. However, if a text section is associated with an data section (the ADAEsdId field of the LD symbol of the text section is set to the PR symbol of the ADA) then the binder produces an error. This is a work-around for that situation. https://github.com/llvm/llvm-project/pull/133799 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits