Commit graph

245 commits

Author SHA1 Message Date
Andrew Poelstra
d5c659bd94 Merge de4d3ba437 into merged_master (Bitcoin PR #21541) 2021-06-28 16:44:24 +00:00
Andrew Poelstra
d5101eebcb Merge 23b15601df into merged_master (Bitcoin PR #17227) 2021-06-28 13:45:32 +00:00
Andrew Poelstra
8519730f3c Merge d42078e93b into merged_master (Bitcoin PR #21437) 2021-06-26 23:04:19 +00:00
Andrew Poelstra
9e0c92057c Merge e828fc8f52 into merged_master (Bitcoin PR #21376) 2021-06-26 19:33:37 +00:00
Andrew Poelstra
3eea8d3fee Merge 2620ac4ec3 into merged_master (Bitcoin PR #21354) 2021-06-26 01:46:08 +00:00
Andrew Poelstra
2f9409db22 Merge 84af29337c into merged_master (Bitcoin PR #21255) 2021-06-24 20:03:43 +00:00
Andrew Poelstra
e353185d46 Merge 5bb64acd9d into merged_master (Bitcoin PR #21243) 2021-06-24 17:34:42 +00:00
Andrew Poelstra
ceaad126f8 Merge 6a680a6236 into merged_master (Bitcoin PR #21226) 2021-06-24 15:41:30 +00:00
Andrew Poelstra
819ed1e785 Merge 04e01606e3 into merged_master (Bitcoin PR #21205) 2021-06-24 14:39:52 +00:00
Andrew Poelstra
271029357b Merge 9996b1806a into merged_master (Bitcoin PR #21064) 2021-06-23 03:30:31 +00:00
Andrew Poelstra
eeba6af790 Merge cda914228a into merged_master (Bitcoin PR #21138) 2021-06-21 15:22:16 +00:00
Andrew Poelstra
ca010c3309 Merge 09530b0255 into merged_master (Bitcoin PR #21126) 2021-06-21 14:57:29 +00:00
Andrew Poelstra
705b45662c Merge 3641ec1aac into merged_master (Bitcoin PR #21112) 2021-06-21 14:08:14 +00:00
Andrew Poelstra
43da2e129e Merge ca85449f22 into merged_master (Bitcoin PR #21036) 2021-06-21 08:11:10 +00:00
Andrew Poelstra
b4d8577949 Merge e51f6c4dee into merged_master (Bitcoin PR #20936) 2021-06-21 07:46:25 +00:00
Andrew Poelstra
2575f618b0 Merge 40dd757bf6 into merged_master (Bitcoin PR #21012) 2021-06-19 17:24:40 +00:00
Andrew Poelstra
c5a022192f Merge d7e2401c62 into merged_master (Bitcoin PR #18077) 2021-06-17 01:59:15 +00:00
Andrew Poelstra
27930edc9c Merge 4a540683ec into merged_master (Bitcoin PR #20813) 2021-06-16 14:11:07 +00:00
Andrew Poelstra
994de82dac Merge 9b28bd73a3 into merged_master (Bitcoin PR #20691) 2021-06-15 13:07:58 +00:00
Andrew Poelstra
f0dda8aba2 Merge 4acbcfa97d into merged_master (Bitcoin PR #20470) 2021-06-14 20:26:03 +00:00
Andrew Poelstra
cfb963615f Merge e2ae6a2bef into merged_master (Bitcoin PR #20182) 2021-06-11 01:49:34 +00:00
Andrew Poelstra
526794235b Merge a3186b6da6 into merged_master (Bitcoin PR #20520) 2021-06-11 00:33:58 +00:00
Andrew Poelstra
89d42f9e24 Merge 3693fccc3a into merged_master (Bitcoin PR #20543) 2021-06-10 23:10:07 +00:00
Andrew Poelstra
3473a5279a Merge 2e1336dbfe into merged_master (Bitcoin PR #20471) 2021-05-08 00:24:41 +00:00
Andrew Poelstra
607eeb9d7a Merge cb89e18845 into merged_master (Bitcoin PR #19179) 2021-05-07 18:43:16 +00:00
Andrew Poelstra
0ecb5364be Merge 555b5d1bf9 into merged_master (Bitcoin PR #20419) 2021-05-07 17:59:54 +00:00
Andrew Poelstra
1d951c2239 Merge ea7926527c into merged_master (Bitcoin PR #20413) 2021-05-06 18:51:59 +00:00
Andrew Poelstra
b8d53f04fb Merge 4b24c3962f into merged_master (Bitcoin PR #19504) 2021-05-06 16:02:38 +00:00
MarcoFalke
fa97a17ac3
ci: Bump Android cross-build to Ubuntu Focal
This does not change behavior, but bumping to Focal now means it doesn't
have to be done later when Bionic is no longer used and EOL.
2021-03-28 20:05:46 +02:00
MarcoFalke
fac577d423
ci: Build depends only once for Android build
Depends is currently built twice for the Android build. For example, the
same task building it twice:

* https://cirrus-ci.com/task/6673185279049728?logs=ci#L3418 (aarch64-linux-android)
* https://cirrus-ci.com/task/6673185279049728?logs=ci#L3422 (x86_64-pc-linux-gnu, 4 lines later)
2021-03-28 20:05:31 +02:00
MarcoFalke
fa908a41f3
ci: Set DEPENDS_DIR when setting BASE_ROOT_DIR
The depends dir can not be overwritten by a FILE_ENV file. Also, a FILE_ENV file
might depend on the DEPENDS_DIR value. Thus, set it before reading FILE_ENV.

This commit does not change behavior, but is required for later commits.

Can be reviewed with --color-moved=dimmed-zebra
2021-03-28 20:04:24 +02:00
Andrew Poelstra
1f068f8bd9 ci: fiddle with macos CFLAGS to work around apparent clang bug
See https://github.com/ElementsProject/elements/issues/782
2021-03-26 17:33:05 +00:00
Andrew Poelstra
89926e6b5f ci: correct bitcoin-node to elements-node for multiprocess CI job
Also rename libbitcoin_consensus to libelements_consensus more
consistently in src/Makefile.am. I'm not sure this was causing any
problems but it did make it harder to follow what autotools is
thinking.
2021-03-26 17:33:05 +00:00
Andrew Poelstra
db64bd5276 ci: change bitcoin- paths to elements- paths since that's where autotools puts stuff 2021-03-26 17:33:04 +00:00
Igor Cota
7563720e30 CI: add Android APK build script 2021-03-21 22:33:35 +01:00
Hennadii Stepanov
e4c0cada79
ci, gitian: Drop unneeded python3-dev package for macOS builds 2021-03-14 14:55:12 +02:00
Hennadii Stepanov
3272e34f9c
build: Add xkbcommon 0.8.4
Co-authored-by: fanquake <fanquake@gmail.com>
2021-03-10 08:23:47 +08:00
Hennadii Stepanov
f7f3829a68
build, doc: Drop libbz2-dev from macOS cross-compiling dependencies 2021-03-03 22:43:08 +02:00
Hennadii Stepanov
d8239362e2
build, doc: Drop libcap-dev from macOS cross-compiling dependencies 2021-03-03 22:38:45 +02:00
fanquake
ccb7b6a976
contrib: run test-symbol check for RISCV
Now that we are using Focal for Gitian building (glibc 2.31), we can
user a newer introduced  symbol, and include RISCV in this test.
2021-02-22 08:35:06 +08:00
MarcoFalke
fa330d8fed
ci: Avoid invoking curl on the host 2021-02-20 09:52:55 +01:00
MarcoFalke
6a680a6236
Merge #21226: build: Fix fuzz binary compilation under windows
56ace907b9 Fix fuzz binary compilation under windows (Dan Benjamin)

Pull request description:

  Small change to allow the fuzz binary to compile under windows. Also removed --disable-fuzz-binary from the windows CI test. This fixes #21212.

ACKs for top commit:
  MarcoFalke:
    review ACK 56ace907b9 the best bugfixes are the ones removing code

Tree-SHA512: 6088fd955a5e511b5ca1b3eaa8469a889eb6d994c2827acac7695dac6e4e320a344b45f4015a2f279b16df0d4b23ec4df13304ae6315395ad2fe8c5b526cada4
2021-02-19 11:30:41 +01:00
Dan Benjamin
56ace907b9 Fix fuzz binary compilation under windows 2021-02-18 17:35:24 -05:00
fanquake
cad8b527ea
build: explicitly install libboost-dev package
This package is currently installed as a side-effect of installing our
other libboost-*-dev packages. However as those continue to dissapear,
it makes sense to install boost dev explicitly.
2021-02-17 09:04:20 +08:00
Wladimir J. van der Laan
9996b1806a
Merge #21064: refactor: use std::shared_mutex & remove Boost Thread
060a2a64d4 ci: remove boost thread installation (fanquake)
06e1d7d81d build: don't build or use Boost Thread (fanquake)
7097add83c refactor: replace Boost shared_mutex with std shared_mutex in sigcache (fanquake)
8e55981ef8 refactor: replace Boost shared_mutex with std shared_mutex in cuckoocache tests (fanquake)

Pull request description:

  This replaces `boost::shared_mutex` and `boost::unique_lock` with [`std::shared_mutex`](https://en.cppreference.com/w/cpp/thread/shared_mutex) & [`std::unique_lock`](https://en.cppreference.com/w/cpp/thread/unique_lock).

  Even though [some concerns were raised](https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-726214696) in #16684 with regard to `std::shared_mutex` being unsafe to use across some glibc versions, I still think this change is an improvement. As I mentioned in #21022, I also think trying to restrict standard library feature usage based on bugs in glibc is not only hard to do, but it's not currently clear exactly how we do that in practice (does it also extend to patching out use in our dependencies, should we be implementing more runtime checks for features we are using, when do we consider an affected glibc "old enough" not to worry about? etc). If you take a look through the [glibc bug tracker](https://sourceware.org/bugzilla/describecomponents.cgi?product=glibc) you'll no doubt find plenty of (active) bug reports for standard library code we already using. Obviously not to say we shouldn't try and avoid buggy code where possible.

  Two other points:

  [Cory mentioned in #21022](https://github.com/bitcoin/bitcoin/pull/21022#issuecomment-769274179):
  > It also seems reasonable to me to worry that boost hits the same underlying glibc bug, and we've just not happened to trigger the right conditions yet.

  Moving away from Boost to the standard library also removes the potential for differences related to Boosts configuration. Boost has multiple versions of `shared_mutex`, and what you end up using, and what it's backed by depends on:
  * The version of Boost.
  * The platform you're building for.
  * Which version of `BOOST_THREAD_VERSION` is defined: (2,3,4 or 5) default=2. (see [here](https://www.boost.org/doc/libs/1_70_0/doc/html/thread/build.html#thread.build.configuration) for some of the differences).
  * Is `BOOST_THREAD_V2_SHARED_MUTEX` defined? (not by default). If so, you might get the ["less performant, but more robust"](https://github.com/boostorg/thread/issues/230#issuecomment-475937761) version of `shared_mutex`.

  A lot of these factors are eliminated by our use of depends, but users will have varying configurations. It's also not inconceivable to think that a distro, or some package manager might start defining something like `BOOST_THREAD_VERSION=3`. Boost tried to change the default from 2 to 3 at one point.

  With this change, we no longer use Boost Thread, so this PR also removes it from depends, the build system, CI etc.

  Previous similar PRs were #19183 & #20922. The authors are included in the commits here.
  Also related to #21022 - pthread sanity checking.

ACKs for top commit:
  laanwj:
    Code review ACK 060a2a64d4
  vasild:
    ACK 060a2a64d4

Tree-SHA512: 572d14d8c9de20bc434511f20d3f431836393ff915b2fe9de5a47a02dca76805ad5c3fc4cceecb4cd43f3ba939a0508178c4e60e62abdbaaa6b3e8db20b75b03
2021-02-12 11:39:36 +01:00
MarcoFalke
faa8afe70b
ci: Re-run wine tests once if they fail 2021-02-10 08:59:35 +01:00
MarcoFalke
fa272dfdff
ci: Properly bump to focal for win cross build 2021-02-09 21:37:14 +01:00
fanquake
ac24af453d
ci: use Ubuntu Focal for macOS cross build 2021-02-09 13:58:59 +08:00
MarcoFalke
ca85449f22
Merge #21036: gitian: Bump descriptors to Focal for 22.0
2ecaf21433 gitian: remove execstack workaround for ricv64 & powerpc64le (fanquake)
5baff2b318 build: use focal in gitian descriptors (fanquake)

Pull request description:

  This PR changes the gitian descriptors to use Ubuntu Focal (20.04), over Bionic (18.04), moving from GCC 7.5 to GCC 8.4 for native Linux builds, mingw-w64 GCC 7.3 to mingw-w64 GCC 9.3 for Windows builds, while continuing to use GCC 8.4 for all cross builds and Clang 8.0.0 for macOS builds.

  It also drops the `-Wl,-z,noexecstack` workaround we've been using for the riscv64 and powerpc64le hosts, as it's no-longer needed. One new package is installed in the osx build, `libtinfo5`, as libtinfo5.so is required by our downloaded Clang 8.

  A bump to Focal will at least be required if we want to update to a newer Qt (5.15, #19716) for 22.0, as we need a newer version of [`g++-mingw-w64`](https://packages.ubuntu.com/focal/g++-mingw-w64-x86-64) and the [`mingw-w64`](https://mingw-w64.org/doku.php) headers. This can still be done while continuing to use GCC 8.4 for Linux builds (see below), however the newer `g++-mingw-w64` will be based off of GCC 9.3.

  **Some considerations**

  GCC 9 is affected by #20005 "memcmp with constants that contain zero bytes are broken in GCC", and the newer `g++-mingw-w64` will be based off of GCC 9.3.

  The `--no-*` variants of the Windows linker flags (i.e `--no-dynamicbase`) we use to [test our `security-check.py` script](16b784d953/contrib/devtools/test-security-check.py (L53)) are not patched into the mingw binutils in Focal (they have been re-added in Groovy (20.10)). This isn't currently an issue, however, we might add a call to `test-security-check` for Guix (#20980), and if we wanted to do the same for gitian, it would not work. Note how it's quite "easy" for us to apply the `--no-*` variant patch to our Guix build; it would be quite a bit harder to do in Gitian.

  Gitian Builds @ 2ecaf21433

  #### Linux
  ```bash
  8882ea78486fbae4fac574b9089eb1107c6372d0dd7dfcda4f0f930576f9d6c1  bitcoin-2ecaf214331b-aarch64-linux-gnu-debug.tar.gz
  50a9e30943b4eee5163edff3331241e745ff32a2c4463c21a6fdc5986e2d0383  bitcoin-2ecaf214331b-aarch64-linux-gnu.tar.gz
  ec4e55a447fddf033fee33cd5f22bfeda3c3612f059194bcf6238859f7989d7a  bitcoin-2ecaf214331b-arm-linux-gnueabihf-debug.tar.gz
  444fe1b3b933c00bcbd4a9d86888cff3b61c1215b1debccd2843e842d1224777  bitcoin-2ecaf214331b-arm-linux-gnueabihf.tar.gz
  88e486ff465980dc1a4aab9687d142ec6f727ed2c52cf539f69db2877dee83b2  bitcoin-2ecaf214331b-powerpc64-linux-gnu-debug.tar.gz
  66144ac264c65cada9d86446e6026c85b04fb88198b8f41b42840f6031db3e6c  bitcoin-2ecaf214331b-powerpc64-linux-gnu.tar.gz
  34bcc13d78d929d575e34e77a6672f23ca7ea23230b28ec2eed563889352ba86  bitcoin-2ecaf214331b-powerpc64le-linux-gnu-debug.tar.gz
  b4c5f959664f3063df4330edfe343c17120eb6b556ee1c15c4aeb2c1c54ffd49  bitcoin-2ecaf214331b-powerpc64le-linux-gnu.tar.gz
  918fa72ab6f6ebce4e9663c93f72fe26651c260477cbb54749f7eb61438b5cc1  bitcoin-2ecaf214331b-riscv64-linux-gnu-debug.tar.gz
  f704f9f8c053ffe37d854e2e81e0f4c0614c435dad7f5d82518c681b73a76ae6  bitcoin-2ecaf214331b-riscv64-linux-gnu.tar.gz
  b59e3a62f1df9d79f30e916b3c9655f654036fe3a420040c53acc8dd9f4162c5  bitcoin-2ecaf214331b-x86_64-linux-gnu-debug.tar.gz
  a4dc9ca877cc97544e65db11be38406d16f15d74fcdcd2318bb92474729bc60d  bitcoin-2ecaf214331b-x86_64-linux-gnu.tar.gz
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  af6ebc91147778e4e6705eade62608dde4d6e60522d79087fa9129bdb7c01199  bitcoin-core-linux-22-res.yml
  ```

  #### Windows
  ```bash
  121a3970a6911cb8c453b2ce37d03f6cbb43333e29db8fa516c68563fb367f43  bitcoin-2ecaf214331b-win-unsigned.tar.gz
  6294e9efebe935092f9ba119dc60ad4094f18b51c4181324e54d3057524d6101  bitcoin-2ecaf214331b-win64-debug.zip
  5b5a236b63e67f5f6c07ad9aa716aa7b72fb63722c96798b332c6d164738f9cf  bitcoin-2ecaf214331b-win64-setup-unsigned.exe
  c1fa5894c5e02a201637567c80b9bde9024f44673dcd06fd4d489c1709179279  bitcoin-2ecaf214331b-win64.zip
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  665fd7eb61aed368150db58a254f15fb5efb51a4efa5abcc52571cb7a1a5de22  bitcoin-core-win-22-res.yml
  ```

  #### macOS
  ```bash
  6a1deae7662aa782baa82a42590f862c6bcdc4f4e38daa9b8c2a9eed1fbb5397  bitcoin-2ecaf214331b-osx-unsigned.dmg
  1ee843266e84928a4323fa255c833528c2617a2c9fd2f98fb26ba19bbfc1227b  bitcoin-2ecaf214331b-osx-unsigned.tar.gz
  097b64dadc167d8e5b733421bf1541a40760ad952990f7cf3f35adc6ae2616d0  bitcoin-2ecaf214331b-osx64.tar.gz
  b40ba2d5da498330ade92a4ccebcceb1452b94c8ffeacb336f87e93b5c88d8af  src/bitcoin-2ecaf214331b.tar.gz
  6e378fb543928e40c7119b96be6ff773d38506a9a888f8b02c7f1b8a0801a80e  bitcoin-core-osx-22-res.yml
  ```

ACKs for top commit:
  laanwj:
    Build script changes review ACK 2ecaf21433

Tree-SHA512: 975d5830b787d2e08988f43cbc6e839294171c1d94c8219636308b05f9b77041421612ae67be24a631674670cfc9c2d96d8177f2b3158a78fc3deea19631febf
2021-02-08 10:44:37 +01:00
Dan Benjamin
32cbb06676 build: build fuzz tests by default.
This fixes issue #19388. The changes are as follows:
  - Add a new flag to configure, --enable-fuzz-binary, which allows building test/fuzz/fuzz regardless of whether we are building to do actual fuzzing
  - Set -DPROVIDE_MAIN_FUNCTION whenever --enable-fuzz is no
  - Add the following libraries to FUZZ_SUITE_LD_COMMON:
    - LIBBITCOIN_WALLET
    - SQLLITE_LIBS
    - BDB_LIBS
    - if necessary, some or all of:
      - NATPMP_LIBS
      - MINIUPNPC_LIBS
      - LIBBITCOIN_ZMQ / ZMQ_LIBS
2021-02-05 19:52:45 -05:00