Difference between revisions of "NaplesPU LLD Linker"

From NaplesPU Documentation
Jump to: navigation, search
Line 19: Line 19:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== ELFDumper ==
+
== 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.
 +
 
 +
<syntaxhighlight lang="cpp" line='line'>
 +
static const EnumEntry<unsigned> ElfMachineType[] = {
 +
  ...
 +
  ENUM_ENT(EM_NUPLUS,        "EM_NUPLUS")
 +
</syntaxhighlight>
  
 
== linker ==
 
== linker ==

Revision as of 18:25, 12 September 2017

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 <\code> 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