androm3da wrote: ``` /builddir/build/BUILD/llvm-21.1.0_rc2-build/llvm-project-21.1.0-rc2.src/lld/test/ELF/hexagon-thunks-packets.s:20:17: error: CHECK-NONPIC: expected string not found i n input # CHECK-NONPIC: jump 0x1020110 <myfn_a> } ^ <stdin>:7:50: note: scanning from here 200b4: 01 40 10 00 00104001 { immext(#0x1000040) ^ <stdin>:8:30: note: possible intended match here 200b8: 58 c0 00 58 5800c058 jump 0x1020120 <myfn_a> } ^
``` Hmm, if it were an endianness issue I wonder if this patch below might address it? How convenient is it to try this? ``` diff --git a/lld/ELF/Thunks.cpp b/lld/ELF/Thunks.cpp index 65d0f094c43c..c8d0c91fd8b6 100644 --- a/lld/ELF/Thunks.cpp +++ b/lld/ELF/Thunks.cpp @@ -1546,16 +1546,16 @@ void HexagonThunk::writeTo(uint8_t *buf) { uint64_t p = getThunkTargetSym()->getVA(ctx); if (ctx.arg.isPic) { - write32(ctx, buf + 0, 0x00004000); // { immext(#0) + write32le(buf + 0, 0x00004000); // { immext(#0) ctx.target->relocateNoSym(buf, R_HEX_B32_PCREL_X, s - p); - write32(ctx, buf + 4, 0x6a49c00e); // r14 = add(pc,##0) } + write32le(buf + 4, 0x6a49c00e); // r14 = add(pc,##0) } ctx.target->relocateNoSym(buf + 4, R_HEX_6_PCREL_X, s - p); - write32(ctx, buf + 8, 0x528ec000); // { jumpr r14 } + write32le(buf + 8, 0x528ec000); // { jumpr r14 } } else { - write32(ctx, buf + 0, 0x00004000); // { immext + write32le(buf + 0, 0x00004000); // { immext ctx.target->relocateNoSym(buf, R_HEX_B32_PCREL_X, s - p); - write32(ctx, buf + 4, 0x5800c000); // jump <> } + write32le(buf + 4, 0x5800c000); // jump <> } ctx.target->relocateNoSym(buf + 4, R_HEX_B22_PCREL_X, s - p); } ``` https://github.com/llvm/llvm-project/pull/149723 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits