[llvm-branch-commits] [llvm] [GOFF] Add writing of section symbols (PR #133799)
Ulrich Weigand via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Mon Apr 7 13:03:43 PDT 2025
================
@@ -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()) {
----------------
uweigand wrote:
I see. I think we should implement this rule then - if a section is the target of an ADA link, it cannot be empty. That would be preferable to upper layers having to remember setting this flag. (I guess we could still have a flag internally, but that would get automatically set e.g. by `setADA`.)
Or, in the alternative, should we simply *not* set the ADA link if the target section is empty? If an ADA section, it cannot actually be used for anything, so do we even need to register it as ADA for a text section?
https://github.com/llvm/llvm-project/pull/133799
More information about the llvm-branch-commits
mailing list