Commit graph

387 commits

Author SHA1 Message Date
fanquake
cdf34be7c9
guix: remove util-linux 2024-11-13 15:51:17 +00:00
Hennadii Stepanov
788c1324f3
build: Unify -logsourcelocations format 2024-11-04 11:30:43 +00:00
Hennadii Stepanov
4d3da08d1b
guix: Enable CET for glibc package 2024-10-17 09:32:39 +01:00
Hennadii Stepanov
f1daa80521
guix: Drop no longer needed PATH modification 2024-09-27 12:51:36 +01:00
fanquake
89bf11b807
guix: build Linux GCC with --enable-cet
Similar to #29695, and in the same vein of explicitly configuring
hardening options in our release toolchain.

See https://gcc.gnu.org/install/configure.html:

> Enable building target run-time libraries with control-flow instrumentation,
> see `-fcf-protection option`. When --enable-cet is specified target
> libraries are configured to add `-fcf-protection` and, if needed,
> other target specific options to a set of building options.

> `--enable-cet=auto` is default. CET is enabled on Linux/x86 if target
> binutils supports Intel CET instructions and disabled otherwise.
> In this case, the target libraries are configured to get additional
> `-fcf-protection` option.
2024-09-13 10:28:31 +01:00
Hennadii Stepanov
0004dcc7b1
guix: Drop unused autotools packages 2024-08-30 14:44:21 +01:00
merge-script
3ee1521c04
Merge bitcoin/bitcoin#30730: guix: Bump time machine to 53396a22afc04536ddf75d8f82ad2eafa5082725
60d4398a34 guix: drop GCC 12.4.0 package (fanquake)
5ed1511e50 guix: bump time-machine to 53396a22afc04536ddf75d8f82ad2eafa5082725 (fanquake)

Pull request description:

  Followup to #30511.
  https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9aa38f98cbd41644abe2c43bb4f44f74df642df2 landed.

  Linux headers `6.1.102` -> `6.1.106`

ACKs for top commit:
  hebasto:
    ACK 60d4398a34.
  TheCharlatan:
    ACK 60d4398a34

Tree-SHA512: 6ff4372897e5abb15c28d4607915f777585d54b7a35787ac46f7ddca0d695dc60a7da532d8beb37e2df1de12511220f0dc6428f68d6a4db628de816e2d339914
2024-08-30 09:51:43 +01:00
merge-script
7a226eb4d9
Merge bitcoin/bitcoin#30653: guix: Drop unused module from manifest
Some checks are pending
CI / test each commit (push) Waiting to run
CI / macOS 13 native, x86_64, no depends, sqlite only, gui (push) Waiting to run
CI / Win64 native, VS 2022 (push) Waiting to run
CI / ASan + LSan + UBSan + integer, no depends, USDT (push) Waiting to run
c7fb80a08f guix: Drop unused module from manifest (Hennadii Stepanov)

Pull request description:

  My Guix build:
  ```
  x86_64
  170df52c2238510bd166f3fb1c4c3c11d2c1480a2e468fd532cb4d0435ac11cf  guix-build-c7fb80a08f98/output/aarch64-linux-gnu/SHA256SUMS.part
  54e71ef5135464f58e3db4a3b893fa2f26a2c9cfb465699a363bb59a0d1bd94f  guix-build-c7fb80a08f98/output/aarch64-linux-gnu/bitcoin-c7fb80a08f98-aarch64-linux-gnu-debug.tar.gz
  806d6042151e0af026748379b9bbbfea53d4c91555b2f0d05ed11faf83f429bb  guix-build-c7fb80a08f98/output/aarch64-linux-gnu/bitcoin-c7fb80a08f98-aarch64-linux-gnu.tar.gz
  96f111f81311b55c805f1ebe74c5a5bc3160819e8fc6d14aab778e6a20a5c266  guix-build-c7fb80a08f98/output/arm-linux-gnueabihf/SHA256SUMS.part
  231a29a9ffec9cc88260324da28d8443a6fd455ff0b010574af455034581aea3  guix-build-c7fb80a08f98/output/arm-linux-gnueabihf/bitcoin-c7fb80a08f98-arm-linux-gnueabihf-debug.tar.gz
  a545801e94e2a7a9859f0111be8762a2a7e5ea4636eed86ac95d17f2f4cdb37a  guix-build-c7fb80a08f98/output/arm-linux-gnueabihf/bitcoin-c7fb80a08f98-arm-linux-gnueabihf.tar.gz
  f565c1c7c10cc5c36f2206c3c5aab54422f20e38185c43f4dbd91c12cb33d10d  guix-build-c7fb80a08f98/output/arm64-apple-darwin/SHA256SUMS.part
  0b0d3d7e7300984063109f2ea23fabdf3961fa337ff28ed602a22965cdf6b499  guix-build-c7fb80a08f98/output/arm64-apple-darwin/bitcoin-c7fb80a08f98-arm64-apple-darwin-unsigned.tar.gz
  78cfb54230e3b054c4bb121925844720be52269db6a63161eeebe93ebfb2dc21  guix-build-c7fb80a08f98/output/arm64-apple-darwin/bitcoin-c7fb80a08f98-arm64-apple-darwin-unsigned.zip
  95124a8019053cc296187c0332e3b5b3acef401298baadacf52713068764dd99  guix-build-c7fb80a08f98/output/arm64-apple-darwin/bitcoin-c7fb80a08f98-arm64-apple-darwin.tar.gz
  a8b36c808c7b57cb2a20e43af36749c07f14392b9816752b68a986f9124806fc  guix-build-c7fb80a08f98/output/dist-archive/bitcoin-c7fb80a08f98.tar.gz
  f7221bc6ed56b5af1196f67c776bd80de9f2b9dc8bf84b0a8602a586fda43079  guix-build-c7fb80a08f98/output/powerpc64-linux-gnu/SHA256SUMS.part
  e04410e453a9fcefacdbe9a1a43ad1f9ec6a36d622d258ea4208af1dc461692d  guix-build-c7fb80a08f98/output/powerpc64-linux-gnu/bitcoin-c7fb80a08f98-powerpc64-linux-gnu-debug.tar.gz
  64135391e147c7357b17b72b1e54e93a9a7931f90c4d14a2066f1c9a160881a0  guix-build-c7fb80a08f98/output/powerpc64-linux-gnu/bitcoin-c7fb80a08f98-powerpc64-linux-gnu.tar.gz
  3f2375042bc29a7f87cadc6ba3ce7389fa5e6f6c53b32836c7fc249e4ba9838e  guix-build-c7fb80a08f98/output/riscv64-linux-gnu/SHA256SUMS.part
  33b8396ab0e1fd3121a85f1a80d81d52fe9be151f401f08283f9d5b8ecbd251b  guix-build-c7fb80a08f98/output/riscv64-linux-gnu/bitcoin-c7fb80a08f98-riscv64-linux-gnu-debug.tar.gz
  418a264d0bcde9665d5760061284ca3b5533c9f63769a76bc64c69d8b3c7d82f  guix-build-c7fb80a08f98/output/riscv64-linux-gnu/bitcoin-c7fb80a08f98-riscv64-linux-gnu.tar.gz
  3fed3e2d050059694da965e1752468c3d054f1acf5b774242eb8e7a73a775af5  guix-build-c7fb80a08f98/output/x86_64-apple-darwin/SHA256SUMS.part
  a5d2ddf1c1bbc22d104ef08d0bd73f8d9c5c8404791df66d51ffc76a0c638fb2  guix-build-c7fb80a08f98/output/x86_64-apple-darwin/bitcoin-c7fb80a08f98-x86_64-apple-darwin-unsigned.tar.gz
  bc3a44ca40c5bad631b76c240a7f1f46d0597cbf0c2389473d856e29775b3f1a  guix-build-c7fb80a08f98/output/x86_64-apple-darwin/bitcoin-c7fb80a08f98-x86_64-apple-darwin-unsigned.zip
  5b2f0aaf4c023cda33fe952f18a977cc735c5e1524b45e734f99641ee605cc5d  guix-build-c7fb80a08f98/output/x86_64-apple-darwin/bitcoin-c7fb80a08f98-x86_64-apple-darwin.tar.gz
  e56223d773f7d1a0a0dbe99d98e60420f729987f14fb98f18eabe6575352f68c  guix-build-c7fb80a08f98/output/x86_64-linux-gnu/SHA256SUMS.part
  6e4a27fcafb1ec2dda41c7e486897ff51a4447d0ebfa6be30bdef6648c673786  guix-build-c7fb80a08f98/output/x86_64-linux-gnu/bitcoin-c7fb80a08f98-x86_64-linux-gnu-debug.tar.gz
  3ff4232266a461bb55518a1e8834867e7e79c02914c59eb8f6b5052a26aefc12  guix-build-c7fb80a08f98/output/x86_64-linux-gnu/bitcoin-c7fb80a08f98-x86_64-linux-gnu.tar.gz
  fd2cfb0befaf849e98574698ddab121a01c7894bb5acc789b9eb9c3bbe78e7b2  guix-build-c7fb80a08f98/output/x86_64-w64-mingw32/SHA256SUMS.part
  58a2f67ecc94b2daad37ab99e74708c062094eb047136e57451d89f856d0c9aa  guix-build-c7fb80a08f98/output/x86_64-w64-mingw32/bitcoin-c7fb80a08f98-win64-debug.zip
  6ccf68edc22dab4cc3171f3d8cdaed0444c438bca812512586edd81029de2c57  guix-build-c7fb80a08f98/output/x86_64-w64-mingw32/bitcoin-c7fb80a08f98-win64-setup-unsigned.exe
  d466b5bc2ace63995ca22943997db7c292e240cdee7c63e127ecd380a1ca9558  guix-build-c7fb80a08f98/output/x86_64-w64-mingw32/bitcoin-c7fb80a08f98-win64-unsigned.tar.gz
  b3fd8af55443feb8667940a18fb511e6d85ece1dd9fa0aa40f68e5ea86ab46df  guix-build-c7fb80a08f98/output/x86_64-w64-mingw32/bitcoin-c7fb80a08f98-win64.zip
  ```

ACKs for top commit:
  fanquake:
    ACK c7fb80a08f - looks like this was last used in https://github.com/bitcoin/bitcoin/pull/27179.

Tree-SHA512: 40498cb514a31609e721b3865a99b91e4ff2bf5760750a42b5b16333d905d13cf2f87481aabc679c08b9e872a6886a7c928706b6d7ada08df02672d4b5156ba1
2024-08-29 11:40:27 +01:00
fanquake
60d4398a34
guix: drop GCC 12.4.0 package
Now that 12.4.0 is upstreamed.
2024-08-28 11:18:21 +01:00
fanquake
5ed1511e50
guix: bump time-machine to 53396a22afc04536ddf75d8f82ad2eafa5082725
Includes:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=9aa38f98cbd41644abe2c43bb4f44f74df642df2.
2024-08-28 11:18:11 +01:00
Hennadii Stepanov
6ce50fd9d0
doc: Update for CMake-based build system
Co-authored-by: Lőrinc <pap.lorinc@gmail.com>
Co-authored-by: pablomartin4btc <pablomartin4btc@gmail.com>
2024-08-16 21:24:08 +01:00
Hennadii Stepanov
e821f0a37a
cmake: Migrate Guix build scripts to CMake 2024-08-16 21:19:11 +01:00
Hennadii Stepanov
c7fb80a08f
guix: Drop unused module from manifest 2024-08-14 10:44:16 +01:00
Ava Chow
5b0059fdf9
Merge bitcoin/bitcoin#29999: guix: fix suggested fake date for openssl-1.1.1l
8fee5355ee guix: fix suggested fake date for openssl -1.1.1l (Sjors Provoost)

Pull request description:

  Using `2020-10-01` as the fake timestamp will cause many test failures with `/gnu/store/bfirgq65ndhf63nn4q6vlkbha9zd931q-openssl-1.1.1l.drv`. I didn't investigate why, but I guess because it's _before_ the test certificates were created. They expired in June 2022. I tried a month before that, which worked.

  Also fixes layout of instructions.

ACKs for top commit:
  achow101:
    ACK 8fee5355ee
  maflcko:
    review ACK 8fee5355ee

Tree-SHA512: df5dd3aa961e25bd57d0b8b73daeb3ec76856b06e35277f24b6b19be81774512228f75e2b779afa8ea92fcc39beb869f43e0c57fba19ad16a82812e7c0bea38b
2024-08-12 15:22:58 -04:00
fanquake
eca20bead2
guix: bump time-machine to 7bf1d7aeaffba15c4f680f93ae88fbef25427252
Includes:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=d428237642e1e4ac8fda4597205ffec89926c0ec.

which removes the need to build Python2, and OpenSSL 1.x when building
for Windows.
2024-08-08 10:44:43 +01:00
merge-script
2401a24387
Merge bitcoin/bitcoin#30452: guix: bump time-machine to efc26826400762207cde9f23802cfe75a737963c
6ee000e56f guix: bump time-machine to efc26826400762207cde9f23802cfe75a737963c (fanquake)
cbeb2c20e1 guix: patch /gnu/store paths out of winpthreads (fanquake)

Pull request description:

  Needed for https://github.com/bitcoin/bitcoin/issues/30210. This doesn't switch runtimes, because upstream is
  still configured to use the old runtime. See:
  https://git.savannah.gnu.org/cgit/guix.git/commit/?id=17188be0f723e00377b21b767f5447d7938a116e.

  git-mimimal `2.45.1` -> `2.45.2`
  Kernel Headers `6.1.92` -> `6.1.100`
  LLVM `18.1.6` -> `18.1.8`
  mingw-w64 `11.0.1` -> `12.0.0`
  NSIS `3.09` -> `3.10`
  patch `2.7.6` -> `2.7.6-0.f144b35`

ACKs for top commit:
  TheCharlatan:
    ACK 6ee000e56f

Tree-SHA512: f4f99d16dd8cab5b2b7c5d82111af86de20e1669cc3b4054d72ab4a67b2956757df170f0df28c96d18653c1c9d2ebdd0ecc441005726a20cd963d98513b4a851
2024-07-31 09:50:10 +01:00
merge-script
4c62f4b535
Merge bitcoin/bitcoin#30451: depends: remove Darwin ENV unsetting
bda537f7c4 depends: remove ENV unsetting for darwin (fanquake)
1807760f09 guix: improve ENV unsetting for macOS (fanquake)
0b2aeee21d depends: patch explicit -lm usage out of Qt tools (fanquake)

Pull request description:

  Now that we use the native compiler, and have fixed Qt, and these vars
  are (almost) unset in Guix, we can remove the unsetting from our compiler
  command here.

  I couldn't manage to make a darwin-clang-cross only exclusion of `-lm` work properly
  for Qt, so opted for just removing the explicit link entirely. I do not think this should have
  any other unwanted side-effects.

  Fixes #21552.

ACKs for top commit:
  TheCharlatan:
    ACK bda537f7c4

Tree-SHA512: 97a2d85de7d4b1d65717ecb521399ecba5f53863b8aef21af62ede5ceee59ee1a9392663da3a3852cad1b6d8b420dd4b0b5f0eea38d30a81785d8b2718620b5f
2024-07-30 14:32:14 +01:00
fanquake
e6df3485ed
guix: move bison from global scope, to Linux
This is only needed for the Qt build, on Linux, so does not need to be
built/present for the macOS or Windows builds.
2024-07-26 17:17:45 +01:00
fanquake
6ee000e56f
guix: bump time-machine to efc26826400762207cde9f23802cfe75a737963c
Needed for 30210. This doesn't switch runtimes, because upstream is
still configured to use the old runtime. See:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=17188be0f723e00377b21b767f5447d7938a116e.

git-mimimal 2.45.1 -> 2.45.2
Kernel Headers 6.1.92 -> 6.1.100
LLVM 18.1.6 -> 18.1.8
mingw-w64 11.0.1 -> 12.0.0
NSIS 3.09 -> 3.10
patch 2.7.6 -> 2.7.6-0.f144b35
2024-07-26 09:31:16 +01:00
fanquake
cbeb2c20e1
guix: patch /gnu/store paths out of winpthreads
At the same time, align the docs for all patches that do the same thing.
2024-07-26 09:30:47 +01:00
fanquake
1807760f09
guix: improve ENV unsetting for macOS 2024-07-25 14:18:22 +01:00
fanquake
d1592d2eee
guix: use gcc-12 to compile winpthreads
Currently, winpthreads is compiled with GCC 11, when we want to be using
GCC 12 for all compilation.
2024-07-23 16:57:02 +01:00
fanquake
b23690e821
guix: use GCC 12.4.0 over 12.3.0
Our patch might be merged upstream soon:
https://lists.gnu.org/archive/html/guix-patches/2024-06/msg01025.html.

In the mean time, it's easy us for us to use the newer version of GCC.
2024-07-23 14:37:28 +01:00
fanquake
8b41ede55e
guix: consolidate back to GCC 12 toolchain for all HOSTS
Using GCC 11 for the macOS build hasn't been required since #21778, and
at this point, given a toolchain is still needed (#30206), it makes more
sense to (re-)use 12, rather than make all builders compile another
GCC toolchain.
2024-07-23 13:54:14 +01:00
fanquake
b5fc6d46a3
guix: use glibc 2.31
Set minimum required glibc to 2.31.
The glibc 2.31 branch is still maintained:
https://sourceware.org/git/?p=glibc.git;a=shortlog;h=refs/heads/release/2.31/master.

Remove the stack-protector check from test-security-check, as the test
no-longer fails, and given the control we have of the end, the actual
security-check test seems sufficient (this might also be applied to some
of the other checks).

Drops runtime support for Ubuntu Bionic 18.04 and RHEL-8 from the release binaries.
2024-06-12 10:33:17 +01:00
fanquake
e9a44faf14
depends: remove FORCE_USE_SYSTEM_CLANG 2024-06-10 13:15:23 +01:00
fanquake
9946618f61
guix: use clang-toolchain-18 for macOS build
Version is 18.1.6.
2024-06-10 13:15:22 +01:00
fanquake
2599655c1f
guix: bump time-machine to f0bb724211872cd6158fce6162e0b8c73efed126
Includes:
LLVM 18.1.x (#30201)
GCC 13.x (#29881)

git-minimal 2.41.0 -> 2.45.1
Kernel Headers 6.1.80 -> 6.1.92
moreutils 0.68 -> 0.69

Commits like
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=7b0f145802f0c2c785014293d748721678fef824,
which should improve the bootstrap situation (#30042).
2024-06-05 14:15:10 +01:00
fanquake
5f2c1d84e3
guix: show *_FLAGS variables in pre-build output
For example:
```bash
ADDITIONAL_GUIX_COMMON_FLAGS set in the ENV
ADDITIONAL_GUIX_ENVIRONMENT_FLAGS="--emulate-fhs" ./contrib/guix/guix-build
<snip>
INFO: Building f75199182133 for platform triple x86_64-linux-gnu:
      ...using reference timestamp: 1716905119
      ...running at most 10 jobs
      ...from worktree directory: '/bitcoin'
          ...bind-mounted in container to: '/bitcoin'
      ...in build directory: '/bitcoin/guix-build-f75199182133/distsrc-f75199182133-x86_64-linux-gnu'
          ...bind-mounted in container to: '/distsrc-base/distsrc-f75199182133-x86_64-linux-gnu'
      ...outputting in: '/bitcoin/guix-build-f75199182133/output/x86_64-linux-gnu'
          ...bind-mounted in container to: '/outdir-base/x86_64-linux-gnu'
      ADDITIONAL FLAGS (if set)
          ADDITIONAL_GUIX_COMMON_FLAGS: --no-substitutes
          ADDITIONAL_GUIX_ENVIRONMENT_FLAGS: --emulate-fhs
          ADDITIONAL_GUIX_TIMEMACHINE_FLAGS:
```
2024-06-03 11:56:40 +01:00
fanquake
e8c25e8a35
guix: drop binutils from macOS env 2024-05-22 08:51:34 +01:00
fanquake
555fddf646
guix: use GUIX_LD_WRAPPER_DISABLE_RPATH for all HOSTS 2024-05-22 08:51:33 +01:00
fanquake
9ec238d0f3
guix: remove ZERO_AR_DATE export
LLD enables ZERO_AR_DATE by default, setting it to zero would enable
non-determinism, setting it to any other value is ignored.

See:
https://github.com/llvm/llvm-project/blob/main/lld/docs/MachO/ld64-vs-lld.rst.
2024-05-22 08:51:33 +01:00
fanquake
c6a6b2d6fd
build: add lld into macOS build environment(s) 2024-05-22 08:51:33 +01:00
Sjors Provoost
8fee5355ee
guix: fix suggested fake date for openssl -1.1.1l
Also fix layout of instructions.
2024-04-29 20:44:37 +02:00
fanquake
b8e084b978
guix: remove no-longer-used bzip2 2024-04-19 13:01:10 +01:00
merge-script
3b70ce231e
Merge bitcoin/bitcoin#29846: guix: replace GCC unaligned VMOV patch with binutils patch
a0dc2ebcda guix: replace GCC unaligned VMOV patch with binutils patch (fanquake)

Pull request description:

  Rather than invasively patching GCC, given we have binutils 2.38 available, we can patch it to flip the default for
  `-muse-unaligned-vector-move`.

  A 1 line binutils patch, is much more maintainable than the ~300 line patch into GCC. It's also a slight inprovement in regards to patching out ualigned instructions in the release binaries. For comparison:
  Master:
  ```bash
  objdump -D bin/*.exe | rg "vmova|vmovdqa|vmovaps|vmovapd|vmovdqa64|vmovdqa32"
  141b8be20: c5 f8 28 1a                 vmovaps(%rdx), %xmm3
  1420564b3: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  1403060f3: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  140792b13: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  140cb0693: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  1415ea0f3: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  ```

  This PR:
  ```bash
  objdump -D bin/*.exe | rg "vmova|vmovdqa|vmovaps|vmovapd|vmovdqa64|vmovdqa32"
  141b8be20: c5 f8 28 1a                 vmovaps(%rdx), %xmm3
  1420564b3: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  1403060f3: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  140792b13: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  140cb0693: c5 79 29 36                 vmovapd%xmm14, (%rsi)
  ```

ACKs for top commit:
  laanwj:
    Code review ACK a0dc2ebcda

Tree-SHA512: b3b6dcd2efaaa825d32c768302651d26a120a3e47b93fafb862a1884ff68fd96edb42ea9bc9974c005c8f5a1d15c217deec0ed462cc4a3365cab1bad5a0b5fef
2024-04-17 12:22:11 +01:00
fanquake
a0dc2ebcda
guix: replace GCC unaligned VMOV patch with binutils patch
Rather than invasively patching GCC. Given we have binutils 2.38
available, we can patch it to flip the default for
`-muse-unaligned-vector-move`.
2024-04-10 13:59:43 +02:00
fanquake
05da2460db
guix: remove gcc-toolchain static from Windows build
The libs in this dir are the following:
```bash
ls /gnu/store/2vnbkrdin4rrf7ygnr80mlcglin4qqa4-gcc-toolchain-12.3.0-static/lib/lib
libanl.a           libc.a             libdl.a         libm.a
libBrokenLocale.a  libcrypt.a         libg.a          libmcheck.a
libpthread.a       librt.a
libresolv.a        libutil.a
```

These do not need to be propogated into the Windows build environment.
2024-04-07 14:06:27 +01:00
fanquake
eb78ebc064
Merge bitcoin/bitcoin#29725: depends: build libqrencode with CMake
007ea322a6 depends: switch to building libqrencode with CMake (fanquake)
884330c0a5 guix: make cmake-minimal a global requirement (fanquake)

Pull request description:

  Switch to building libqrencode with CMake. Note that upstream (https://github.com/fukuchi/libqrencode) hasn't seen any activity for ~4 years, so the odds of getting anything upstream seems low, but I've made two minor changes to the source here, which I will PR in any case.

  From an initial look I couldn't find any significant difference between the Autotools and CMake produced libs. As part of this change we move cmake-minimal in Guix into the global package set.

ACKs for top commit:
  TheCharlatan:
    ACK 007ea322a6

Tree-SHA512: c784f790ddea958082c8ae96d3744bdf99331a8799765f9d44f00861b8e2cfcab1a88a3d64af5b10e51a8d5938d55eb6a3d271790b565e50492a39d00dc0e30f
2024-04-05 15:10:14 +01:00
fanquake
71c51c161d
Merge bitcoin/bitcoin#29673: guix: use GCC 11 in macOS build env
73d92309d7 guix: use GCC 11 for macOS builds (fanquake)

Pull request description:

  Note that this is just the native compiler, which is used to build the toolchain we use to build the actual binaries.

  Partially motivated by #29091, where it could now be a bit confusing if we are explicitly using GCC 10 in our release toolchain, when our minimum required is 11 (this can't be bumped to 12 due to build issues with native tools).

  At the same time, remove `gcc-toolchain "static"` from the macOS build env.

ACKs for top commit:
  hebasto:
    ACK 73d92309d7.

Tree-SHA512: 31392290b327cc0e19498cf053b7c9eb19e70295933d650b29b29589356ad455d35b6addcdaae702a9635513c07070fb17d61bcb48445d3cb1a9d4a93aa6ddf3
2024-04-04 12:02:13 +01:00
Hennadii Stepanov
3cb80febb8
guix: Remove another leftover from #29648 2024-04-03 12:21:49 +01:00
fanquake
3b12fc7bcd
Merge bitcoin/bitcoin#29787: guix: remove errant leftover from #29648
fd8527a20e guix: remove errant leftover from #29648 (fanquake)

Pull request description:

  We no longer build a lib, so a non-existent dir is causing builds to fail.

ACKs for top commit:
  josibake:
    ACK fd8527a20e
  hebasto:
    ACK fd8527a20e.
  TheCharlatan:
    ACK fd8527a20e

Tree-SHA512: 9175a0de3f95f56939b3eaa3e89dca2cfae4996bcd84ef6b8e2872672bef39cb0550c9f4a79475d887eb8fac92c15dfa8c352648ff167d54a0b736978412226c
2024-04-02 17:05:14 +01:00
fanquake
82b47cb52b
Merge bitcoin/bitcoin#29733: build, macos: Drop unused osx_volname target
eff19fa1c8 build, macos: Drop unused `osx_volname` target (Hennadii Stepanov)

Pull request description:

  The `osx_volname` makefile target was introduced in https://github.com/bitcoin/bitcoin/pull/7192 and was used to pass the package name to Gitian scripts as a content of the `osx_volname` file.

  With the current Guix scripts, the `osx_volname` file is never read. Therefore, its creation might be omitted.

  My Guix builds:
  ```
  x86_64
  5e2d254e207d53784621c8df331c9bf4a969da667d185992402f48a5ac49f563  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/SHA256SUMS.part
  089dba70685893aca5e7c8ce1d53a07380e87ca50eda8b3a2a75aeaeb1d28e48  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.tar.gz
  390c57197c6ab4aefdde1c665d5e4ebdfb4ae5e553f8f93b017f2fad1093d110  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin-unsigned.zip
  e1edde7ca28bf26aea8d956b1d3c1725a475f2a9c148f5c36b651db4b814091c  guix-build-eff19fa1c8d7/output/arm64-apple-darwin/bitcoin-eff19fa1c8d7-arm64-apple-darwin.tar.gz
  d0096ea73a5f75cc4d3cef4ef1761ae3e48c8a63aff918f07371c5c88896e4e6  guix-build-eff19fa1c8d7/output/dist-archive/bitcoin-eff19fa1c8d7.tar.gz
  51b4affb9fd6f8aea05b7d25d29f017d0a0a145395f457caa14b9af9646b035b  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/SHA256SUMS.part
  b1df081ecf636a92754e673e5388d1d988653d4646f0b0446a4c9f14d865a265  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.tar.gz
  62e09926029d176da950d3e3db7ff8ae6cbe4c0b2ea17b084fc1d28565f91475  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin-unsigned.zip
  477dcb2382cbd447bd88a3b644b4bd736f5b67d66d42cb73fe31ffc153d3e181  guix-build-eff19fa1c8d7/output/x86_64-apple-darwin/bitcoin-eff19fa1c8d7-x86_64-apple-darwin.tar.gz
  ```

ACKs for top commit:
  Empact:
    ACK eff19fa1c8
  Sjors:
    tACK eff19fa1c8
  TheCharlatan:
    ACK eff19fa1c8

Tree-SHA512: 29714be5c58caa07b3eb99846d71bb83366dade769af022059bb3c499878adcd34cdf03b006c5da561291f373ccc59abdb83c925057ec0049465eaa8dd6ef4e1
2024-04-02 14:57:22 +01:00
fanquake
fd8527a20e
guix: remove errant leftover from #29648
We no longer build a lib, so a non-existent dir is causing builds to
fail.
2024-04-02 13:39:33 +01:00
crazeteam
52fa0d285f
doc: fix some typos
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-26 16:51:46 +00:00
Hennadii Stepanov
eff19fa1c8
build, macos: Drop unused osx_volname target 2024-03-26 12:14:59 +00:00
fanquake
884330c0a5
guix: make cmake-minimal a global requirement
Needed for switching to building miniupnpc with CMake.
2024-03-26 10:01:56 +00:00
fanquake
7850c5fe20
guix: build GCC with --enable-standard-branch-protection
To enable Branch Target Identification Mechanism and Return
Address Signing by default at configure time use the
`--enable-standard-branch-protection` option.

This is equivalent to having `-mbranch-protection=standard` during
compilation. This can be explicitly disabled during compilation
by passing the `-mbranch-protection=none` option which turns off
all types of branch protections.

See:
https://gcc.gnu.org/install/specific.html#aarch64-x-x
2024-03-21 17:33:59 +00:00
fanquake
73d92309d7
guix: use GCC 11 for macOS builds
Note that this is just the native compiler, that is used to build the
toolchain we use to build the actual binaries.

Partially motivated by 29091.
2024-03-21 11:05:39 +00:00
fanquake
cf5faf73c9
guix: bump time-machine to dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a
This includes a commit to fix building LLVM 17 on riscv64, see
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=4e26331a5ee87928a16888c36d51e270f0f10f90.

Followup to discussion in
https://github.com/bitcoin/bitcoin/pull/28880#issuecomment-1843313196.

If you don't have riscv64 hardware, this can be tested with the
following:
```bash
guix time-machine --commit=d5ca4d4fd713a9f7e17e074a1e37dda99bbb09fc -- build --target=riscv64-linux-gnu  llvm
....
riscv64-linux-gnu-ld: CMakeFiles/dsymutil.dir/dsymutil.cpp.o: undefined reference to symbol '__atomic_fetch_and_1@@LIBATOMIC_1.0'
riscv64-linux-gnu-ld: /gnu/store/i4ga0pnr1b74bir2bjyp8mcrrbsvk7d3-gcc-cross-riscv64-linux-gnu-11.3.0-lib/riscv64-linux-gnu/lib/libatomic.so.1:
  error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status

guix time-machine --commit=dc4842797bfdc5f9f3f5f725bf189c2b68bd6b5a -- build --target=riscv64-linux-gnu  llvm
....
grafting '/gnu/store/7y0j0y8jaz4mjx2nz0y42wdnxxjp6id6-llvm-17.0.6-opt-viewer' -> '/gnu/store/8xvahrrjscbprh6cjj0qp5bm9mm78wwa-llvm-17.0.6-opt-viewer'...
grafting '/gnu/store/bjhw648bz7ijd2p9hgzzdbw1q8hpagk8-llvm-17.0.6' -> '/gnu/store/x50qi8i2ywgpx6azv4k55ms0w5xjxxg5-llvm-17.0.6'...
successfully built /gnu/store/q9xvk8gzzvb4dxfzf6yi5164zd0d1vj2-llvm-17.0.6.drv
```
2024-03-14 12:18:36 +00:00