diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp --- a/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp +++ b/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); diff --git a/llvm/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_NONE.yaml b/llvm/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_NONE.yaml new file mode 100644 --- /dev/null +++ b/llvm/test/ExecutionEngine/RuntimeDyld/AArch64/ELF_ARM64_NONE.yaml @@ -0,0 +1,24 @@ +# 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: