Commit Graph

14671 Commits

Author SHA1 Message Date
Homu ce5d8daae6 Auto merge of #4961 - str4d:leveldb-1.22-prep, r=str4d
Prepare for LevelDB 1.22 update

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#7944
- bitcoin/bitcoin#8604
  - Only the first commit (we removed the upstream build documentation).
- bitcoin/bitcoin#12294
  - Only the third commit.
- bitcoin/bitcoin#13659
- bitcoin/bitcoin#16110
2021-01-25 20:11:31 +00:00
Homu 7580890dc1 Auto merge of #4959 - str4d:dependency-updates, r=str4d
Dependency updates

Boost is reverted to 1.74 to mitigate #4945 until a fix is found.
2021-01-25 19:20:45 +00:00
Igor Cota 3e672a58ac Define TARGET_OS when host is android 2021-01-25 16:15:06 +00:00
Homu b2f9192131 Auto merge of #4754 - daira:fix-enable-debug, r=str4d
Ensure that `CONFIGURE_FLAGS=--enable-debug` correctly uses -O0 for dependencies and main build

Test plan:
* build using `zcutil/build.sh V=1` and confirm from the build log that all dependencies and the main build use `-O1`
* run `zcutil/distclean.sh` then build using `CONFIGURE_FLAGS=--enable-debug zcutil/build.sh V=1`
* confirm from the build log that all dependencies and the main build use `-O0`
* run builds with and without `--enable-debug` under `gdb`, and find a case where local variables are usually optimized out, but not with `--enable-debug`.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-25 16:13:50 +00:00
Daira Hopwood bd61fbf056 Ensure that `CONFIGURE_FLAGS=--enable-debug` correctly uses -O0 for dependencies and main build.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2021-01-25 14:32:18 +00:00
Cory Fields 959e7be477 build: add missing leveldb defines
src/leveldb/build_detect_platform shows how upstream defines them.

These platform may not be able to fully build or run Bitcoin, but defining all
known to leveldb saves future hassle.

Now that all possible platforms are enumerated, specifying an unknown one is an
error.
2021-01-25 13:21:04 +00:00
fanquake 5d8fdbf738 [build] Add NETBSD leveldb target to configure.ac 2021-01-25 13:20:46 +00:00
Wladimir J. van der Laan 5304bcd6bd build: Updates for OpenBSD
- LevelDB platform was not guessed correctly (it ended up defining
  `-DOS_OPENBSD59` instead of `-DOS_OPENBSD`)

- On OpenBSD there is no convenience link from `python3.5` to `python3`:
  add detection for other python interpreter names.

- If it has to guess the LevelDB OS, print a autoconf warning so that
  the user can check.

Zcash: Excludes the Python change.
2021-01-25 13:18:53 +00:00
randy-waterhouse f5d8c93380 Re-instate TARGET_OS=linux in configure.ac. Removed by 351abf9e035. 2021-01-25 13:14:41 +00:00
Jack Grigg 780e35419a cargo update 2021-01-25 12:10:25 +00:00
Jack Grigg 177df2c25a depends: Postpone updates that require adding CMake 2021-01-25 12:07:09 +00:00
Jack Grigg 4c7d17328a depends: ZeroMQ 4.3.4 2021-01-25 12:04:47 +00:00
Jack Grigg 07449c1a0c QA: Postpone BDB update again
It's unlikely we will ever upgrade from BDB 6; instead we will migrate
away from BDB.
2021-01-25 11:51:06 +00:00
Jack Grigg bb242b6a7b QA: Remove unused update postponements
Clang has been updated, and the Rust dependencies aren't checked by
updatecheck.py any more.
2021-01-25 11:49:37 +00:00
Jack Grigg 3e35bc8e71 qa: Postpone Boost and native_b2 updates 2021-01-25 11:49:11 +00:00
Jack Grigg c996fc1ca4 Revert "Update boost to 1.75, postpone other updates."
This reverts commit 8f4dd4460b.
2021-01-25 11:35:18 +00:00
Homu c278705510 Auto merge of #4956 - str4d:clang-11-macos-build, r=str4d
depends: Allow per-host package download paths

Clang's download path includes its version, but LLVM doesn't always
publish every package for every version, so we need to support multiple
versions.

Fixes zcash/zcash#4954.
2021-01-21 22:55:58 +00:00
Jack Grigg d0902ab767 depends: Ensure the native_clang download path is for the builder 2021-01-21 22:55:03 +00:00
Jack Grigg c7df8445d0 depends: Allow per-host package download paths
Clang's download path includes its version, but LLVM doesn't always
publish every package for every version, so we need to support multiple
versions.

Fixes zcash/zcash#4954.
2021-01-21 15:19:02 +00:00
Homu 2de905ce87 Auto merge of #4951 - str4d:clang-11, r=nuttycom
depends: Move to Clang 11

Most platforms are on 11.0.1; Darwin and Windows are both on 11.0.0
because that is the latest that binaries are provided for.

Requires `zstd` to cross-compile Windows binaries.
2021-01-19 23:59:19 +00:00
Jack Grigg fa41e9adca depends: Fix Boost warnings under Clang 11
C++17 deprecated the two-argument version of std::allocator::allocate.
Starting with 11.0, libc++ enforces these deprecations, which causes
warnings from the Boost headers, and since we require native Linux
builds to be warning-free, this breaks CI.

Boost addressed this issue for MSVC in 1.75; the patch in this commit
forces Clang to be handled in the same way.
2021-01-18 21:55:22 +00:00
Jack Grigg a58d74c6be depends: Move to Clang 11
Most platforms are on 11.0.1; Darwin and Windows are both on 11.0.0
because that is the latest that binaries are provided for.
2021-01-16 00:45:33 +00:00
Homu a0158ce837 Auto merge of #4950 - str4d:boost-build-backports, r=str4d
Boost build backports

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#17087
- bitcoin/bitcoin#17231
- bitcoin/bitcoin#17928
- bitcoin/bitcoin#18820
- bitcoin/bitcoin#19764

Kudos to @dongcarl for all the excellent upstream depends system hackery!
2021-01-15 22:12:42 +00:00
Carl Dong 98ce8f838d depends: boost: Specify cflags+compileflags 2021-01-15 17:31:29 +00:00
Carl Dong cf70d2eb5c depends: boost: Remove unnecessary _archiver_
We already have $(package)_ar, so just use that instead
2021-01-15 17:31:10 +00:00
Carl Dong 80205dcad5 depends: boost: Cleanup toolset selection 2021-01-15 17:30:32 +00:00
Carl Dong 7f1598ad11 depends: boost: Cleanup architecture/address-model 2021-01-15 17:30:32 +00:00
Carl Dong 44f95d4043 depends: boost: Disable all compression 2021-01-15 17:30:30 +00:00
Carl Dong d5dfbe016d depends: boost: Split into non-/native packages 2021-01-15 17:29:37 +00:00
Carl Dong 63390e503c depends: boost: Refer to version in URL 2021-01-15 17:08:56 +00:00
Carl Dong 5c03db0983 depends: Propagate only specific CLI variables to sub-makes
We want to supply well-known vars to ./configure scripts to do with as
they please. However, we do _not_ want to override these well-known vars
at make-time as certain build systems expect a self-mangled version of
these well-known vars.

For example, freetype and bdb will prepend `libtool --mode=compile' to
CC and CXX, which, if we override CC on the command line at make-time,
will break the build.
2021-01-15 17:08:56 +00:00
Carl Dong 9e997afd84 depends: boost: Use clang toolset if clang in CXX 2021-01-15 17:08:56 +00:00
Carl Dong 96cf6da5b6 depends: boost: Split target-os from toolset
Previously, we specified the target-os in the toolset (and sometimes
used the wrong command line flags), now we have a clear separation,
which is favored by ./bootstrap.sh and ./b2.

This means that all supported OSes will specify the correct target-os=
and toolset= on the command line.
2021-01-15 17:08:56 +00:00
Carl Dong b3fe7d336e depends: boost: Specify toolset to bootstrap.sh
b2 will pickup our user-config.jam just fine, however, bootstrap.sh has
its own toolset autodetect mechanism, which doesn't GAF about our
user-config.jam

Zcash: This also reverts b6d0996cec which
fixes a PIE linking error, but likely breaks FreeBSD build support.
2021-01-15 17:07:01 +00:00
Carl Dong 2c1c82f59a depends: Propagate well-known vars into depends
For example, doing:

  make CC=clang CXX=clang++

Should now propagate these settings down to depends packages
2021-01-15 05:24:25 +00:00
Peter Bushnell 0226ea4647 depends: Consistent use of package variable
All other mk files use the package variable consistently except for the two instances here, which have always been here, since depends was introduced in 0.10.
2021-01-15 05:24:25 +00:00
Cory Fields d64205350d depends: fix boost mac cross build with clang 9+
The ancient "darwin-4.9.1" profile has long been used to match against
clang, which prior to version 9, reported 4.9.1 as its version when
invoking "clang++ -dumpversion". Presumably this was a historical
compatibility quirk related to Apple's switch from gcc to clang.

This was "fixed" in clang 9.0, so that -dumpversion reports the real
version. Unfortunately that had the side-effect of breaking the
(brittle) boost compiler detection.

Move to the seemingly more-correct "clang-darwin" profile, which passes
the checks and builds correctly.

Also switch to using ar rather than libtool for archiving, as it's what
the clang-darwin profile expects to be using.

Note that because this is using a different profile, some of the final
command-line arguments end up changing. The changes look sane at a
glance.
2021-01-15 05:24:25 +00:00
Carl Dong ee10eb77db build: Add variable printing target to Makefiles
I kept finding myself needing these to debug our build system, since
they are innocuous and are very helpful they probably belong in the
codebase.

Source: John Graham-Cumming
https://www.cmcrossroads.com/article/printing-value-makefile-variable
2021-01-15 05:24:25 +00:00
Homu 06d234d774 Auto merge of #4934 - oxarbitrage:issue4917, r=nuttycom
Split wallet.py

Split some of the tests from `wallet.py` into its own files to make it easier to debug.
Some of the tests moved where depending(specially in balance amounts) on previous code. As standalone, some of the hardcoded balances needed some changes. No further modifications to tests are done in this PR.

We can split more but i think is a good start.

If this is merged it will close https://github.com/zcash/zcash/issues/4917

-----------------------
Please ensure this checklist is followed for any pull requests for this repo. This checklist must be checked by both the PR creator and by anyone who reviews the PR.
* [ ] Relevant documentation for this PR has to be completed and reviewed by @mdr0id before the PR can be merged
* [ ] A test plan for the PR must be documented in the PR notes and included in the test plan for the next regular release

As a note, all buildbot tests need to be passing and all appropriate code reviews need to be done before this PR can be merged
2021-01-14 17:49:12 +00:00
Homu 4698523c38 Auto merge of #4936 - oxarbitrage:issue4932, r=nuttycom
Hide password in -stdin `walletpassphrase`

An approach for issue https://github.com/zcash/zcash/issues/4932

Code in this PR will hide the first line of input when we are in `-stdin` mode and only when the `walletpassphrase` command is used. This works for me but i understand it can be confusing, open to other options.

Without this PR:

```
$ ./src/zcash-cli -stdin walletpassphrase\n
mypass\n
120\n
<Ctrl+D>
$
```

With PR:

```
$ ./src/zcash-cli -stdin walletpassphrase\n
[here we type the password and enter but this is not shown]
120\n
<Ctrl+D>
$
```

Function `SetStdinEcho` is not mine(https://stackoverflow.com/a/1455007). It works in linux, it should work in windows, not sure about mac.

This PR also moves the `-stdin` option to the Options section of the cli help.

------------
Please ensure this checklist is followed for any pull requests for this repo. This checklist must be checked by both the PR creator and by anyone who reviews the PR.
* [ ] Relevant documentation for this PR has to be completed and reviewed by @mdr0id before the PR can be merged
* [ ] A test plan for the PR must be documented in the PR notes and included in the test plan for the next regular release

As a note, all buildbot tests need to be passing and all appropriate code reviews need to be done before this PR can be merged
2021-01-14 15:04:38 +00:00
Kris Nuttycombe ada04aa01d Fix pyflakes complaints 2021-01-14 07:34:40 -07:00
Homu 93d1aec9f4 Auto merge of #4935 - LarryRuane:4624-ibd-getheaders, r=nuttycom
#4624 improve IBD sync by eliminating getheaders requests

Closes #4624. Don't issue redundant `getheaders` P2P requests.

It's not certain that this is a safe change or the best way to solve the problem, but it does dramatically decrease IBD time and network (read) usage. The corresponding upstream code has become quite different, so it's not clear how this problem is solved there. (In my testing, the problem did not occur there; the node seemed to download the minimum amount of data from the network.)

There's no behavior change after IBD completes, so perhaps the only problem with this change (the only way it might be unsafe) is if IBD stalls completely (due to `getheaders` not being sent when necessary). That hasn't happened in my testing so far (I'll continue testing).
2021-01-14 14:05:38 +00:00
Alfredo Garcia e034e2676a Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-01-12 17:09:20 +00:00
Alfredo Garcia ab55776189 hide password in -stdin `walletpassphrase` command 2021-01-12 17:09:20 +00:00
Homu e528caf7fb Auto merge of #4937 - centromere:freebsd, r=daira
Add support for FreeBSD 12

The pre-built binaries for clang 8 on FreeBSD do not ship with `libc++api`, so `libcxxrt` from the base system is used instead.

Please ensure this checklist is followed for any pull requests for this repo. This checklist must be checked by both the PR creator and by anyone who reviews the PR.
* [ ] Relevant documentation for this PR has to be completed and reviewed by @mdr0id before the PR can be merged
* [ ] A test plan for the PR must be documented in the PR notes and included in the test plan for the next regular release

As a note, all buildbot tests need to be passing and all appropriate code reviews need to be done before this PR can be merged
2021-01-09 16:24:10 +00:00
Larry Ruane addf0b3318 #4624 improve IBD sync by eliminating getheaders requests 2021-01-08 14:20:33 -07:00
Homu 8c000ae281 Auto merge of #4944 - nuttycom:ibd_skip_tx_messages, r=str4d
Skip "tx" messages during initial block download.

We avoid requesting these messages by not request non-block inventory during IBD.
This is equivalent to https://github.com/bitcoin/bitcoin/pull/7164, but we also
ignore unsolicited `tx` messages (which `zcashd` nodes will never send).

Fixes #4943.
2021-01-06 21:47:29 +00:00
Alex Wied 2e36d4208c
Use parentheses for defined in windows-unused-variables.diff
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-01-05 22:16:20 -05:00
Homu feadf83de9 Auto merge of #4942 - str4d:rust-1.49, r=str4d
depends: Update Rust to 1.49.0

Also updates our `Cargo.lock`.
2021-01-06 00:09:41 +00:00
Alex Wied a0c1ba16db Set rust_target for all FreeBSD versions 2021-01-05 17:28:24 -05:00