Commit graph

340 commits

Author SHA1 Message Date
crazeteam
52fa0d285f
doc: fix some typos
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-26 16:51:46 +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
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
fanquake
10d56530e0
guix: temporarily disable powerpcle taget
There non-determinism issues when compiling for this target across
x86_64 and aarch64.
2024-03-12 16:26:27 +00:00
fanquake
001412a4d2
guix: use GCC 12.3.0
Retain native GCC 10 toolchain for macOS, to prevent compile failures in
native tools (this will be removed entirely when we tansition to LLD).
Update the vmov-alignment patch, for changes in GCC 12.
2024-03-12 16:26:27 +00:00
fanquake
82ba0f80a0
Merge bitcoin/bitcoin#28962: doc: Rework guix docs after 1.4 release
fad444f6e1 doc: Rework guix docs after 1.4 release (MarcoFalke)

Pull request description:

  Follow-up to https://github.com/bitcoin/bitcoin/pull/28902

  Fixes https://github.com/bitcoin/bitcoin/issues/28957

ACKs for top commit:
  TheCharlatan:
    ACK fad444f6e1
  fanquake:
    ACK fad444f6e1

Tree-SHA512: 23f270b438ede4e3173da68e63c1d022e2ef23bfd83f0ec038ec63a62348038722278385c5dac63ac29a460b4b61f23d8c9939667e00a1a3571b041d3eecb4cb
2024-01-05 17:44:37 +00:00
fanquake
558250dec1
guix: use clang-toolchain-17 for macOS build
Version is 17.0.6.
2023-12-21 09:37:33 +00:00
MarcoFalke
fad444f6e1
doc: Rework guix docs after 1.4 release 2023-12-18 10:31:11 +01:00
MarcoFalke
fa87a2072b
build: Bump guix time-machine to unlock riscv64 metal 2023-12-14 11:41:40 +01:00
fanquake
cdb772313c
Merge bitcoin/bitcoin#28965: guix: remove input labels
a4980da1ce guix: remove input labels (fanquake)

Pull request description:

  Migrate package definitions to use the newer format for propogated inputs. See https://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages.

  This change remains compatible with Guix 1.2.0+.

  See also: https://guix.gnu.org/blog/2021/the-big-change/

  Guix Build (aarch64 & x86_64):
  ```bash
  4627c4eb83764f787f48b2aeab87b65bbaacb9ebfe33a5733d713165eec779af  guix-build-a4980da1ce5e/output/aarch64-linux-gnu/SHA256SUMS.part
  ecdd6db7fe0ee45fee1bd91ceaf23c0d8154ed5ad73586b74d86ee36964e18d4  guix-build-a4980da1ce5e/output/aarch64-linux-gnu/bitcoin-a4980da1ce5e-aarch64-linux-gnu-debug.tar.gz
  5f78980f95f3968248c27c4acd9993ec150ed3fa32802d89ccc6c6dc661a41bd  guix-build-a4980da1ce5e/output/aarch64-linux-gnu/bitcoin-a4980da1ce5e-aarch64-linux-gnu.tar.gz
  9af3dff2a8a4decf73048acea67d05f76d54ff84cecde833ea6860825bdaddc3  guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/SHA256SUMS.part
  f53c6a5a229462a71f477db6f91112a2e9d31aafef294fca3c893916e904e2ed  guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/bitcoin-a4980da1ce5e-arm-linux-gnueabihf-debug.tar.gz
  6ed01ecb71ed32098f70c8d667b1a48305b4b5b10f7bfc575eb8b5f787fe9534  guix-build-a4980da1ce5e/output/arm-linux-gnueabihf/bitcoin-a4980da1ce5e-arm-linux-gnueabihf.tar.gz
  6ceaaa7dc2959626f280b1e1de28ac9ff9223216e1a3fa333cdd55c416ff550d  guix-build-a4980da1ce5e/output/arm64-apple-darwin/SHA256SUMS.part
  633df184701a21746ee56a5de6e3705c229eac8712b9a1563a82f4de52130d05  guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin-unsigned.tar.gz
  23b94cb4e870d71ae60bbb5a974362bbfabe901a73eeeb9d3bb5fbd70f5d649e  guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin-unsigned.zip
  f60b802b3e92fb9cf3b45b835f6cfb8988221cfdd39146ee3a11dbab977733bc  guix-build-a4980da1ce5e/output/arm64-apple-darwin/bitcoin-a4980da1ce5e-arm64-apple-darwin.tar.gz
  9df0a08896a2bc42f97193b34beb29536783eab04d3ae5fe5642258188fc6e55  guix-build-a4980da1ce5e/output/dist-archive/bitcoin-a4980da1ce5e.tar.gz
  3fef561dd35dd4a4e9d0308591ebbdd5b1d26814ea48ff1f0c2732c62aef961b  guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/SHA256SUMS.part
  187b8283f443bb29ed27546f983a5d098dfe49a059f52bc8ba0607242d37a5ae  guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/bitcoin-a4980da1ce5e-powerpc64-linux-gnu-debug.tar.gz
  3f520b4bf1fbf955f9d25b5aa333f90989428cc9e417431998daa7c1041cb3bb  guix-build-a4980da1ce5e/output/powerpc64-linux-gnu/bitcoin-a4980da1ce5e-powerpc64-linux-gnu.tar.gz
  39abec9623d5086990a303c964a36e7f767bd6218e57261df95b616603eca0b8  guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/SHA256SUMS.part
  b71352ad4e8849937e42ad897d75f65866a529fd4d18059c5e6c39659a17f723  guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/bitcoin-a4980da1ce5e-powerpc64le-linux-gnu-debug.tar.gz
  4fb92753e1baa253780088649bfe6816525e0ada7b17c5acc57ec804d9ab32f8  guix-build-a4980da1ce5e/output/powerpc64le-linux-gnu/bitcoin-a4980da1ce5e-powerpc64le-linux-gnu.tar.gz
  ed422d4365354a16b98ba7d4184a118ce98473e1b70ac8ba62a617aa3af3c784  guix-build-a4980da1ce5e/output/riscv64-linux-gnu/SHA256SUMS.part
  9f002a8893748b0f6b581ab9d158a524e32140a3c271604b50cf1580b30b3000  guix-build-a4980da1ce5e/output/riscv64-linux-gnu/bitcoin-a4980da1ce5e-riscv64-linux-gnu-debug.tar.gz
  6844df378ad2f4c209d323ffa3e77c6aa28f7f087b8755b2baa2a0d1119c365b  guix-build-a4980da1ce5e/output/riscv64-linux-gnu/bitcoin-a4980da1ce5e-riscv64-linux-gnu.tar.gz
  ce0e27b6d831d5836ba3c5c8be377f08f4b92e9f390a7242aca5b68e67d1975e  guix-build-a4980da1ce5e/output/x86_64-apple-darwin/SHA256SUMS.part
  329c990fa71e694869bdcdd3e327a28eed2ad0b12f06d86e0957c6cb05e88910  guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin-unsigned.tar.gz
  c44ec330e40285c1eba421f8d2e70a1538742fadbcc87f7f2f5a49bd83a72a7b  guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin-unsigned.zip
  e3626284d9bd61b67b170433d7bdb226b0f7f63d20dad4dd0482e55d7418ef64  guix-build-a4980da1ce5e/output/x86_64-apple-darwin/bitcoin-a4980da1ce5e-x86_64-apple-darwin.tar.gz
  3e2a16e9dbb89d86e1e1884e0277160c3d1953c5ea5f88f29fe0a093a6f89599  guix-build-a4980da1ce5e/output/x86_64-linux-gnu/SHA256SUMS.part
  eb389467219c4af983f30e50e1f8d48601ed74690538bff76a55c0e585594a92  guix-build-a4980da1ce5e/output/x86_64-linux-gnu/bitcoin-a4980da1ce5e-x86_64-linux-gnu-debug.tar.gz
  d81fd209c03e74aebd7b28b42d3ea21f57957ede7fcb7baae721c8abb2885b6c  guix-build-a4980da1ce5e/output/x86_64-linux-gnu/bitcoin-a4980da1ce5e-x86_64-linux-gnu.tar.gz
  51de8a813459c1ce79bf9a2e39bf9f17b4771c6146ef55829f3ee0415d0ec9ec  guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/SHA256SUMS.part
  63dc5386467d0fc7f3c7b621273d019a822551fc9ac00be94c7d4ee446201836  guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-debug.zip
  3a4f2ef53165031648b1c3badc05698891d7c6541de3f67e9df513395c5c88c3  guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-setup-unsigned.exe
  92f0d67fbb8b37b6026287073df95431c961ad1820d7f8b9cd3b1ffcf58d4188  guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64-unsigned.tar.gz
  3414b6c99d0bbd9ad88c0f88aafa70561dc107d1180fd42c90ad85033871c160  guix-build-a4980da1ce5e/output/x86_64-w64-mingw32/bitcoin-a4980da1ce5e-win64.zip
  ```

ACKs for top commit:
  TheCharlatan:
    lgtm ACK a4980da1ce

Tree-SHA512: cbb8ca9613125d4c443124b99a600b44533688f322c8535c9d82fb3bb8de66b46e63c6aafcf2917f169494181ece6efd02e2efaa32ef4f138a520731540d600c
2023-11-30 15:09:50 +00:00
fanquake
66c4b58e51
guix: switch from guix environment to guix shell
See https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-environment.html.

> Deprecation warning: The guix environment command is deprecated
in favor of guix shell, which performs similar functions but is more
convenient to use. See Invoking guix shell.

> Being deprecated, guix environment is slated for eventual removal,
but the Guix project is committed to keeping it until May 1st, 2023.
Please get in touch with us at guix-devel@gnu.org if you would like
to discuss it.

See also https://guix.gnu.org/blog/2021/from-guix-environment-to-guix-shell/
for a blog post and additional details.

Guix shell was added to guix in this commit,
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=80edb7df6586464aa40e84e103f0045452de95db
which isn't part of the 1.3.0 release binaries out of the box, but
invoking a guix pull, and updating will make it available for all
builders.
2023-11-29 21:24:47 +00:00
fanquake
a4980da1ce
guix: remove input labels
Migrate package definitions to use the new format for propogated inputs.
See
https://guix.gnu.org/manual/en/html_node/package-Reference.html#index-inputs_002c-of-packages.

See also: https://guix.gnu.org/blog/2021/the-big-change/
2023-11-28 16:50:04 +00:00
fanquake
5d13b9586e
Merge bitcoin/bitcoin#28461: build: Windows SSP roundup
f95af98128 guix: default ssp for Windows GCC (fanquake)
95d55b96c2 guix: remove ssp workaround from Windows GCC (fanquake)
8f43302a0a build: remove explicit libssp linking from Windows build (fanquake)

Pull request description:

  I was expecting this to fail to compile somewhere, maybe in the CI, but that doesn't seem to be the case?
  Seems workable given the SSP related changes in the newer mingw-w64 headers (which are in Guix):
  > Implement some of the stack protector functions/variables so -lssp is now optional when _FORTIFY_SOURCE or -fstack-protector-strong is used.

  However I think this would still be broken in some older environments, so we might have to wait for a compiler bump, or similar. The optional -lssp also seems to work when using older headers, which doesn't make sense.

  Would fix #28104.

ACKs for top commit:
  hebasto:
    ACK f95af98128, I've verified binaries from `bitcoin-f95af98128f1-win64.zip` on Windows 11 Pro 23H2.
  TheCharlatan:
    ACK f95af98128

Tree-SHA512: 71169ec513cfe692dfa7741d2bf37b45da05627c0af1cbd50cf8c3c04cc21c4bf88f3284532bddc1e3e648391ec78dbaca5170987a13c21ac204a7bcaf27f349
2023-11-22 17:17:12 +00:00
MarcoFalke
fa552e8a4e
doc: Simplify guix install doc, after 1.4 release 2023-11-17 12:45:00 +01:00
fanquake
f95af98128
guix: default ssp for Windows GCC 2023-11-13 16:59:20 +00:00
fanquake
95d55b96c2
guix: remove ssp workaround from Windows GCC 2023-11-13 16:57:55 +00:00
fanquake
f718a74b12
guix: remove python-macholib 2023-11-13 16:44:39 +00:00
fanquake
d3cbff16c2
guix: update signapple
Which includes https://github.com/achow101/signapple/pull/13.
We can drop macholib (and altgraph) as deps.
2023-11-13 16:44:17 +00:00
fanquake
92d12f1c89
guix: update time-machine to 77386bdbfe6b0c649c05ab37f08051d1ab3e5074
python-altgraph (0.17.4) has been upstreamed. See:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=0c6198319a61d85cd8925af418466dcdccf3daff

Also includes:
GCC 10.4.0 -> 10.5.0:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=2fbb5398a39bf18e41235891a0740fa0bc4d7a4d.
Linux Kernel Headers 6.1.46 -> 6.1.61
LLVM 16 & 17 become available.
2023-11-13 09:44:56 +00:00
fanquake
380e365563
guix: switch to 6.1 kernel headers over 5.15
6.1 is the current longterm release: https://kernel.org/.

Note that using an older version of the kernel headers inside Guix, is
not a "hack" for compatibility, and is explicitly recommended against by glibc:

https://sourceware.org/glibc/wiki/FAQ#What_version_of_the_Linux_kernel_headers_should_be_used.3F.

so using the latest version of the longterm headers seems appropriate.

The last time we changed this was when we consolidated all builds to
5.15, in #25006.
2023-11-03 17:30:27 +00:00
fanquake
3c0b66c2ec
Merge bitcoin/bitcoin#28759: guix: update signapple to latest master
79539fbfbf guix: update signapple (fanquake)

Pull request description:

  Fixes #28449, and removes the need to boostrap Rust, by avoiding the `python-requests` dependency.

  Comparing a `--no-substitutes` build of this PR, to master, signapple requires ~1350 _less_ packages to boostrap:
  Master derivation - https://gist.github.com/fanquake/dbf69a62c9a78b7ae8c183a160e6d58d
  PR derivation - https://gist.github.com/fanquake/0aa2d8eddaba861ba489ed3d936f727d

ACKs for top commit:
  achow101:
    ACK 79539fbfbf

Tree-SHA512: 341ddcae27e53c31d114465cb5173573dcc9e1c0874ee160715630f686da6f69255f6080ec0181ffeffc26efbdb545599d667784b1cd17dfa7e3da0998ec9bd6
2023-10-31 17:09:36 +00:00
Andrew Chow
f6f18eeaa8 guix: Zip needs to include all files with time as SOURCE_DATE_EPOCH
The zip for codesigned MacOS distribution needs to have all files have
the same timestamp. These files also need to be included in the zip as
zip is not automatically recursive. We use the same pattern for zip as
is done for the other zip files produced by guix.
2023-10-31 11:24:21 -04:00
fanquake
79539fbfbf
guix: update signapple
Fixes #28449
2023-10-31 15:14:33 +00:00
fanquake
b5790c35f7
build: remove dmg dependencies 2023-09-15 13:47:50 +01:00
Hennadii Stepanov
a128111c29
build: produce a .zip for macOS distribution
Instead of a .dmg.

Co-authored-by: fanquake <fanquake@gmail.com>
2023-09-15 13:47:50 +01:00
fanquake
8f541023b9
doc: s/--no-substitute/--no-substitutes in guix/INSTALL 2023-09-07 09:51:12 +01:00
fanquake
588068d5a1
guix: remove GCC 10 workaround from NSIS
Fixed upstream in 3.06, see
229b6136c4.
https://sourceforge.net/p/nsis/bugs/1248/
2023-08-30 11:10:53 +01:00
fanquake
ff42d81383
guix: use clang-toolchain-15 for macOS compilation 2023-08-27 10:03:00 +01:00
fanquake
6cbedc3d9b
guix: drop Windows broken-longjmp.patch
This is no-longer required, now that we are building using GCC 10.4.0.
2023-08-24 09:21:50 +01:00
fanquake
a1d4a42993
guix: drop NSIS patch now that we use 3.09
See https://sourceforge.net/p/nsis/bugs/1283/.
2023-08-24 09:21:49 +01:00
fanquake
1f6c75e82b
guix: use cross-* keyword arguments
Using the new time-machine results in warnings about consistently using
keyword arguments:
```bash
guix environment: warning: 'cross-kernel-headers' must be used with keyword arguments
guix environment: warning: 'cross-libc' must be used with keyword arguments
```
2023-08-24 09:21:49 +01:00
fanquake
ea4387e1d0
guix: update time-machine to 160f78a4d92205df986ed9efcce7d3aac188cb24
In our time-machine environment this changes the following:

GCC 10.3.0 -> 10.4.0
Binutils 2.37 -> 2.38
Linux Libre Headers 5.15.37 -> 5.15.127
git 2.36.0 -> 2.41.0
mingw-w64 8.0.0 -> 11.0.1
NSIS 3.05 -> 3.09
xorriso 1.5.2 -> 1.5.6.pl02
Python 3.9 -> 3.10.7
Python-asn1crypto 1.4.0 -> 1.5.1

GCC 12.3.0 becomes available.
LLVM 15.0.7 becomes available.
2023-08-24 09:21:49 +01:00
fanquake
f1a4afb26f
guix: update python-oscrypto to 1.3.0
This is required for bumping the time-machine, for compatibility with
OpenSSL:

oscrypto: openssl backend, 1.2.1, /tmp/guix-build-python-oscrypto-1.2.1.drv-0/source/oscrypto
Traceback (most recent call last):
  File "/tmp/guix-build-python-oscrypto-1.2.1.drv-0/source/oscrypto/_openssl/_libcrypto_ctypes.py", line 304, in <module>
    libcrypto.EVP_PKEY_size.argtypes = [
  File "/gnu/store/9dkl9fnidcdpw19ncw5pk0p7dljx7ijb-python-3.10.7/lib/python3.10/ctypes/__init__.py", line 387, in __getattr__
    func = self.__getitem__(name)
  File "/gnu/store/9dkl9fnidcdpw19ncw5pk0p7dljx7ijb-python-3.10.7/lib/python3.10/ctypes/__init__.py", line 392, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /gnu/store/2hr7w64zhr6jjznidyc2xi40d5ynhj9c-openssl-3.0.8/lib/libcrypto.so.3: undefined symbol: EVP_PKEY_size. Did you mean: 'EVP_PKEY_free'?
2023-08-24 09:20:31 +01:00
fanquake
a8a7b75a01
guix: backport glibc patch to fix powerpc build
Do this prior to bumping the time-machine, to avoid the following build
failure:
```bash
 /tmp/guix-build-glibc-cross-powerpc64le-linux-gnu-2.27.drv-0/build/string/memset-power8.o.dt -MT /tmp/guix-build-glibc-cross-powerpc64le-linux-gnu-2.27.drv-0/build/string/memset-power8.o
../sysdeps/powerpc/powerpc64/power4/memcmp.S: Assembler messages:
../sysdeps/powerpc/powerpc64/power4/memcmp.S:87: Error: unrecognized opcode: `ldbrx'
../sysdeps/powerpc/powerpc64/power4/memcmp.S:88: Error: unrecognized opcode: `ldbrx'
../sysdeps/powerpc/powerpc64/power4/memcmp.S:112: Error: unrecognized opcode: `ldbrx'
```

See:
https://sourceware.org/git/?p=glibc.git;a=commit;h=9250e6610fdb0f3a6f238d2813e319a41fb7a810.
e154242724.
2023-08-24 09:20:31 +01:00
fanquake
806b75b213
guix: consolidate Linux GCC package
Refactor our Linux GCC to be a single 'package', and avoid the use of
`package-with-extra-configure-variable`.
2023-08-22 15:01:15 +01:00
fanquake
4415275f96
guix: consolidate glibc 2.27 package
Refactor our glibc 2.27 to be a single 'package', and avoid the use of
`package-with-extra-configure-variable`. This also lets us drop the
`enable_werror` workaround, and just use --disable-werror directly.

Employ the same workaround as the Guix glibc, to avoid a "permission
denied" failure during build:
```bash
make  subdir=sunrpc -C sunrpc ..=../ subdir_install
make[2]: Entering directory '/tmp/guix-build-glibc-cross-x86_64-linux-gnu-2.27.drv-0/source/sunrpc'
.././scripts/mkinstalldirs /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc
mkdir -p -- /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc
/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 rpc/netdb.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/rpc/netdb.h
.././scripts/mkinstalldirs /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs
mkdir -p -- /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs
/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 ../sysdeps/unix/sysv/linux/nfs/nfs.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/nfs/nfs.h
/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 /tmp/guix-build-glibc-cross-x86_64-linux-gnu-2.27.drv-0/build/gnu/lib-names-64.h /gnu/store/ga8jciqrd5lh52m572x3mk4q1smf5agq-glibc-cross-x86_64-linux-gnu-2.27/include/gnu/lib-names-64.h
/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install -c -m 644 etc.rpc /etc/rpc
/gnu/store/kvpvk5wh70wdbjnr83hh85rg22ysxm9h-coreutils-8.32/bin/install: cannot create regular file '/etc/rpc': Permission denied
make[2]: *** [Makefile:197: /etc/rpc] Error 1
```
2023-08-22 15:01:15 +01:00
fanquake
51324c9517
guix: pre time-machine bump changes (Windows)
Split out of #27897. This is some refactoring to the Windows Guix build
that facilitates bumping our Guix time-machine. Namely, avoiding
`package-with-extra-configure-variable`, which is non-functional in the
newer time-machine, see https://issues.guix.gnu.org/64436.

At the same time, consolidate our Windows GCC build into mingw-w64-base-gcc.
Rename `gcc-10-remap-guix-store.patch` to avoid changing it whenever GCC changes.

We move the old `building-on` inside `explicit-cross-configure`, so that
non-windows builds continue to work. Note that `explicit-cross-configure`
will be going away entirely (see #27897).
2023-08-18 12:02:26 +01:00
fanquake
8f6f0d81ee
guix: backport glibc patch to prevent redundant librt link 2023-07-12 11:22:02 +01:00
Hennadii Stepanov
a51d7abf1e
guix: Specify symbols in modules explicitly
This change improves the maintainability of the manifest:
(1) It allows to remove the module when the specified symbols are no
    longer used.
(2) It prevents accidental use of other symbols, such as `bash`
    instead of `bash-minimal`.
2023-06-28 12:36:26 +01:00
Hennadii Stepanov
47d51fb048
guix: Drop unneeded modules 2023-06-28 12:35:20 +01:00
Hennadii Stepanov
57fdedd0e9
guix: Unify fetch methods 2023-06-28 12:35:14 +01:00
fanquake
ec822e88dd
Merge bitcoin/bitcoin#27813: guix: Update python-lief package to 0.13.2
529c92e837 guix: Update `python-lief` package to 0.13.2 (Hennadii Stepanov)

Pull request description:

  The Guix's `python-lief` package is going to move to using external deps, rather than the bundled ones (https://lists.gnu.org/archive/html/guix-patches/2023-05/msg01302.html). We want to continue using our own package indefinitely, to keep the build simpler, and allow for easier updating.

  Changes in `contrib/devtools/security-check.py` are caused by 6357c6370b.

  Also see: https://github.com/bitcoin/bitcoin/pull/27507.

ACKs for top commit:
  fanquake:
    ACK 529c92e837

Tree-SHA512: ad81111b090a39b380fe25bb27b54a339e78a158f462c7adda25d5ee55f0d654107b1486b29b9687ad0808e27b01e04f53a0e8ffc6600b79103d6bd0dfec64ef
2023-06-28 11:41:35 +01:00
Hennadii Stepanov
529c92e837
guix: Update python-lief package to 0.13.2 2023-06-23 17:02:49 +01:00
Cory Fields
c2cd47280c depends: bump darwin clang to 11.1
Unfortunately clang 10 does not understand "-mmacosx-version-min=11.0",
as it expects to see only 10.x.

Bump minimally to 11.1 to fix that problem. This will likely be our last
binary toolchain bump, as it will soon be replaced with usage of upstream
vanilla llvm.
2023-06-22 15:28:47 +00:00
fanquake
641897a83d
guix: remove cURL from build env 2023-06-02 16:32:47 +01:00
fanquake
ad7819d2f8
Merge bitcoin/bitcoin#27670: guix: remove redundant glibc patches
3cfe366ec3 guix: remove redundant glibc patches (fanquake)

Pull request description:

  These should only be relevant for a glibc that is built as part of a Guix system, and should not be required for a glibc that is just being built to compile our binaries against. A x86_64 linux bitcoind produced with Guix using master vs this change has no difference. i.e:
  #### Comparing `bitcoind` & `../../../../../guix-build-d7700d3a2647/output/x86_64-linux-gnu/bitcoin-d7700d3a2647/bin/bitcoind`:

  ## strings --all --bytes=8 {}

  ```diff
  @@ -20311,15 +20311,15 @@
   This is experimental software.
   The source code is available from %s.
   Please contribute if you find %s useful. Visit %s for further information about the software.
   The %s developers
   The Bitcoin Core developers
   <https://bitcoincore.org/>
   Copyright (C) %i-%i
  -v25.99.0-gda0bf1d07639b0490791bbd6aec71bbea8aa2aThe %s developer<https://github.com/bitcoin/bitcDistributed under the MIT software license, see the accompanyingThis is experimeThe source code is available froPlease contribute if you find %s useful. Visit %s for further information about Copyright (C) %ibool BCLog::Logger::StartLogging()
  +v25.99.0-gd7700d3a26478d9b1648463c188648c7047b1cThe %s developer<https://github.com/bitcoin/bitcDistributed under the MIT software license, see the accompanyingThis is experimeThe source code is available froPlease contribute if you find %s useful. Visit %s for further information about Copyright (C) %ibool BCLog::Logger::StartLogging()
   std::string BCLog::Logger::LogLevelToStr(BCLog::Level) const
   std::string LogCategoryToStr(BCLog::LogFlags)
   void BCLog::Logger::LogPrintStr(const string&, const string&, const string&, int, BCLog::LogFlags, BCLog::Level)
   void BCLog::Logger::ShrinkDebugFile()
   Failed to shrink debug log file: fseek(...) failed
   logging.cpp
   m_buffering
  ```

  #### objdump --line-numbers --disassemble --demangle --reloc --no-show-raw-insn --section=.text {}

  ```diff
  @@ -1505889,15 +1505889,15 @@
   call   aa3380 <malloc@plt+0xa4edb0>
   mov    (%rsp),%rdx
   movdqa 0x465540(%rip),%xmm0
   mov    %rax,0x7a0559(%rip)
   lea    0x7a0552(%rip),%rsi
   lea    0x3957bb(%rip),%rdi
   mov    %rdx,0x7a0554(%rip)
  -mov    $0x3038,%edx
  +mov    $0x3036,%edx
   movups %xmm0,(%rax)
   movdqa 0x465524(%rip),%xmm0
   mov    %dx,0x30(%rax)
   mov    0x7a0529(%rip),%rdx
   movups %xmm0,0x10(%rax)
   movdqa 0x46551d(%rip),%xmm0
   movups %xmm0,0x20(%rax)
  ```

  #### readelf --wide --decompress --hex-dump=.rodata {}

  ```diff
  @@ -37238,17 +37238,17 @@
     0x00b73730 65202573 20646576 656c6f70 65727300 e %s developers.
     0x00b73740 54686520 42697463 6f696e20 436f7265 The Bitcoin Core
     0x00b73750 20646576 656c6f70 65727300 434f5059  developers.COPY
     0x00b73760 494e4700 3c687474 70733a2f 2f626974 ING.<https://bit
     0x00b73770 636f696e 636f7265 2e6f7267 2f3e0043 coincore.org/>.C
     0x00b73780 6f707972 69676874 20284329 2025692d opyright (C) %i-
     0x00b73790 25690053 61746f73 68690000 00000000 %i.Satoshi......
  -  0x00b737a0 7632352e 39392e30 2d676461 30626631 v25.99.0-gda0bf1
  -  0x00b737b0 64303736 33396230 34393037 39316262 d07639b0490791bb
  -  0x00b737c0 64366165 63373162 62656138 61613261 d6aec71bbea8aa2a
  +  0x00b737a0 7632352e 39392e30 2d676437 37303064 v25.99.0-gd7700d
  +  0x00b737b0 33613236 34373864 39623136 34383436 3a26478d9b164846
  +  0x00b737c0 33633138 38363438 63373034 37623163 3c188648c7047b1c
     0x00b737d0 54686520 25732064 6576656c 6f706572 The %s developer
     0x00b737e0 3c687474 70733a2f 2f676974 6875622e <https://github.
     0x00b737f0 636f6d2f 62697463 6f696e2f 62697463 com/bitcoin/bitc
     0x00b73800 44697374 72696275 74656420 756e6465 Distributed unde
     0x00b73810 72207468 65204d49 5420736f 66747761 r the MIT softwa
     0x00b73820 7265206c 6963656e 73652c20 73656520 re license, see
     0x00b73830 74686520 6163636f 6d70616e 79696e67 the accompanying
  ```

  #### readelf --wide --decompress --hex-dump=.gnu_debuglink {}

  ```diff
  @@ -1,5 +1,5 @@

   Hex dump of section '.gnu_debuglink':
     0x00000000 62697463 6f696e64 2e646267 00000000 bitcoind.dbg....
  -  0x00000010 6b6e8eda                            kn..
  +  0x00000010 345cb865                            4\.e
  ```

  Guix Build:
  ```bash
  3d180219536b4ae2b4ea012a2e2afc8dcc76a79a7f55a36418a6e5a83f5adf90  guix-build-3cfe366ec35e/output/aarch64-linux-gnu/SHA256SUMS.part
  c25fbd84b7791d5bd3cab36d26828bf2b1063fadc4e944096e65597b66aba867  guix-build-3cfe366ec35e/output/aarch64-linux-gnu/bitcoin-3cfe366ec35e-aarch64-linux-gnu-debug.tar.gz
  bee8bf6f100912a0548cee798abb1ee9ac1ee17c065259a2410950e71eb3ff13  guix-build-3cfe366ec35e/output/aarch64-linux-gnu/bitcoin-3cfe366ec35e-aarch64-linux-gnu.tar.gz
  caa17fa9ba8b731c903a96211b2c17e8a1e2600bd9df8abd79eac4a89bfff72d  guix-build-3cfe366ec35e/output/arm-linux-gnueabihf/SHA256SUMS.part
  27829fab271cca459e2d037c42ccbefbbbbb1eb4463d5895d5a40220d737ecd9  guix-build-3cfe366ec35e/output/arm-linux-gnueabihf/bitcoin-3cfe366ec35e-arm-linux-gnueabihf-debug.tar.gz
  6b3eba0d9518dce3a6b7d88a32ae2a5b5ab943126e2a105d4ee6a861d44bea6f  guix-build-3cfe366ec35e/output/arm-linux-gnueabihf/bitcoin-3cfe366ec35e-arm-linux-gnueabihf.tar.gz
  855ab932aa0cc6d583a0f0422b1373afd44bff244e0022f29ce45305e5c8e8e2  guix-build-3cfe366ec35e/output/arm64-apple-darwin/SHA256SUMS.part
  02aabfdfe730400550bfc01e45055f6bc5b643511f08e314634c06b462a00c9e  guix-build-3cfe366ec35e/output/arm64-apple-darwin/bitcoin-3cfe366ec35e-arm64-apple-darwin-unsigned.dmg
  310722826ba985c58d800135f7ba9c73489e138cbf1b84a50be4f13453918ce1  guix-build-3cfe366ec35e/output/arm64-apple-darwin/bitcoin-3cfe366ec35e-arm64-apple-darwin-unsigned.tar.gz
  52d4f1af1e2608da4fa28ed446301d5c516e492c760db03c05c2a421c0a64ab9  guix-build-3cfe366ec35e/output/arm64-apple-darwin/bitcoin-3cfe366ec35e-arm64-apple-darwin.tar.gz
  2055c29fcde9aba8274d3649ea0c34ef0dac207d9d6f6a76fd9df9b010cdd7a8  guix-build-3cfe366ec35e/output/dist-archive/bitcoin-3cfe366ec35e.tar.gz
  99feae7ee4bfaf818efe49fbc9de81575a1e087593059bd630da70f5c6b8a7c8  guix-build-3cfe366ec35e/output/powerpc64-linux-gnu/SHA256SUMS.part
  7a55a6287eec3cfe598378684293b077791da234f1d5fcfe6f368e42f8a52428  guix-build-3cfe366ec35e/output/powerpc64-linux-gnu/bitcoin-3cfe366ec35e-powerpc64-linux-gnu-debug.tar.gz
  c2ba080a26b4bbfa443113d0044d07b97cc08f55df6bec90f162232f3f934c58  guix-build-3cfe366ec35e/output/powerpc64-linux-gnu/bitcoin-3cfe366ec35e-powerpc64-linux-gnu.tar.gz
  a670349367e671e73317476795eb7317559bf171d3facdfc2086031eb9dca264  guix-build-3cfe366ec35e/output/powerpc64le-linux-gnu/SHA256SUMS.part
  f9c0683f515bfd072ad18a780ad35ace7e4f5529d5bd9fffc06490d55bac402e  guix-build-3cfe366ec35e/output/powerpc64le-linux-gnu/bitcoin-3cfe366ec35e-powerpc64le-linux-gnu-debug.tar.gz
  608cce8d989b6cbfa723d57744a7e0ceac6a8668b12b4e223fe3de7833fe73ac  guix-build-3cfe366ec35e/output/powerpc64le-linux-gnu/bitcoin-3cfe366ec35e-powerpc64le-linux-gnu.tar.gz
  bbdebd22afc49c66c70738f68e3beea363c4a03701ccbb729d6f0eb0a0eaf150  guix-build-3cfe366ec35e/output/riscv64-linux-gnu/SHA256SUMS.part
  a84871c91a9b9d3423e9b86ffd46eb926672a1a88a3a3df1a5e8288a1fe6d98b  guix-build-3cfe366ec35e/output/riscv64-linux-gnu/bitcoin-3cfe366ec35e-riscv64-linux-gnu-debug.tar.gz
  21a89eb023113398bc1968284cbea86c6630284cb09325b9cee9669348206683  guix-build-3cfe366ec35e/output/riscv64-linux-gnu/bitcoin-3cfe366ec35e-riscv64-linux-gnu.tar.gz
  10f4ef77a97420490bc4494797d0acf8278f5bd4998b6c32881e611cc2faf237  guix-build-3cfe366ec35e/output/x86_64-apple-darwin/SHA256SUMS.part
  6e47a3676e76cd7175a08b6da81dcf7186849aba7c2ee95f12e998fdf1d4596d  guix-build-3cfe366ec35e/output/x86_64-apple-darwin/bitcoin-3cfe366ec35e-x86_64-apple-darwin-unsigned.dmg
  9ca8cd648a464e4e0bef107e23876d4588866eb12b844484a16fe93e4cd2f3b3  guix-build-3cfe366ec35e/output/x86_64-apple-darwin/bitcoin-3cfe366ec35e-x86_64-apple-darwin-unsigned.tar.gz
  89c7a5040683b63f58667f4eea6827af2874fc0962ddba3a158ad3aa78b8a407  guix-build-3cfe366ec35e/output/x86_64-apple-darwin/bitcoin-3cfe366ec35e-x86_64-apple-darwin.tar.gz
  1577c7f6c5eb7cb073c0ba32cfe7347df5aeaf62508d0ba1936506b1cb8a739e  guix-build-3cfe366ec35e/output/x86_64-linux-gnu/SHA256SUMS.part
  8703d39ce218216ee43502e030d3b3fbe6a00bdab82e8cd0706fa597fc6e11b7  guix-build-3cfe366ec35e/output/x86_64-linux-gnu/bitcoin-3cfe366ec35e-x86_64-linux-gnu-debug.tar.gz
  3e4d44d3cddfe2e34c12f55a704f791834385e1a867856e8a1c05f4f4fb3482a  guix-build-3cfe366ec35e/output/x86_64-linux-gnu/bitcoin-3cfe366ec35e-x86_64-linux-gnu.tar.gz
  87186fbcc7f0580ef3a347603c868f96bba31a987cad86991fa79b740d41f654  guix-build-3cfe366ec35e/output/x86_64-w64-mingw32/SHA256SUMS.part
  ceefefe1eb1d518f1534e0e3d51347332874016ce6adeba691fbbfc0b561437a  guix-build-3cfe366ec35e/output/x86_64-w64-mingw32/bitcoin-3cfe366ec35e-win64-debug.zip
  7bf2736457431bbba5c64b5320dd1c72d0d13fae59127fcc92805946de83908a  guix-build-3cfe366ec35e/output/x86_64-w64-mingw32/bitcoin-3cfe366ec35e-win64-setup-unsigned.exe
  721838ac437db5764c22c90d9c0a0b51283d6a50da8c60a6bccb394090380195  guix-build-3cfe366ec35e/output/x86_64-w64-mingw32/bitcoin-3cfe366ec35e-win64-unsigned.tar.gz
  dd58422fc4fd89353002bdb6a546b997fe31546c348a9b4a87bc697913abd382  guix-build-3cfe366ec35e/output/x86_64-w64-mingw32/bitcoin-3cfe366ec35e-win64.zip
  ```

ACKs for top commit:
  TheCharlatan:
    ACK 3cfe366ec3

Tree-SHA512: b1f30f8775acd69e897784c2168887eedc008db80f6d2d0d68390716965fbd3ddfd70fd1560ef30a8cc70941e9010c395c7feed9386ca92b2c9148d063d64724
2023-05-22 10:49:07 +01:00
fanquake
3cfe366ec3
guix: remove redundant glibc patches
These should only be relevant for a glibc that is built as part of a
Guix system, and should not be required for a glibc that is just being
built to compile our binaries against. A x86_64 linux bitcoind produced
with Guix using master vs this change has no difference. i.e:

```diff
@@ -20311,15 +20311,15 @@
 This is experimental software.
 The source code is available from %s.
 Please contribute if you find %s useful. Visit %s for further information about the software.
 The %s developers
 The Bitcoin Core developers
 <https://bitcoincore.org/>
 Copyright (C) %i-%i
-v25.99.0-gda0bf1d07639b0490791bbd6aec71bbea8aa2aThe %s developer<https://github.com/bitcoin/bitcDistributed under the MIT software license, see the accompanyingThis is experimeThe source code is available froPlease contribute if you find %s useful. Visit %s for further information about Copyright (C) %ibool BCLog::Logger::StartLogging()
+v25.99.0-gd7700d3a26478d9b1648463c188648c7047b1cThe %s developer<https://github.com/bitcoin/bitcDistributed under the MIT software license, see the accompanyingThis is experimeThe source code is available froPlease contribute if you find %s useful. Visit %s for further information about Copyright (C) %ibool BCLog::Logger::StartLogging()
 std::string BCLog::Logger::LogLevelToStr(BCLog::Level) const
 std::string LogCategoryToStr(BCLog::LogFlags)
 void BCLog::Logger::LogPrintStr(const string&, const string&, const string&, int, BCLog::LogFlags, BCLog::Level)
 void BCLog::Logger::ShrinkDebugFile()
 Failed to shrink debug log file: fseek(...) failed
 logging.cpp
 m_buffering
```

```diff
@@ -1505889,15 +1505889,15 @@
 	call   aa3380 <malloc@plt+0xa4edb0>
 	mov    (%rsp),%rdx
 	movdqa 0x465540(%rip),%xmm0
 	mov    %rax,0x7a0559(%rip)
 	lea    0x7a0552(%rip),%rsi
 	lea    0x3957bb(%rip),%rdi
 	mov    %rdx,0x7a0554(%rip)
-	mov    $0x3038,%edx
+	mov    $0x3036,%edx
 	movups %xmm0,(%rax)
 	movdqa 0x465524(%rip),%xmm0
 	mov    %dx,0x30(%rax)
 	mov    0x7a0529(%rip),%rdx
 	movups %xmm0,0x10(%rax)
 	movdqa 0x46551d(%rip),%xmm0
 	movups %xmm0,0x20(%rax)
```

```diff
@@ -37238,17 +37238,17 @@
   0x00b73730 65202573 20646576 656c6f70 65727300 e %s developers.
   0x00b73740 54686520 42697463 6f696e20 436f7265 The Bitcoin Core
   0x00b73750 20646576 656c6f70 65727300 434f5059  developers.COPY
   0x00b73760 494e4700 3c687474 70733a2f 2f626974 ING.<https://bit
   0x00b73770 636f696e 636f7265 2e6f7267 2f3e0043 coincore.org/>.C
   0x00b73780 6f707972 69676874 20284329 2025692d opyright (C) %i-
   0x00b73790 25690053 61746f73 68690000 00000000 %i.Satoshi......
-  0x00b737a0 7632352e 39392e30 2d676461 30626631 v25.99.0-gda0bf1
-  0x00b737b0 64303736 33396230 34393037 39316262 d07639b0490791bb
-  0x00b737c0 64366165 63373162 62656138 61613261 d6aec71bbea8aa2a
+  0x00b737a0 7632352e 39392e30 2d676437 37303064 v25.99.0-gd7700d
+  0x00b737b0 33613236 34373864 39623136 34383436 3a26478d9b164846
+  0x00b737c0 33633138 38363438 63373034 37623163 3c188648c7047b1c
   0x00b737d0 54686520 25732064 6576656c 6f706572 The %s developer
   0x00b737e0 3c687474 70733a2f 2f676974 6875622e <https://github.
   0x00b737f0 636f6d2f 62697463 6f696e2f 62697463 com/bitcoin/bitc
   0x00b73800 44697374 72696275 74656420 756e6465 Distributed unde
   0x00b73810 72207468 65204d49 5420736f 66747761 r the MIT softwa
   0x00b73820 7265206c 6963656e 73652c20 73656520 re license, see
   0x00b73830 74686520 6163636f 6d70616e 79696e67 the accompanying
```

```diff
@@ -1,5 +1,5 @@

 Hex dump of section '.gnu_debuglink':
   0x00000000 62697463 6f696e64 2e646267 00000000 bitcoind.dbg....
-  0x00000010 6b6e8eda                            kn..
+  0x00000010 345cb865                            4\.e
```
2023-05-16 11:28:49 +01:00
fanquake
a09269a146
guix: document when certain guix patches can be dropped 2023-05-16 10:10:28 +01:00
fanquake
d0e571ebb1
guix: use python-minimal (3.9)
This further minifies the Guix release build environment.
2023-03-29 15:47:04 +01:00
fanquake
4133c8104f
guix: use gcc tool wrappers
This way, correct `--plugin` argument are passed through.

This is a prerequisite for LTO (see #25391).
2023-03-27 15:25:32 +01:00