Commit Graph

290 Commits

Author SHA1 Message Date
Jack Grigg 4c7d17328a depends: ZeroMQ 4.3.4 2021-01-25 12:04:47 +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
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
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
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 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
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
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
Alex Wied a0c1ba16db Set rust_target for all FreeBSD versions 2021-01-05 17:28:24 -05:00
Jack Grigg 070d4720eb depends: Update Rust to 1.49.0 2021-01-04 16:31:11 +00:00
Alex Wied eadc3d48f2 Add support for FreeBSD 12 2020-12-30 19:50:25 -05:00
Kris Nuttycombe 8f4dd4460b Update boost to 1.75, postpone other updates.
This removes the paches iostreams-106.patch and signals2-noise.patch
which have been incorporated into boost 1.75. Also, this further
postpones updates to native_clank, libcxx and native_ccache.
2020-12-18 14:13:42 -07:00
Dimitris Apostolou f459e43dc9
Update links 2020-12-13 11:24:44 +02:00
Jack Grigg 9052751c21 depends: Build C++ dependencies with C++ 17 2020-10-20 13:55:14 +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 5ca4fbf8f6 build: Statically link libc++ 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
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
Nate Wilcox 5a47aa5350 Convert a sed command to a static patch file. 2020-10-12 11:58:28 +09: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
fanquake 92aa4d6178 depends: Disable unused ZeroMQ features
Zcash: From upstream commit 387879dd4cbecd4d39bcf691bfe910047e5ed85c
2020-10-05 22:46: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
Dimitris Apostolou 95a5c30339
Fix zeromq warning 2020-10-03 09:13:35 +03:00
Jack Grigg 076c1af55c depends: utfcpp 3.1.2 2020-10-01 11:10:33 +01:00
Jack Grigg 78a7230f50 depends: googletest 1.8.1 2020-10-01 10:57:57 +01:00
Jack Grigg 7725f66051 depends: ccache 3.7.11 2020-10-01 10:57:26 +01:00
Jack Grigg 96da9c2c00 depends: libevent 2.1.12
This includes https://github.com/libevent/libevent/pull/637 which fixes
a problem we encounter during cross-compilation with clang.
2020-10-01 10:56:42 +01:00
fanquake f477932d38 depends: remove OpenSSL package 2020-09-30 00:40:12 +01:00