Commit Graph

234 Commits

Author SHA1 Message Date
a9d9a5095b Bump bpf-tools to v1.23 2022-02-03 15:50:18 -08:00
959ea26816 Re-enable LTO (#22287)
LTO seems to work fine now. It was possibly fixed by either the LLVM13 upgrade
or by b2ed47a925,
which fixed a LTO issue with tests.
2022-01-06 09:16:50 +11:00
57986f982a cargo-build-bpf: Add Windows support (#20276)
* cargo-build-bpf: Add Windows support

* Update error message
2021-12-28 18:37:35 -05:00
7cc6262b5a Bump bpf-tools to v1.21 2021-12-21 16:40:42 -08:00
923720f529 SDK: Add stdlib.h include to pull in abort() (#21700) 2021-12-08 17:00:16 +01:00
bae5dae61d Bump bpf-tools to v1.20
- Fix C standard library to include only reentrant versions of functions
- Use a version of solana_rbpf with fixed relocations handling
- Add a test of using C standard library functions in on-chain program
2021-11-18 20:50:58 -08:00
3f4f05865d Bump bpf-tools to v1.19 (#21256)
Toolchain upgrade to rust 1.56.0 and clang 13.0.
2021-11-13 19:36:28 +00:00
4287bf6b8b Bump bpf-tools to v1.18 (#20991)
- added newlib standard C library to clang toolchain
- fixed BPF backend bug that accidentally deleted code, issue #20538
2021-10-26 22:51:44 +00:00
d714cf659c Proposal: log binary data for Solidity
The program_id is not needed on "Program return data: " because it
always preceeded by the program invoke message, so no need to repeat
the program id. Also rename this to "Program return: " since "data"
is redundant.
2021-09-22 07:59:06 +01:00
098585234d Add return data implementation
This consists of:
 - syscalls
 - passing return data from invoked to invoker
 - printing to stable log
 - rust and C SDK changes
2021-09-10 14:25:54 +01:00
04c0c608a3 Split solana_sdk.h (#19172) 2021-08-13 09:49:24 -07:00
d6a2b70438 Bump bpf-tools to v1.15 (#19117)
- update to rust 1.54.0
2021-08-10 07:21:14 +00:00
cde1461555 Bump bpf-tools to v1.14 (#19023)
- improved memory operations performance
- minor fixes
2021-08-03 09:13:58 +00:00
1f288ce527 Add ecrecover syscall (#17720)
Co-authored-by: Anton Lisanin <lisanin.anton@gmail.com>
2021-07-07 13:15:14 -07:00
e752299ac5 Bump bpf-tools version
Update Rust BPF to version 1.53
2021-07-07 05:08:40 -07:00
e98a7504f2 Bump bpf-tools version to 1.12 2021-06-25 18:00:44 -07:00
7ee39fcb0f sdk: ensure ld can find criterion when running BPF tests 2021-06-24 22:14:54 -06:00
d6bad60c1b Bump bpf-tools version to 1.11 (#18079)
Avoid including local paths in compiler generated ELF files
2021-06-19 01:00:59 +00:00
32742df1b4 Add build script to extract a list of registered syscalls
The list is used in cargo-build-bpf to check generated .so modules for
undefined symbols that are not known run-time syscalls.
2021-06-14 04:51:30 -07:00
361c1bdd57 Fix file permissions (#17910) 2021-06-12 02:03:32 +00:00
3026954d71 Update RUSTFLAGS if it is set, instead of overriding in build-bpf 2021-06-11 13:19:43 -07:00
2fe211c5e0 Remove O2 option for compiling BPF programs (#17865)
rustc default compiler optimization level is O3. This change removes
the option that overrides the default optimization level, because it
is safe to do so.  The code generation is incorrect in some cases
because of link-time optimizations, which remain disabled for
compiling BPF programs.  In addition, this commit updates the expected
instruction counts for assert_instruction_count test.
2021-06-10 05:04:17 +00:00
28fdfed1ba Blake3 syscall (#17358) 2021-06-08 11:04:10 -07:00
6f193bf357 Add separate rules to generate dependencies files for C BPF build 2021-06-08 05:34:40 -07:00
ae0bea1ad3 Bump BPF tools to v1.10 2021-06-04 19:10:23 -07:00
47861fc373 Bump BPF tools to v1.9 2021-06-03 17:06:49 -07:00
831e87c65d Add BPF rustc option to reduce the optimizations to safer level (#17590) 2021-05-28 23:14:53 +00:00
2316ddb90a Revert bpf-tools to version 1.8 because of a codegen bug suspicion (#17568) 2021-05-28 09:36:46 +00:00
3ae4806dae Fix missing builtins in C programs linking with compiler_builtins (#17475) 2021-05-25 17:11:02 +00:00
8758e9ed82 Remove const qualifier from syscall out-parameters (#17382) 2021-05-21 12:09:22 -07:00
2ae57c172a Bump bpf-tools version to 1.9
- upgrade rustc to 1.52.1 and clang to 12.0
2021-05-20 11:35:37 +02:00
ab871ed4b7 Bump bpf-tools version to 1.8 2021-05-18 08:10:57 +02:00
e02b4e1192 Fix a bug in input deserialization in the C SDK (#17217)
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.
2021-05-14 16:41:55 -06:00
88626b2945 Bump bpf-tools version to 1.7 (#17176) 2021-05-11 19:51:20 +00:00
8eb05d6ed4 Add Keccak256 syscall and sdk support (#16498) 2021-05-10 16:16:58 -07:00
82fb6712e7 fix c program deploy help (#17152) 2021-05-10 15:38:01 -07:00
ff95e2aaa6 Add a make target to run the readelf utility on a compiled program
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.
2021-05-08 18:49:14 -07:00
6927d0c77e Fix syscalls in the C SDK failing at runtime when compiled as C++ (#17124)
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_)".
2021-05-08 16:31:50 +00:00
db3bca7edd Add llvm feature option to compile for Solana BPF target (#16495) 2021-04-13 07:20:18 +00:00
1359bceb5d Bump bpf-tools to version v1.5 (#16331)
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.
2021-04-04 13:04:22 +00:00
bcd89dd34c Fix BPF ELF layout (#16256)
* Fix BPF ELF layout

* whitespace
2021-03-31 08:51:19 +00:00
abada56ba1 Print the rust version when building bpf programs (#16181) 2021-03-29 14:17:08 +08:00
658ddd1c9c Bump bpf-tools to version v1.4 (#16152) 2021-03-26 19:21:41 +00:00
664ed76523 Bump bpf-tools to version v1.3 (#16068)
* Bump bpf-tools to version v1.3

This brings in the fix for increased compute budget that wasn't caught
when bpf-tools v1.2 were released.

* Adjust BPF test programs instruction counts
2021-03-24 07:16:38 +00:00
14e45155e4 Bump bpf-tools to v1.2 and get rid of xargo 2021-03-19 12:09:15 +01:00
c5a5d7457e Bump bpf-tools to v1.1 (#15776) 2021-03-10 18:13:38 +01:00
4789a13a6e configure rust-bpf toolchain for each tree (#15620) 2021-03-02 00:45:28 -08:00
48785b507b Bump Rust-BPF to v1.46 (#15273) 2021-02-18 11:30:08 -08:00
bba1b49663 Generate keypair file for c program deployment (#15080)
* Generate keypair file for c program deployment

* Build and use solana-keygen in test-stable-perf
2021-02-04 13:56:12 -08:00
286e4d6924 bump rust-bpf-sysroot to v0.14 (#15040) 2021-02-03 10:43:38 +00:00