-
Notifications
You must be signed in to change notification settings - Fork 37.7k
build: Introduce internal kernel library #28690
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
base: master
Are you sure you want to change the base?
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 react with 👎 to this comment and the bot will ignore it on the next update. 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
01a43b2
to
e4d80d7
Compare
Rebased 7e6e43a -> e4d80d7 (kernelInternalLib_17 -> kernelInternalLib_18, compare) Fixed confilict with #31375 |
Concept ACK
I agree with you, was having a similar thought on the internal library |
e4d80d7
to
8138742
Compare
Rebased e4d80d7 -> 8138742 (kernelInternalLib_18 -> kernelInternalLib_19, compare)
|
To facilitate compiling the external kernel library with different symbol visibility, re-use the same source file list from its dependent internal counterpart.
8138742
to
78ed83b
Compare
Rebased 8138742 -> 78ed83b (kernelInternalLib_19 -> kernelInternalLib_20, compare) Fixed conflict with #33077 |
This PR introduces a new
libbitcoin_kernel
internal library. It completes the internal library design as laid out in doc/design/libraries.md. Since theutil
library contains a bunch of modules that are not required by the kernel library, a newkernel_util
library is introduced as well that only consists of the modules required by the kernel library. The externallibbitcoinkernel
library 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.