paschalis-mpeis wrote:
Hey @yota9, thanks for the suggestions! Indeed, the PLT entries exist in both binaries. For example running: ``` build/bin/llvm-objdump -d -j .plt build/tools/bolt/test/X86/Output/callcont-fallthru.s.tmp ``` shows: ``` build/tools/bolt/test/X86/Output/callcont-fallthru.s.tmp: file format elf64-x86-64 Disassembly of section .plt: 0000000000001430 <.plt>: 1430: ff 35 f2 20 00 00 pushq 0x20f2(%rip) # 0x3528 <puts+0x3528> 1436: ff 25 f4 20 00 00 jmpq *0x20f4(%rip) # 0x3530 <puts+0x3530> 143c: 0f 1f 40 00 nopl (%rax) 0000000000001440 <puts@plt>: 1440: ff 25 f2 20 00 00 jmpq *0x20f2(%rip) # 0x3538 <puts+0x3538> 1446: 68 00 00 00 00 pushq $0x0 144b: e9 e0 ff ff ff jmp 0x1430 <.plt> ``` I noticed some code differences in the binaries but I haven't looked deeper into it. **It looks like it's differences in GNU nm though:** On my AArch64 dev-machine, `nm --synthetic` lists `puts@plt`, but when I copy that same binary over to our upcoming AArch64 buildbot, it's missing. Conversely, `nm --synthetic` on the buildbot does not list `puts@plt`, but when if I copy that binary to the dev-machine it does appear. --- I too agree that relying on GNU is not ideal. Essentially using any binary tool that does not come from the built LLVM revision. However, `llvm-nm` does not seem support `--synthetic`. BTW, thanks for all the help! I'm focused on AArch64, so while I may be involved to some extent with this, I'll let Amir drive the fix. That's why I'm looking for a code owner to get #137831 stamped. :) (also cc'ing: @aaupov, @maksfb) https://github.com/llvm/llvm-project/pull/135867 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits