Commit Graph

14182 Commits

Author SHA1 Message Date
Jack Grigg bf450b2607 qa: Disable FORTIFY_SOURCE checks
FORTIFY_SOURCE does mostly nothing for Clang before 10, which we don't
pin yet (and won't before we next upgrade Rust).
2020-10-14 21:52:32 +01:00
Jack Grigg 5a1e6853c1 build: Add -lpthread to univalue test LDFLAGS
Fixes missing symbols when running the univalue test suite.
2020-10-13 19:38:40 +01:00
Jack Grigg e917cb614f build: Compile secp256k1 with C99
The secp256k1 library is intended to be C89-compatible. Targeting both
C89 and MinGW with Clang triggers this bug that is fixed in MinGW 8.0.0:
    bedff472af

Rather than requiring MinGW 8, we compile secp256k1 targeting C99.
2020-10-13 17:17:26 +01:00
Jack Grigg ab4033c49c depends: Fix boost::iostreams usage on Windows with libc++
Fixed upstream (but not yet in a Boost release):
    https://github.com/boostorg/iostreams/pull/106
2020-10-13 16:33:25 +01:00
Jack Grigg c691a8413f depends: Rename Boost libraries to follow MinGW/GCC convention
Boost uses the MSVC naming convention when building Windows libraries,
which causes issues with lld.
2020-10-13 15:29:01 +01:00
Jack Grigg 3973a16358 depends: Fix "unused variables" warning when compiling zeromq for Windows
Clang triggers that warning, which becomes an error due to -Werror.
2020-10-13 14:12:41 +01:00
Jack Grigg 2ca72adf8b build: Add missing LIBUNIVALUE to Makefile.bench.include LDADD 2020-10-13 14:12:41 +01:00
Jack Grigg 5ca4fbf8f6 build: Statically link libc++ 2020-10-13 14:12:41 +01:00
Jack Grigg fa54a1661a depends: Add multilib paths for Linux cross-compile 2020-10-13 14:12:41 +01:00
Jack Grigg 0887f64c90 depends: Don't replace default CXXFLAGS in C++ dependencies 2020-10-13 14:12:41 +01:00
Jack Grigg 1b96347867 depends: Add libc++ as a dependency
For mingw32:

- We use the binaries provided by MSYS2, which do not go back as far as
  libc++ 8. We use libc++ 9 here, matching the LLVM version we will be
  switching to in a subsequent commit (to match the LLVM version used by
  Rust 1.44). We manually specify the path to the libc++ headers,
  because they don't match the headers used by Clang itself.

- We now require at least mingw-w64 6.0.0, which fixes two Clang
  compilation bugs:
  - 1bd66b53be
  - 82b169c573

Darwin is ignored, as the Xcode SDK includes libc++.

For all other targets, we use the static libraries included in Clang
releases. We reuse the files we downloaded in native_clang for native
compilation, instead of fetching the archive twice.
2020-10-13 14:12:41 +01:00
Jack Grigg ff4cb00cb2 depends: Vendor LLD and use it for linking
We don't specify it for macOS, as we already pin a specific SDK there.
2020-10-12 18:10:16 +01:00
Jack Grigg 4abd76f70e depends: Use vendored Clang for macOS cross-compilation 2020-10-12 17:55:12 +01:00
Daira Hopwood d3330ab797 Fix warnings surfaced by compiling with clang++.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-12 17:55:12 +01:00
Jack Grigg d306b72be4 depends: Use vendored Clang for native compilation
Clang is used for compiling C/C++ dependencies, as well as the Zcash
binaries themselves. GCC is still required for compiling native
toolchain dependencies (such as ccache).
2020-10-12 17:55:12 +01:00
Jack Grigg d071e316e5 depends: Add Clang 8.0.0
We vendor only the subset of the Clang tarball that we require.
2020-10-12 17:55:12 +01:00
Homu a2f85199f0 Auto merge of #4779 - nathan-at-least:static-patchfile-bdb, r=str4d
depends: Use patch rather than sed in bdb package

This converts a sed command within a makefile into a static patch file in the
`./depends` system for `bdb`. We use `sed` in some dependencies to replace
some "dynamic" stuff, where regular expressions are necessary (such as to
remove build-non-reproducibility, I believe). However, whenever we can use a
patchfile, I feel that's superior because it's easier to manually read a patch
file and it's known that the change is "static".

Equivalent to the first commit in https://github.com/bitcoin/bitcoin/pull/19761
2020-10-12 10:55:23 +00:00
Nate Wilcox 5a47aa5350 Convert a sed command to a static patch file. 2020-10-12 11:58:28 +09:00
Homu 3c8ce84d24 Auto merge of #4777 - daira:fix-bind-warning, r=str4d
Fix a new warning about use of boost::bind placeholders after updating Boost

closes #4774

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-12 01:04:01 +00:00
Daira Hopwood acf2d07189 Fix a new warning about use of boost::bind placeholders after updating Boost. closes #4774
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-10 21:41:46 +01:00
Homu ebc8de390c Auto merge of #4776 - str4d:logging-files, r=str4d
MOVEONLY: Move logging code from util.{h,cpp} to new files

Based on bitcoin/bitcoin#13021 but implemented from scratch.

This introduces a cyclic dependency between `logging` and `util` that
should be cleaned up in a future PR.
2020-10-09 16:16:51 +00:00
Jack Grigg b42582395b MOVEONLY: Move logging code from util.{h,cpp} to new files
Based on bitcoin/bitcoin#13021 but implemented from scratch.

This introduces a cyclic dependency between `logging` and `util` that
should be cleaned up in a future PR.
2020-10-09 16:32:02 +01:00
Homu e2d3533de3 Auto merge of #4773 - str4d:4651-combined-params-init, r=daira
FFI: Merge librustzcash_init_zksnark_params variants into one function

Rust 1.39.0 added support for attributes on function parameters.

Closes #4651.
2020-10-09 11:15:40 +00:00
Homu ce26c21fb4 Auto merge of #4772 - daira:log-invalid-notept, r=daira
Add logging when we receive an invalid note plaintext (using the "receiveunsafe" log category)

fixes #4735

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-08 23:35:53 +00:00
Jack Grigg 508aadd2f3 FFI: Merge librustzcash_init_zksnark_params variants into one function
Rust 1.39.0 added support for attributes on function parameters.

Closes #4651.
2020-10-08 22:50:57 +01:00
Homu 6e4090d840 Auto merge of #4766 - str4d:update-zeromq, r=str4d
Update ZeroMQ

Includes changes cherry-picked from the following upstream PRs:

- bitcoin/bitcoin#9254
- bitcoin/bitcoin#13578
- bitcoin/bitcoin#15844
- bitcoin/bitcoin#16370
  - Only the ZeroMQ changes.
- bitcoin/bitcoin#16949
2020-10-08 17:37:41 +00:00
Daira Hopwood 007de07745 Add logging when we receive an invalid note plaintext (using the "receiveunsafe" log category).
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2020-10-08 14:29:23 +01:00
str4d a5c2daf618
depends: Update packages documentation for Zcash
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2020-10-08 14:15:03 +01:00
Jack Grigg 7c9fa28274 depends: ZeroMQ 4.3.3 2020-10-06 00:03:21 +01:00
fanquake 3c4f9d383f build: pass --enable-option-checking to applicable packages 2020-10-05 23:48:58 +01:00
fanquake 3420f0171e build: only pass --disable-dependency-tracking to packages that understand it
By blanket passing --disable-dependency-tracking to all depends packages
we end up with some warnings like:

configure: WARNING: unrecognized options: --disable-dependency-tracking

So instead, only pass it to packages that understand it.

Related to https://github.com/bitcoin/bitcoin/issues/16354.
2020-10-05 23:46:38 +01:00
fanquake 13f0e7874a depends: zeromq: disable draft classes and methods 2020-10-05 23:42:15 +01:00
Carl Dong 84dfe68465 depends: Purge libtool archives
We use pkg-config where we can, which generally replaces libtool at a
higher level and does not have the same downsides as libtool. These
archives sit in our depends tree with no purpose and pollute the final
bitcoin build with massive overlinking.
2020-10-05 23:37:09 +01:00
Carl Dong df60fd966b depends: Build secondary deps statically.
Secondary dependencies don't need to be shared.
2020-10-05 23:36:26 +01:00
mruddy edfb4d98e7 [depends, zmq, doc] avoid deprecated zeromq api functions
Zcash: Backported from bitcoin/bitcoin#13578
2020-10-05 22:54:19 +01:00
fanquake 92aa4d6178 depends: Disable unused ZeroMQ features
Zcash: From upstream commit 387879dd4cbecd4d39bcf691bfe910047e5ed85c
2020-10-05 22:46:58 +01:00
Homu b646bad8c2 Auto merge of #4765 - str4d:more-depends-updates, r=str4d
Update more dependencies

- Boost 1.74.0
- ccache 3.7.12
- `cargo update` for the Rust dependencies.
2020-10-05 19:19:01 +00:00
Jack Grigg b56e5aa7b8 cargo update 2020-10-05 20:01:58 +01:00
Jack Grigg be700a89cc depends: ccache 3.7.12 2020-10-05 19:58:39 +01:00
Jack Grigg a9f62bdda0 depends: Boost 1.74.0
- The old patch is no longer necessary because of this upstream fix:
    https://github.com/boostorg/build/pull/560

- Boost 1.72 removed a <deque> from an include, which exposed a missing
  include in src/httpserver.cpp.

- Boost 1.73 moved function placeholders into the boost::placeholders
  namespace.

- The new patch is a fix from just after Boost 1.74 was released, fixing
  a warning that was missed.
2020-10-05 19:48:46 +01:00
Homu 4705aae32e Auto merge of #4763 - rex4539:remove-bitcoin-release-notes, r=str4d
Remove Bitcoin release notes

Those appear to be totally unnecessary.
2020-10-05 17:53:53 +00:00
Homu d3978dbf87 Auto merge of #4762 - rex4539:remove-deprecated-init, r=str4d
Remove deprecated init.md

After https://github.com/zcash/zcash/pull/4460 was merged, `init.md` got deprecated.
2020-10-05 14:15:11 +00:00
Dimitris Apostolou c84ae00cbf
Remove Bitcoin release notes 2020-10-03 22:58:39 +03:00
Dimitris Apostolou 1fa5d4670a
Remove deprecated init.md 2020-10-03 22:43:45 +03:00
Homu b667bfaa14 Auto merge of #4760 - rex4539:fix-zeromq-warning, r=daira
Fix zeromq warning

Fixes https://github.com/zcash/zcash/issues/4759.
2020-10-03 17:04:31 +00:00
Dimitris Apostolou 95a5c30339
Fix zeromq warning 2020-10-03 09:13:35 +03:00
Homu ce44f60c26 Auto merge of #4758 - str4d:depends-updates, r=str4d
Update dependencies
2020-10-01 16:34:04 +00:00
Homu eb4c9ea0a3 Auto merge of #4484 - defuse:fix-undefined-behavior-in-bitcoin-test, r=str4d
Fix undefined behavior in the test_bitcoin tests
2020-10-01 15:19:39 +00:00
Taylor Hornby 3693b96ed4 Fix undefined behavior in the test_bitcoin tests 2020-10-01 13:59:47 +01:00
Homu a983344931 Auto merge of #4752 - str4d:small-httpserver-backports, r=daira
Small httpserver.cpp backports

Also includes a change to the `uiInterface.NotifyBlockTip` signal API.
These remove merge conflicts from subsequent backports for `sync.h`.

Cherry-picked from the following upstream PRs:
- bitcoin/bitcoin#6859
- bitcoin/bitcoin#7112
  - Only the non-QT changes.
- bitcoin/bitcoin#7966
- bitcoin/bitcoin#8421
  - We already backported the second commit in zcash/zcash#2555
2020-10-01 12:48:58 +00:00