-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(svm): initial sbfv2 work #496
Conversation
7aa2a8d
to
86a63fe
Compare
This stack of pull requests is managed by Graphite. Learn more about stacking. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
couple of minor questions otherwise lgtm
a15694e
to
a5a2d79
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly I just have questions and mild suggestions, but a couple things look wrong.
a5a2d79
to
9c8e9d9
Compare
9c8e9d9
to
dee515a
Compare
0b8dea7
to
4f6bff9
Compare
This PR has two main improvements.
The first is including a source for building the testing ELF binaries from scratch, using Zig. The method there is quite simple, we emit LLVM bitcode (not IR, since IR is not backward compatible), and use the SBPF LLVM fork to compile and link to a shared library. There are certain ELF binaries that we want to be compiled for SBPFv1 as well since they test features that have been changed or deprecated since, so those are in the
V1_FILES
array in the bash script.The second major change is expanding the ELF parser to support parsing SBPFv2 binaries. There isn't too much to say there, my implementation just closely follows how RBPF and Firedancer parse their ELF binaries. The tests should ensure that it's parsing correctly, as well as my solana-conformance work with the elf parser shows that most inputs pass.