-
Notifications
You must be signed in to change notification settings - Fork 37.8k
depends: Build secondary deps statically. #16041
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
depends: Build secondary deps statically. #16041
Conversation
740303c
to
a08982c
Compare
Concept ACK |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. 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. |
a08982c
to
256b204
Compare
Concept ACK |
256b204
to
27226e6
Compare
Added more detailed justifications to |
Rebooted all the tests. |
utACK 27226e6 |
utACK 27226e6 |
1 similar comment
utACK 27226e6
|
27226e6
to
1420928
Compare
Update: squashed the two commits. Let's merge this first as #15844 is based on this PR. |
Secondary dependencies don't need to be shared.
1420928
to
3560d8c
Compare
Concept ACK, thanks for picking this up! Reviewing. |
libX11-xcb.so.1.0.0
libX11.la
libX11.so
libX11.so.6
libX11.so.6.3.0
libXau.a
libXau.la
+libXext.a
libXext.la
-libXext.so
-libXext.so.6
-libXext.so.6.4.0
libboost_chrono-mt.a
libboost_filesystem-mt.a
libboost_prg_exec_monitor-mt.a
libboost_system-mt.a
libboost_test_exec_monitor-mt.a
libboost_thread-mt.a
libboost_timer-mt.a
libboost_unit_test_framework-mt.a
libcrypto.a
libdb-4.8.a
libdb.a
libdb_cxx-4.8.a
libdb_cxx.a
+libdbus-1.a
libdbus-1.la
-libdbus-1.so
-libdbus-1.so.3
-libdbus-1.so.3.14.11
libevent.a
libevent.la
libevent_core.a
libevent_core.la
libevent_extra.a
libevent_extra.la
libevent_pthreads.a
libevent_pthreads.la
+libexpat.a
libexpat.la
-libexpat.so
-libexpat.so.1
-libexpat.so.1.6.8
libfontconfig.la
libfontconfig.so
libfontconfig.so.1
libfontconfig.so.1.9.2
libfreetype.la
libfreetype.so
libfreetype.so.6 |
A few things about this make me nervous, so I'm going to look in more depth.
|
In this PR we identify 4 secondary deps that should be built statically:
However, only expat required being built Results of my investigation (please verify these as I might be completely wrong): libXextThe only package that we declare as depending on libXext is qt, and it doesn't actually... Tested by removing the package definition and references to it, everything seems to compile fine. xtransIt seems that xtrans is just code+headers and not a library that needs to be linked in. We can verify this by looking at the build outputs. Its configure is very confused as to why we supply it with dbusThe only reference to dbus is in the configure options for qt: |
8541cbe depends: libX*: --disable-malloc0returnsnull in conf (Carl Dong) 0e75263 depends: libXext: Bump to 1.3.3 to fix _XEatDataWords (Carl Dong) 683b7d7 depends: Purge libtool archives (Carl Dong) 1420928 depends: Build secondary deps statically. (Carl Dong) Pull request description: ``` We use pkg-config where we can, which generally replaces libtool at a higher level and does not have the same downsides as libtool. These archives sit in our depends tree with no purpose and pollute the final bitcoin build with massive overlinking. ``` See [here](https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives) for an explanation of the various problems libtool archives can cause. Unrelated in every way except in spirit: `-D__LIBTOOL_IS_A_FOOL__`!! ----- This PR is based on #16041, and therefore should be merged after #16041. ACKs for commit 8541cb: Tree-SHA512: 76030cf32361f0b1cfe14e3827a0cbec99994e7da00a56194ca40cf6cf7d87f78552f49d03d41ce9cf9b642992b90d993578ed1f0ad6bae15cd3f1c88dfaa4b0
Needs rebase |
Oops. Didn't realize this was a separate PR and reviewed this as part of #15844. |
8541cbe depends: libX*: --disable-malloc0returnsnull in conf (Carl Dong) 0e75263 depends: libXext: Bump to 1.3.3 to fix _XEatDataWords (Carl Dong) 683b7d7 depends: Purge libtool archives (Carl Dong) 1420928 depends: Build secondary deps statically. (Carl Dong) Pull request description: ``` We use pkg-config where we can, which generally replaces libtool at a higher level and does not have the same downsides as libtool. These archives sit in our depends tree with no purpose and pollute the final bitcoin build with massive overlinking. ``` See [here](https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives) for an explanation of the various problems libtool archives can cause. Unrelated in every way except in spirit: `-D__LIBTOOL_IS_A_FOOL__`!! ----- This PR is based on bitcoin#16041, and therefore should be merged after bitcoin#16041. ACKs for commit 8541cb: Tree-SHA512: 76030cf32361f0b1cfe14e3827a0cbec99994e7da00a56194ca40cf6cf7d87f78552f49d03d41ce9cf9b642992b90d993578ed1f0ad6bae15cd3f1c88dfaa4b0
Summary: ``` We use pkg-config where we can, which generally replaces libtool at a higher level and does not have the same downsides as libtool. These archives sit in our depends tree with no purpose and pollute the final bitcoin build with massive overlinking. See here for an explanation of the various problems libtool archives can cause: https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives ``` Backport of core [[bitcoin/bitcoin#15844 | PR15844]]. This does actually more that described, as it includes [[bitcoin/bitcoin#16041 | PR16041]] (it was merged as 1 PR instead of 2). Test Plan: Run the Gitian builds. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5621
Summary: ``` We use pkg-config where we can, which generally replaces libtool at a higher level and does not have the same downsides as libtool. These archives sit in our depends tree with no purpose and pollute the final bitcoin build with massive overlinking. See here for an explanation of the various problems libtool archives can cause: https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Handling_Libtool_Archives ``` Backport of core [[bitcoin/bitcoin#15844 | PR15844]]. This does actually more that described, as it includes [[bitcoin/bitcoin#16041 | PR16041]] (it was merged as 1 PR instead of 2). Test Plan: Run the Gitian builds. Reviewers: #bitcoin_abc, deadalnix Reviewed By: #bitcoin_abc, deadalnix Differential Revision: https://reviews.bitcoinabc.org/D5621
Secondary dependencies don't need to be shared. Comes at theuni's request.
To do: add documentation so future secondary dependencies aren't shared.DONELet's merge this first as #15844 is based on this PR.