panda-re / panda

Platform for Architecture-Neutral Dynamic Analysis
https://panda.re
Other
2.48k stars 479 forks source link

Upgrade LLVM to at least version 15 #1521

Open AndrewQuijano opened 2 months ago

AndrewQuijano commented 2 months ago

Currently PANDA is running on LLVM-11, but it seems like LLVM now is on version 18. To avoid any excessive technical debt, is there a roadmap to upgrade PANDA to at least LLVM 15? I figure keeping 2-3 versions behind instead of 7 versions behind the latest is probably best practice and more sustainable for maintaining PANDA.

https://releases.llvm.org/

https://github.com/panda-re/panda/pull/773

https://github.com/panda-re/panda/pull/892

AndrewQuijano commented 2 months ago

Based on the LLVM Upgrade PRs I could I please get advice from you @LauraLMann and @MarkMankins on how would much work would be involved in such an upgrade? Would it be possible to get your assistance in the upgrade?

LauraLMann commented 2 months ago

How much work would be involved depends upon how much implementation details we rely upon changed. The last time I was involved in an LLVM upgrade (to LLVM 11), the problem was the "

.impl" symbol name, which is implementation detail, had changed, and I had to find out what it was in LLVM 11. As of 21 MAY 2024 in the source code repo for LLVM, that symbol name had not changed, so that was promising.

AndrewQuijano commented 2 months ago

I see, I'm wondering could you please get a PR to upgrade LLVM in the near future? I should admit, I'm no expert on LLVM, but this ask is coming me having to fix about 5 years of technical debt on LAVA, so I figure might as well use this momentum to get some PANDA upgrades in too. I think once PANDA is upgraded to a later version of LLVM, I can also work on upgrading LAVA again after the LLVM-11 upgrade is in. I am open to help where I can.

https://github.com/panda-re/lava/pull/70

MarkMankins commented 1 month ago

See #1536 - still needs a lot of work but this is a start.