-
Notifications
You must be signed in to change notification settings - Fork 2.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
build: Enable cross-language ThinLTO #4953
base: master
Are you sure you want to change the base?
Conversation
@zkbot try |
build: Enable cross-language ThinLTO Causes warnings at link time due to C++ and Rust using different target strings. These warnings do not break CI, because while we require `-Werror` to build on Linux, that only affects compilation, not linking. See rust-lang/rust#33147 for more details.
☀️ Test successful - pr-try |
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.
utACK. The target triple warning is not a blocker to merging.
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.
NACK 12ff63e
CXXLD zcashd
CXXLD zcash-cli
CXXLD zcash-tx
CXXLD bench/bench_bitcoin
CXXLD test/test_bitcoin
CXXLD zcash-gtest
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [zcash-cli] Error 254
make[2]: *** Waiting for unfinished jobs....
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [zcash-tx] Error 254
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [bench/bench_bitcoin] Error 254
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [zcashd] Error 254
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [test/test_bitcoin] Error 254
error: can't create module summary index for buffer: Invalid summary version 9. Version should be in the range [1-8].
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
make[2]: *** [zcash-gtest] Error 254
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1
In addition to the above issue, this PR appears to slow down the test suites. We need to spend more time figuring out what ThinLTO is actually doing to the code. |
@zkbot try |
build: Enable cross-language ThinLTO Causes warnings at link time due to C++ and Rust using different target strings. These warnings do not break CI, because while we require `-Werror` to build on Linux, that only affects compilation, not linking. See rust-lang/rust#33147 for more details.
💥 Test timed out |
e3c0417
to
35ba628
Compare
Rebased on current
|
Rebased on current |
Causes warnings at link time due to C++ and Rust using different target strings. See rust-lang/rust#33147 for more details.
Rebased on current |
@@ -99,6 +99,7 @@ ZC_REQUIRE_TOOL(AR, ar) | |||
ZC_REQUIRE_TOOL(RANLIB, ranlib) | |||
ZC_REQUIRE_TOOL(STRIP, strip) | |||
ZC_REQUIRE_PROG([GIT], [git]) | |||
ZC_REQUIRE_PROG(CLANG, clang) |
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.
Why are we using the installed clang, rather than the pinned clang built under depends
?
(I know why we aren't on macOS, but that should be the only exception.)
We should only do this if we have strong evidence of a performance improvement. Otherwise, it's just adding complexity. |
Causes warnings at link time due to C++ and Rust using different target
strings. These warnings do not break CI, because while we require
-Werror
to build on Linux, that only affects compilation, not linking.
See rust-lang/rust#33147 for more details.
Closes #6719.