* ci: use versioned cargo wrapper for crate ordering
(cherry picked from commit 554002b73c)
* ci: nvidia persistence mode isn't a hard requirement
(cherry picked from commit f213e48067)
* sdk: ensure `ld` can find criterion when running BPF tests
(cherry picked from commit 7ee39fcb0f)
* ci: give localnet nodes a more time to startup
(cherry picked from commit 278a241db3)
* ci: add downstream build wrapper
(cherry picked from commit 761e324982)
* ci: add wrapper script for running ci locally
Linux only for now
(cherry picked from commit 0bc38153ca)
Co-authored-by: Trent Nelson <trent@solana.com>
When the input contains more accounts than the user has requested to be deserialized, and one of the excess ones is a dup, the input pointer is not adjusted correctly.
Compare the lines added by this commit to line 401: "input += 7; // padding". Since the input data layout does not depend on the number of accounts the user wants to deserialize, this adjustment by 7 bytes must happen in both branches.
(cherry picked from commit e02b4e1192)
Co-authored-by: Christian Machacek <39452430+machacekch@users.noreply.github.com>
The readelf utility (already shipped with the solana tools) shows meta-information about ELF files, such as symbol tables. It is useful for investigating "unresolved symbol" errors that crop up at runtime.
This commit also fixes the objdump flags (two dashes are required and there is no "color" option) as well as a few typos.
(cherry picked from commit ff95e2aaa6)
Co-authored-by: Christian Machacek <39452430+machacekch@users.noreply.github.com>
Some syscalls are wrongly declared "static" in solana_sdk.h, which makes clang++ assume they are local to the compilation unit. It therefore ignores the extern "C" {} block and mangles their names. While that doesn't break C++ compilation, the syscall fails at runtime with something along the lines of "ELF error: Unresolved symbol (_ZL26sol_create_program_addressPK13SolSignerSeediPK9SolPubkeyS4_)".
(cherry picked from commit 6927d0c77e)
Co-authored-by: Christian Machacek <39452430+machacekch@users.noreply.github.com>
The new version of bpf-tools eliminates the separate
rust-bpf-sysroot. The Rust standard libraries for the BPF target are
built in tree when the compiler is built. The standard libraries code
is slightly more optimized and some reduction of compute budget can be
expected with this version of bpf-tools.
(cherry picked from commit 1359bceb5d)
Co-authored-by: Dmitri Makarov <dmakarov@users.noreply.github.com>