NaplesPU LLD Linker

From NaplesPU Documentation
Revision as of 19:26, 12 September 2017 by Edo (talk | contribs)
Jump to: navigation, search

When adding a new target architecture to llvm, some changes are required to the tools located in the llvm/tools folder.

llvm-objdump

This is the llvm object file dumper. The full documentation for llvm-objdump is maintained as a Texinfo manual. If the info and llvm-objdump programs are properly installed, the command info llvm-objdump should give you access to the complete manual.

In order to be properly used with the NuPlus architecture the following change is required.

template <class ELFT>
static std::error_code getRelocationValueString(const ELFObjectFile<ELFT> *Obj,
                                                const RelocationRef &RelRef,
                                                SmallVectorImpl<char> &Result) {
  ...
  switch (EF.getHeader()->e_machine) {
  ...
  case ELF::EM_NUPLUS:
    res = Target;
    break;

llvm-readobj

The llvm-readobj tool displays low-level format-specific information about one or more object files. In order to be properly used with the NuPlus architecture the following change is required.

static const EnumEntry<unsigned> ElfMachineType[] = {
  ...
  ENUM_ENT(EM_NUPLUS,        "EM_NUPLUS")

linker

elf2hex

lldb

TBD