diff options
Diffstat (limited to 'lld/ELF/SyntheticSections.h')
-rw-r--r-- | lld/ELF/SyntheticSections.h | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/lld/ELF/SyntheticSections.h b/lld/ELF/SyntheticSections.h index f0a598dda51d..8ed82ba64a6e 100644 --- a/lld/ELF/SyntheticSections.h +++ b/lld/ELF/SyntheticSections.h @@ -364,7 +364,7 @@ private: // Try to merge two GOTs. In case of success the `Dst` contains // result of merging and the function returns true. In case of - // ovwerflow the `Dst` is unchanged and the function returns false. + // overflow the `Dst` is unchanged and the function returns false. bool tryMergeGots(FileGot & dst, FileGot & src, bool isPrimary); }; @@ -683,9 +683,8 @@ public: void addEntry(Symbol &sym); size_t getNumEntries() const { return entries.size(); } - size_t headerSize = 0; + size_t headerSize; -private: std::vector<const Symbol *> entries; }; @@ -705,6 +704,16 @@ public: void addEntry(Symbol &sym); }; +class PPC32GlinkSection : public PltSection { +public: + PPC32GlinkSection(); + void writeTo(uint8_t *buf) override; + size_t getSize() const override; + + std::vector<const Symbol *> canonical_plts; + static constexpr size_t footerSize = 64; +}; + // This is x86-only. class IBTPltSection : public SyntheticSection { public: @@ -1037,7 +1046,7 @@ public: std::vector<InputSection *> exidxSections; private: - size_t size; + size_t size = 0; // Instead of storing pointers to the .ARM.exidx InputSections from // InputObjects, we store pointers to the executable sections that need @@ -1069,6 +1078,10 @@ public: InputSection *getTargetInputSection() const; bool assignOffsets(); + // When true, round up reported size of section to 4 KiB. See comment + // in addThunkSection() for more details. + bool roundUpSizeForErrata = false; + private: std::vector<Thunk *> thunks; size_t size = 0; |