-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
[WIP] Bootstrappable FCMP++ #9440
base: master
Are you sure you want to change the base?
Conversation
Identified by kayabaNerve, patch suggested by j-berman.
- When retrieving last chunks, set next_start_child_chunk_index so can know the correct start index without needing to modify the offset - Other smaller cleanup
contrib/depends/packages/rustc.mk
Outdated
rm -rf src/llvm-project && \ | ||
find . -type f -regex ".*\.\(a\|dll\|exe\|lib\)$$$$" -delete && \ | ||
find . -type f -name ".cargo-checksum.json" -print0 | xargs -0 -I% sh -c 'echo "{\"files\":{}}" > "%"' && \ | ||
find . -type f -name "Cargo.lock" -delete && \ |
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.
Does this line delete the lockfile which enables deterministic builds by specifying the exact versions of all Rust dependencies to use?
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.
Removing the Cargo.lock
file is necessary because we're removing binaries from the source code, causing checksum mismatches.
Builds are still reproducible. All dependencies are vendored, and we don't have network access here. Version numbers are included in Cargo.toml
.
This PR isn't ready for review.
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.
Sorry, I didn't mean to criticize a WIP. I just wanted clarity, or to point out an error which would presumably make your life more difficult. I now have the former.
My one other chime in is the version numbers in the toml aren't exact, yet ranges, but sounds like that won't be an issue.
Hey - I've seen that NDK task is unchecked, you can grab latest NDK patch from here: https://github.com/MrCyjaneK/monero_c/blob/master/patches/monero/0013-android-ndk-version-bump.patch and https://github.com/MrCyjaneK/monero_c/blob/master/patches/monero/0013-rename-arm-armv7a.patch it cointains some hacks - but hopefully will be useful. |
Might be easier to just build rust std with panic=abort?
Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
This is a WIP (early stages) draft PR for reproducible release builds with Rust FFI. Please check back later.
Based on #9436 (FCMP++ integration) and #8929 (Bootstrappable builds).
Tools
Sub-PRs
The Road to FCMP++
(Updated: September 5)
To-do (incomplete):
2.40
rustdoc
fcmp_pp_rust
depsdepends
CI[1] = links against precompiled freebsd system libraries
[2] = links against precompiled libraries from the darwin SDK
[3] = built with a precompiled toolchain from the Android NDK (there is currently no way around this)