[lld] r287675 - [ELF] Convert .rld_map to input section

Meador Inge via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 22 11:30:34 PST 2016


On Tue, Nov 22, 2016 at 05:49:14PM +0000, Eugene Leviant via llvm-commits wrote:

> +// This is a MIPS specific section to hold a space within the data segment
> +// of executable file which is pointed to by the DT_MIPS_RLD_MAP entry.
> +// See "Dynamic section" in Chapter 5 in the following document:
> +// ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf
> +template <class ELFT> class MipsRldMap : public SyntheticSection<ELFT> {
> +public:
> +  MipsRldMap();
> +  size_t getSize() const override { return sizeof(typename ELFT::uint); }
> +  void writeTo(uint8_t *Buf) override;
> +};
> +
>  template <class ELFT> InputSection<ELFT> *createCommonSection();
>  template <class ELFT> InputSection<ELFT> *createInterpSection();
>  template <class ELFT> MergeInputSection<ELFT> *createCommentSection();
> @@ -618,6 +629,7 @@ template <class ELFT> struct In {
>    static GotPltSection<ELFT> *GotPlt;
>    static HashTableSection<ELFT> *HashTab;
>    static InputSection<ELFT> *Interp;
> +  static MipsRldMap<ELFT> *MipsRldMap;

This seems to break my build (GCC 5.2.0) b/c the static variable is named
the same as its class:

In file included from
/scratch/meadori/llvm-mainline/src/llvm/tools/lld/ELF/InputSection.cpp:18:0:
/scratch/meadori/llvm-mainline/src/llvm/tools/lld/ELF/SyntheticSections.h:632:28:
error: declaration of 'lld::elf::MipsRldMap<ELFT>*
lld::elf::In<ELFT>::MipsRldMap' [-fpermissive]
   static MipsRldMap<ELFT> *MipsRldMap;
                            ^
/scratch/meadori/llvm-mainline/src/llvm/tools/lld/ELF/SyntheticSections.h:606:29:
error: changes meaning of 'MipsRldMap' from 'class
lld::elf::MipsRldMap<ELFT>' [-fpermissive]
 template <class ELFT> class MipsRldMap : public SyntheticSection<ELFT> {
                             ^
tools/lld/ELF/CMakeFiles/lldELF.dir/build.make:230: recipe for target
'tools/lld/ELF/CMakeFiles/lldELF.dir/InputSection.cpp.o' failed

-- 
Meador Inge
meadori at codesourcery.com
CodeSourcery / Mentor Embedded


More information about the llvm-commits mailing list