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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits