Carlo Kok via llvm-dev
2020-Nov-18 13:38 UTC
[llvm-dev] invalid symbol kind for ADRP relocation
hi, does anyone know how to resolve this? It's a very simple IR file (below), fails with: LLVM ERROR: invalid symbol kind for ADRP relocation PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. Stack dump: 0. Program arguments: \p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe -O0 debug_output(1).ll -filetype=obj #0 0x01522349 (C:\p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe+0x1272349) #1 0x019bb8fc (C:\p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe+0x170b8fc) I have no idea where to even start looking, but it seems related to the store. ; ModuleID = '$debug$' source_filename = "$debug$" target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "arm64-apple-macosx11.0.1-elf" define void @"$$debug_evaluation_helper"(i8* %0) { BasicBlock3: %1 = alloca void (i8*, void (i8*)*, void (i8*, i8*)*)* store void (i8*, void (i8*)*, void (i8*, i8*)*)* @"$$__island_debug_invoke", void (i8*, void (i8*)*, void (i8*, i8*)*)** %1 %2 = load void (i8*, void (i8*)*, void (i8*, i8*)*)*, void (i8*, void (i8*)*, void (i8*, i8*)*)** %1 unreachable } declare void @"$$__island_debug_invoke"(i8* %0, void (i8*)* %1, void (i8*, i8*)* %2) attributes #0 = { nounwind }
Peter Smith via llvm-dev
2020-Nov-18 14:16 UTC
[llvm-dev] invalid symbol kind for ADRP relocation
That particular failure will be coming from the MC layer. Certain symbols have kinds such as VK_GOT, the ELF object writer in AArch64ELFObjectWriter.cpp has encountered a kind that it doesn't understand when trying to resolve a relocation. I'm not sure what to say beyond that besides tracing through to find out what kind the symbol is being given and why? One potential problem is the triple "arm64-apple-macosx11.0.1-elf". As I understand it MacOS uses MachO objects and not ELF. I don't think that combination is supported or tested. It is possible that there is a MachO specific symbol kind that the ELF backend is not expecting. Peter ________________________________________ From: llvm-dev <llvm-dev-bounces at lists.llvm.org> on behalf of Carlo Kok via llvm-dev <llvm-dev at lists.llvm.org> Sent: 18 November 2020 13:38 To: llvm-dev Subject: [llvm-dev] invalid symbol kind for ADRP relocation hi, does anyone know how to resolve this? It's a very simple IR file (below), fails with: LLVM ERROR: invalid symbol kind for ADRP relocation PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. Stack dump: 0. Program arguments: \p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe -O0 debug_output(1).ll -filetype=obj #0 0x01522349 (C:\p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe+0x1272349) #1 0x019bb8fc (C:\p\llvm-project-bin32\RelWithDebInfo\bin\llc.exe+0x170b8fc) I have no idea where to even start looking, but it seems related to the store. ; ModuleID = '$debug$' source_filename = "$debug$" target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "arm64-apple-macosx11.0.1-elf" define void @"$$debug_evaluation_helper"(i8* %0) { BasicBlock3: %1 = alloca void (i8*, void (i8*)*, void (i8*, i8*)*)* store void (i8*, void (i8*)*, void (i8*, i8*)*)* @"$$__island_debug_invoke", void (i8*, void (i8*)*, void (i8*, i8*)*)** %1 %2 = load void (i8*, void (i8*)*, void (i8*, i8*)*)*, void (i8*, void (i8*)*, void (i8*, i8*)*)** %1 unreachable } declare void @"$$__island_debug_invoke"(i8* %0, void (i8*)* %1, void (i8*, i8*)* %2) attributes #0 = { nounwind } _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev