Index: llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp =================================================================== --- llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp @@ -422,6 +422,8 @@ default: report_fatal_error("Relocation type not implemented yet!"); break; + case ELF::R_AARCH64_NONE: + break; case ELF::R_AARCH64_ABS16: { uint64_t Result = Value + Addend; assert(static_cast(Result) >= INT16_MIN && Result < UINT16_MAX); Index: llvm/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_none.yaml =================================================================== --- /dev/null +++ llvm/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_none.yaml @@ -0,0 +1,29 @@ +# RUN: yaml2obj %s -o %t.o +# RUN: llvm-rtdyld -triple=arm64-none-linux-gnu %t.o -printline + +# Verify rtdyld doesn't abort in presence of R_AARCH64_NONE + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + OSABI: ELFOSABI_FREEBSD + Type: ET_REL + Machine: EM_AARCH64 +Sections: + - Name: .text + Type: SHT_PROGBITS + Flags: [ SHF_ALLOC ] + - Name: .rela.text + Type: SHT_RELA + Link: .symtab + Info: .text + Relocations: + - Offset: 0x0000000000000000 + Type: R_AARCH64_NONE +Symbols: + - Name: _main + Section: .text + Binding: STB_GLOBAL + Value: 0 + Size: 4