Difference between revisions of "NaplesPU LLD Linker"
Line 30: | Line 30: | ||
== linker == | == linker == | ||
+ | [https://github.com/mclinker/mclinker mclinker] is the linker used with the LLVM ver. 3.9. However, it is not under active development so we must migrate towards [http://lld.llvm.org/ LLD]. | ||
+ | |||
+ | The linker main purpose is to link object files in order to generate an executable file. | ||
+ | |||
== elf2hex == | == elf2hex == |
Revision as of 14:44, 26 October 2017
When adding a new target architecture to llvm, some changes are required to the tools located in the llvm/tools folder.
Contents
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
mclinker is the linker used with the LLVM ver. 3.9. However, it is not under active development so we must migrate towards LLD.
The linker main purpose is to link object files in order to generate an executable file.
elf2hex
lldb
TBD