build: Introduce internal kernel library#28690
build: Introduce internal kernel library#28690sedited wants to merge 1 commit intobitcoin:masterfrom
Conversation
|
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. Code Coverage & BenchmarksFor details see: https://corecheck.dev/bitcoin/bitcoin/pulls/28690. ReviewsSee the guideline for information on the review process.
If your review is incorrectly listed, please copy-paste ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
3e169c7 to
e37fbee
Compare
e37fbee to
a5e4960
Compare
a5e4960 to
d6032c5
Compare
|
To fix the MSVC build, suggesting to apply the diff as follows: --- a/build_msvc/bitcoin.sln
+++ b/build_msvc/bitcoin.sln
@@ -82,6 +82,10 @@ Global
{460FEE33-1FE1-483F-B3BF-931FF8E969A5}.Debug|x64.Build.0 = Debug|x64
{460FEE33-1FE1-483F-B3BF-931FF8E969A5}.Release|x64.ActiveCfg = Release|x64
{460FEE33-1FE1-483F-B3BF-931FF8E969A5}.Release|x64.Build.0 = Release|x64
+ {A938586F-1016-4C60-9B82-56123264EE14}.Debug|x64.ActiveCfg = Debug|x64
+ {A938586F-1016-4C60-9B82-56123264EE14}.Debug|x64.Build.0 = Debug|x64
+ {A938586F-1016-4C60-9B82-56123264EE14}.Release|x64.ActiveCfg = Release|x64
+ {A938586F-1016-4C60-9B82-56123264EE14}.Release|x64.Build.0 = Release|x64
{5724BA7D-A09A-4BA8-800B-C4C1561B3D69}.Debug|x64.ActiveCfg = Debug|x64
{5724BA7D-A09A-4BA8-800B-C4C1561B3D69}.Debug|x64.Build.0 = Debug|x64
{5724BA7D-A09A-4BA8-800B-C4C1561B3D69}.Release|x64.ActiveCfg = Release|x64 |
d6032c5 to
f1b1456
Compare
|
Thanks for the fixes @hebasto! Looks like the remaining test failure is a timeout? |
I believe that this PR changes are unrelated to that timeout. See: #28703. |
f1b1456 to
1239bdf
Compare
1239bdf to
04d7a98
Compare
|
Rebased a9ec7cd -> 4c387e9 (kernelInternalLib_21 -> kernelInternalLib_22, compare) |
janb84
left a comment
There was a problem hiding this comment.
ACK 4c387e9
Looks good to me, next to several builds & tests, I did a (subsection of a ) Guix build to see if there where any issues with that. It ran fine, see below.
my Guix Build Output
Host architecture: aarch64
Commit: 4c387e938015
0eea1fa55868cf288544de481d7ae5e8285f068074536723e927c20b9ece0518 guix-build-4c387e938015/output/dist-archive/bitcoin-4c387e938015.tar.gz
bf648f3ef27667e011b2c4547987527111c3d5c286933d092ad82697181c7918 guix-build-4c387e938015/output/x86_64-apple-darwin/SHA256SUMS.part
da7d979957fb90516e47e1c2a976888e934776eee59f3248be798ffb57f2a781 guix-build-4c387e938015/output/x86_64-apple-darwin/bitcoin-4c387e938015-x86_64-apple-darwin-codesigning.tar.gz
902f1ed15f8bae87129447d24de0356ec20781a813808e1b0274c815ac89072f guix-build-4c387e938015/output/x86_64-apple-darwin/bitcoin-4c387e938015-x86_64-apple-darwin-unsigned.tar.gz
6c23aa0d3c94029af56e0573927f5d634cd32444c5cebf97f405864fb2e30139 guix-build-4c387e938015/output/x86_64-apple-darwin/bitcoin-4c387e938015-x86_64-apple-darwin-unsigned.zip
dfa686c73f0f54f71d5d81cba48e8d809106ca708c2619b641df412a48d43efa guix-build-4c387e938015/output/x86_64-w64-mingw32/SHA256SUMS.part
34f7c1142fcab95318de2c15b10e3ef2f511137c3da196cf275061d2e7921095 guix-build-4c387e938015/output/x86_64-w64-mingw32/bitcoin-4c387e938015-win64-codesigning.tar.gz
9c6aec8c60d30ef857da2538c939f0d16642bb05f0dd50f2d282ea56c533f2cf guix-build-4c387e938015/output/x86_64-w64-mingw32/bitcoin-4c387e938015-win64-debug.zip
45132cb1e70e6930ad4ca85ab9ae6258e61eeee4aef8858a4902e8dceb71db5e guix-build-4c387e938015/output/x86_64-w64-mingw32/bitcoin-4c387e938015-win64-setup-unsigned.exe
7bffc2f307b721320cc5358ce79945fe241eec208b86d969affecbe5d14f9667 guix-build-4c387e938015/output/x86_64-w64-mingw32/bitcoin-4c387e938015-win64-unsigned.zip|
Rebased 4c387e9 -> 5656bfa (kernelInternalLib_22 -> kernelInternalLib_23, compare) |
|
It could make sense to keep |
That was not the intention, forgot that it was just empty for now and was expecting a compile error in case I missed it. Fixed it now. |
|
re-ACK 5f096da Only rebased since last review. |
|
Rebased 5656bfa -> ba91c51 (kernelInternalLib_23 -> kernelInternalLib_24, compare)
|
|
Rebased ba91c51 -> b828264 (kernelInternalLib_24 -> kernelInternalLib_25, compare)
|
|
Rebased b828264 -> db85819 (kernelInternalLib_25 -> kernelInternalLib_26, compare)
|
To facilitate compiling the external kernel library with different symbol visibility, re-use the same source file list from its dependent internal counterpart.
|
Rebased db85819 -> 1188944 (kernelInternalLib_26 -> kernelInternalLib_27, compare)
|
This PR introduces a new
libbitcoin_kernelinternal library. It completes the internal library design as laid out in doc/design/libraries.md. Since theutillibrary contains a bunch of modules that are not required by the kernel library, a newkernel_utillibrary is introduced as well that only consists of the modules required by the kernel library. The externallibbitcoinkernellibrary now re-uses the compiled objects from the internal libraries.There is a trade-off to this. Since we don't manually export symbols from the kernel library yet, this would make the library unusable if
REDUCE_EXPORTS=ON. For now this means that the patch here introduces a separate source file list for the external library that gets populated by the source files of its static dependents.