aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlaanwj <126646+laanwj@users.noreply.github.com>2022-06-25 08:24:05 +0200
committerlaanwj <126646+laanwj@users.noreply.github.com>2022-06-25 08:26:19 +0200
commit0dd34773334c7f4db7b05df30ee61b011795b46d (patch)
tree4dd5753d24d156a19568f10e5f3d31e37322e2a7
parent1da1c0dd66265b6a610bf6c21bf2090910cb4fb3 (diff)
parent8d25926643cb84805bf3a9fbb289b269198898a8 (diff)
downloadbitcoin-0dd34773334c7f4db7b05df30ee61b011795b46d.tar.xz
Merge bitcoin/bitcoin#25458: guix: parallelize LIEF build
8d25926643cb84805bf3a9fbb289b269198898a8 guix: parallelize LIEF build (fanquake) Pull request description: Even though it's (re)built infrequently, the LIEF build currently runs with a single job, and thus takes much longer to build than it should. This change modifies our packge so that the cmake invocation is done with multiple jobs, using [`parallel-job-count`](https://git.savannah.gnu.org/cgit/guix.git/tree/build-aux/compile-all.scm#n49). On a 6 core arm64 machine, this results in a ~80% speed up, and reduces the time taken to build the LIEF packge from ~19m to ~4m. Guix Build (x86_64): ```bash ba12c164915ec3f5bd916c99f75e074b935028acc7b65914d109b19caf8f86e7 guix-build-8d25926643cb/output/aarch64-linux-gnu/SHA256SUMS.part 09d062446d8e8edd1c312da83d8fb1a4998880b028afe0bef40336bc0971358f guix-build-8d25926643cb/output/aarch64-linux-gnu/bitcoin-8d25926643cb-aarch64-linux-gnu-debug.tar.gz 74f1dad26cca571ee4eafba70537067be610059f770408460ae0216fd2fa4f7f guix-build-8d25926643cb/output/aarch64-linux-gnu/bitcoin-8d25926643cb-aarch64-linux-gnu.tar.gz 900e37dd5216f06b6e32af065336a6d1aff2fead13b3394fa521401eefa5b388 guix-build-8d25926643cb/output/arm-linux-gnueabihf/SHA256SUMS.part 4c8361225f9408cd44e08421ba39a13758bbba2159a4c3f1a5562e83175904af guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf-debug.tar.gz 4780381b4e51ed99f6967975291703584e71dd2a22ea6bc77716d597f09bdbdd guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf.tar.gz 46e178b38ca9a47ebcd4dd3d037f08c49bf79faf09c032e3a0ec99974bc47bcd guix-build-8d25926643cb/output/arm64-apple-darwin/SHA256SUMS.part e44a9fa027b912a13ceb12708eaf864f5fed896887de8ec157c9c3bba24f9d64 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.dmg 82bd6c2995f1c707b0204c618f7f16a90a80b5378a856cb287bad4cdf2191467 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.tar.gz 9b28de51d7adea26ffae22f9a4db517643297aeab24467efe4916088fda496d0 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin.tar.gz 71d86ffaf1b54b1dfb0ee6a978c2d3c800742d82a7845967becdd88b1ba4cbf4 guix-build-8d25926643cb/output/dist-archive/bitcoin-8d25926643cb.tar.gz 9c19a5dd32586fa1a3e82a1d7882ac248dc4bd7fe525c0282b245f04d9618e4b guix-build-8d25926643cb/output/powerpc64-linux-gnu/SHA256SUMS.part a091e4dce267164a757067c279d7df609b112867944a3689fbd9b6fefa9dcd40 guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu-debug.tar.gz 195c8d6596acfe78f1f250b4ec8598c9b8c1e3420b96b8dd16529f194f4f5602 guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu.tar.gz 78fe3b028498818532ce2120d7262ddddd2533ee58d3d04fc7908d2a3384eac9 guix-build-8d25926643cb/output/powerpc64le-linux-gnu/SHA256SUMS.part 52fba781d6637751500febb1470dd653933da2cf8f7ae052416438a80a925d7a guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu-debug.tar.gz 4cb12dce174a58ccb46381efcfc27f9d49ea275cfbda68f334a73c2fa92fe18e guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu.tar.gz c8f5eb94bbf9577f59ae2a679e6807ba65380356656cc335d1e13390e17878bc guix-build-8d25926643cb/output/riscv64-linux-gnu/SHA256SUMS.part 97e28f9033341f08ab16a4116d593fb4b63da8838da62af49f64f9d6f26b8276 guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu-debug.tar.gz 1fb6c289347fbc6c13a7eb189b2a1bdf84c94b16f38dd786bdcc2a8ee0b6d136 guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu.tar.gz 1080f0e8e6ee9aff33b47fe90f3f55df368cd3b464bc60eebc1e0092a37bc957 guix-build-8d25926643cb/output/x86_64-apple-darwin/SHA256SUMS.part 7cd7d4b68e2ec47bcec035b77c956a832453ac1589c7f552285623f5ea84a354 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.dmg 9283cfe406694d7f1edc78acaddd817aebb7f2c7397b21687e4410ab71078773 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.tar.gz e96b0ad265db5f990c087bc857272c7d6ede32cd89dc8fd201c4fd25b9bdf072 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin.tar.gz a3ff233ea536e9e6c19eecca54a7703dad901b4aab9b9606a2203af844be7f57 guix-build-8d25926643cb/output/x86_64-linux-gnu/SHA256SUMS.part b48d92a330f20cc9cfb8d9574c2e0190e5ee497120f7dbd0bb00e5001605ef3a guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu-debug.tar.gz d06d54c2bdd66e7031e1ed2da411343c665763e43312eee87a7f575db799a450 guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu.tar.gz 7164b2b3caa3ca56dc10098474325f92c328355fee7f1464069b99b72853bab1 guix-build-8d25926643cb/output/x86_64-w64-mingw32/SHA256SUMS.part f01a344bd8715479955911a465097bb196daffa04c8c334cab41e22529ad2f5c guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-debug.zip 5ae8999fdc66ef75ce87e1824b3fcbbb2278104f3e2a7b50a90d10e92c974673 guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-setup-unsigned.exe 6beb94dbf0c843d80480901880074e7d1bdf9b9dce2153ac8980c27b484d1fe5 guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-unsigned.tar.gz de36858355e4053cd2870782072a073d1d2e39627b4ff7c3d48699f419966d20 guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64.zip ``` Guix Build (arm64): ```bash 51703356187e978d0b6a2cafd7533554b9860f1bf934547ea2fa6e673d8c2009 guix-build-8d25926643cb/output/arm-linux-gnueabihf/SHA256SUMS.part e66aad4e90f7c88e839fe9c8c322b204d9c480812e5890d6b385aeb67893e3a0 guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf-debug.tar.gz 382c99aa79a92d9e6854490ee184ac8e7bf1ac1b9ddcab98421d959ba4c4797c guix-build-8d25926643cb/output/arm-linux-gnueabihf/bitcoin-8d25926643cb-arm-linux-gnueabihf.tar.gz 82f81c109a11a16cf56a5d4029cf7636c34a351f39902ec99d9b2da40e5b3073 guix-build-8d25926643cb/output/arm64-apple-darwin/SHA256SUMS.part e62438b4cb68a5123f2e91c8711b5cd24e1567693b142174321a79c5c9c3e040 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.dmg 3bd0bc61c2f1d8b30db8dc0fb25a6f73d95416115ccd101922e962852d2f2fd4 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin-unsigned.tar.gz 3b987efd79203b0257b1590926106b890d08a0e3d3b0c9ea6e3194c3f4d9cab5 guix-build-8d25926643cb/output/arm64-apple-darwin/bitcoin-8d25926643cb-arm64-apple-darwin.tar.gz 71d86ffaf1b54b1dfb0ee6a978c2d3c800742d82a7845967becdd88b1ba4cbf4 guix-build-8d25926643cb/output/dist-archive/bitcoin-8d25926643cb.tar.gz bcfbdf2389275b7982a0f0f02ce6a0032b6c4688a56dee882f0b4da5985bffa5 guix-build-8d25926643cb/output/powerpc64-linux-gnu/SHA256SUMS.part 61ec34aa20de6281c4749961e09cbdd133e46397bee882fd2c211554b311bc9b guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu-debug.tar.gz 8b96152ec8dfde4f2b2046f2c54bd13ea066170a4eaa6b63054fe6e9eabf0427 guix-build-8d25926643cb/output/powerpc64-linux-gnu/bitcoin-8d25926643cb-powerpc64-linux-gnu.tar.gz 78ae0da590b2c174e3875aceccbd8b3195578408770f4c1c29c2d135aa19d638 guix-build-8d25926643cb/output/powerpc64le-linux-gnu/SHA256SUMS.part e755b3cf2a3c2a1671d3d312ab8b45abc0e544e978b01c7645939bb2d5d16a63 guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu-debug.tar.gz 4bdafdc83c7a81cfa152036a5366c09862559002257e1727ff7f930e7f6e6c91 guix-build-8d25926643cb/output/powerpc64le-linux-gnu/bitcoin-8d25926643cb-powerpc64le-linux-gnu.tar.gz 64bfcba320ebcc81bdaecf932807a6f487b32a52b7ddccb6c794c4f2e0c3e1c3 guix-build-8d25926643cb/output/riscv64-linux-gnu/SHA256SUMS.part c0eebeb9e1fb441db397c33b833138facdde0e984c5a3d48b3957487867c98c7 guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu-debug.tar.gz 97b2b432cf7c628c9960768057f9c46754c01860c3e77a8baca29465f18ad120 guix-build-8d25926643cb/output/riscv64-linux-gnu/bitcoin-8d25926643cb-riscv64-linux-gnu.tar.gz 1080f0e8e6ee9aff33b47fe90f3f55df368cd3b464bc60eebc1e0092a37bc957 guix-build-8d25926643cb/output/x86_64-apple-darwin/SHA256SUMS.part 7cd7d4b68e2ec47bcec035b77c956a832453ac1589c7f552285623f5ea84a354 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.dmg 9283cfe406694d7f1edc78acaddd817aebb7f2c7397b21687e4410ab71078773 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin-unsigned.tar.gz e96b0ad265db5f990c087bc857272c7d6ede32cd89dc8fd201c4fd25b9bdf072 guix-build-8d25926643cb/output/x86_64-apple-darwin/bitcoin-8d25926643cb-x86_64-apple-darwin.tar.gz 74ee4531452feffa90874cfd8c96d3b941627bd5cbb4a6977d393a2b08a13e47 guix-build-8d25926643cb/output/x86_64-linux-gnu/SHA256SUMS.part 15815a3269a2a71047afe635765f79d9b31ba08b62cad09bad17ca865f522afb guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu-debug.tar.gz 6146bf0ffba945d4a21e36fa0857c5bedc091e953a79ad5782008d759b579c94 guix-build-8d25926643cb/output/x86_64-linux-gnu/bitcoin-8d25926643cb-x86_64-linux-gnu.tar.gz 4c0fbf62b7b76ec14b41eb10cd2f0ae4ef27028044e029a02abad3aa290a6123 guix-build-8d25926643cb/output/x86_64-w64-mingw32/SHA256SUMS.part 241955fd1c457ba4206814bfdd7652cd4975d68ec905ec9d80a45d3ddd69e0bf guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-debug.zip 5ae8999fdc66ef75ce87e1824b3fcbbb2278104f3e2a7b50a90d10e92c974673 guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-setup-unsigned.exe 6beb94dbf0c843d80480901880074e7d1bdf9b9dce2153ac8980c27b484d1fe5 guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64-unsigned.tar.gz 0eeacc664ad0fb89f177fa6271f8aa573e177804121a7ef2391f06cd56cdc74a guix-build-8d25926643cb/output/x86_64-w64-mingw32/bitcoin-8d25926643cb-win64.zip ``` ACKs for top commit: laanwj: Code review ACK 8d25926643cb84805bf3a9fbb289b269198898a8 Tree-SHA512: 2da8037cc60b28ff210c392785e750f33893d9e0b223ac8c5a66cc3eec8f0558c2af7c31494b6075974180fd0fcf34675b5071fe19ad112f379a7489ef1a1a9a
-rw-r--r--contrib/guix/manifest.scm7
1 files changed, 7 insertions, 0 deletions
diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm
index d35ad85e56..acb7ff9912 100644
--- a/contrib/guix/manifest.scm
+++ b/contrib/guix/manifest.scm
@@ -215,6 +215,13 @@ chain for " target " development."))
(base32
"026jchj56q25v6gc0754dj9cj5hz5zaza8ij93y5ga94w20kzm9q"))))
(build-system python-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'parallel-jobs
+ ;; build with multiple cores
+ (lambda _
+ (substitute* "setup.py" (("self.parallel if self.parallel else 1") (number->string (parallel-job-count)))))))))
(native-inputs
`(("cmake" ,cmake)))
(home-page "https://github.com/lief-project/LIEF")