Commit Graph

477 Commits

Author SHA1 Message Date
Jack Grigg bc2d144c68 build: Tolerate split LLVM versions
This makes it easier to use different LLVM point releases for different
hosts (as available), and ensures that `$(package)_major_version` is set
correctly when using a different major release on a Tier 3 platform.

Closes zcash/zcash#6534.
2023-04-07 11:16:27 +00:00
Miodrag Popović e276f07349
Update depends/hosts/mingw32.mk to use posix variant library path
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2023-04-01 11:51:36 +02:00
Miodrag Popović e6372f4f1f Fix for broken cross-build to Windows target on Ubuntu 22.04 and Debian 11 2023-03-30 11:02:24 +02:00
Jack Grigg 679e77ce3f depends: CMake 3.26.0 2023-03-17 20:40:13 +00:00
Jack Grigg 69ab270480 depends: `cxx 1.0.92` 2023-03-17 20:32:01 +00:00
Jack Grigg 56ee27ed7b depends: Update Rust to 1.68.0 2023-03-09 16:31:21 +00:00
Jack Grigg e738af6a27 depends: `native_zstd 1.5.4` 2023-02-16 21:25:02 +00:00
Jack Grigg e775c13c4f depends: `cxx 1.0.91`
This also partially reverts zcash/zcash@d3b434eb0f
so we now check in a lockfile for `cxxbridge`.
2023-02-16 21:25:02 +00:00
Jack Grigg dfa5cb159a depends: Evaluate `native_packages` before `packages`
This ensures that `native_clang_download_path` has been evaluated before
it is used by `libcxx`.
2023-02-16 17:28:40 +00:00
Jack Grigg 06e4ef83ec depends: Update Clang / libcxx to LLVM 15.0.6
- We update Windows cross-compile builds to 15.0.7 because binaries are
  provided for it, but not currently for any other platform we need.
- We update native x84_64 macOS builds to 15.0.4 because no 15.0.6
  binaries are provided, and the 15.0.7 ones appear to be targeted at a
  newer Darwin version.
- We keep FreeBSD on 14.0.6 because no Clang 15 binaries are provided,
  and as FreeBSD is a Tier 3 platform it doesn't block us from upgrading
  the remaining platforms.
2023-02-16 16:02:37 +00:00
Jack Grigg d01129e752 depends: Update Rust to 1.67.1 2023-02-16 15:45:29 +00:00
Daira Hopwood 965a908eba
Use the same convention for the tl_expected download files as for native_cctools
No 1.0.1 version has been released, and it would be at a different commit if it were.
2023-02-09 11:25:46 +00:00
sasha 48b7d5ab56 Download `native_cctools` and its `libtapi` to meaningful filenames
Previously, they downloaded to filenames that were simply the git hashes
followed by .tar.gz, now this creates
`native_cctools_55562e4073dea0fbfd0b20e0bf69ffe6390c7f97.tar.gz` and
`native_cctools_libtapi_3efb201881e7a76a21e0554906cf306432539cef.tar.gz`

Note that those are the filenames that must exist on download.z.cash
as well, since the alternate URLs fetched refer to the
*destination filename* and not the original (here, github) filename.
2023-02-08 15:50:17 -08:00
sasha 5feec46456 Partially revert PR #6384, but only for URLs using a git commit hash
The new URLs (with `archive/ref/tags`) are good for tag-based references
so we leave them alone, and only revert the hash-based URLs to GitHub
URLs which doesn't 404 and give us files with the expected hashes today.

Currently, the three repos in question (`cctools-port`, `apple-libtapi`,
and `expected`) do not have usable tags/releases we can use instead of
the hashes.

We will also upload correct versions of those files to the
download.z.cash server (with the correct filenames) so if there's
another issue with hash stability (like there was on 30 January 2023
https://github.com/orgs/community/discussions/46034)
it won't instantly break the build.
2023-02-08 15:03:12 -08:00
Daira Hopwood feec543abf
Merge pull request #6384 from daira/fix-github-deps
Change to a more recent URL format for GitHub archives
2023-02-06 14:13:09 +00:00
Kris Nuttycombe 7024b7f5c0 Patch zeromq to check the return value of snprintf where necessary.
@daira identified an error in https://github.com/zeromq/libzmq/pull/4494
that we reproduced in zcash/zcash#6393. This adds @daira's patch from
https://github.com/zeromq/libzmq/pull/4507 to ensure we handle this
potential case of undefined behavior.

Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2023-02-01 12:31:13 -07:00
Kris Nuttycombe 9751b18207 Patch uses of `sprintf` in `zeromq` that break the build on macOS
Fixes #6006, #6296
2023-01-31 15:55:33 -07:00
Daira Hopwood 145f2c31ed Use a more recent URL format for GitHub release archives.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2023-01-30 20:29:04 +00:00
Jack Grigg 95c6ff635d depends: CMake 3.25.2 2023-01-19 22:48:36 +00:00
Jack Grigg e91fe01387 depends: Update cxx to 1.0.83 2023-01-13 00:33:13 +00:00
Jack Grigg 0e33a7b313 depends: utfcpp 3.2.3 2023-01-13 00:33:13 +00:00
Jack Grigg af8f1c207e depends: Boost 1.81.0 2023-01-13 00:33:13 +00:00
Jack Grigg 609fad8ad0 depends: Force Boost library to be installed in lib/
On CentOS it was defaulting to lib64, which made the library path
unpredictable for native_ccache.
2023-01-12 02:10:22 +00:00
Jack Grigg 14973737c4 depends: Force cmake to install libzstd in lib/
On CentOS it was defaulting to lib64, which made the library path
unpredictable for native_ccache.
2023-01-12 02:10:22 +00:00
Jack Grigg a742ad4c62 depends: Add package for native_cmake 3.25.1
This removes the need for users to install cmake themselves to build.
2023-01-12 02:10:22 +00:00
Jack Grigg 3defbd05be depends: native_ccache 4.6.3 2023-01-12 02:10:22 +00:00
Jack Grigg ca512aa286 depends: native_zstd 1.5.2
We already require zstd for cross-compiling Windows binaries; now we
build it internally because we will also require libzstd for ccache.
2023-01-12 02:10:22 +00:00
Jack Grigg bbc18d2cb2 depends: googletest 1.12.1 2023-01-11 20:55:00 +00:00
Russell Yanofsky 79e13d571a depends: Set CMAKE_INSTALL_RPATH for native packages
After #19685 started setting LDFLAGS, the INSTALL_RPATH_USE_LINK_PATH cmake
option used in the libmultiprocess build no longer works, so it is neccessary
to set CMAKE_INSTALL_RPATH as a fallback.

It's unclear currently whether the bad interaction between
INSTALL_RPATH_USE_LINK_PATH and LDFLAGS is a bug, but the issue is reported:

  https://github.com/bitcoin/bitcoin/issues/19981#issuecomment-696680877
  https://discourse.cmake.org/t/install-rpath-use-link-path-not-working-when-cmake-exe-linker-flags-ldflags-is-set/1892

Commands useful for building / testing this change

  make -C depends MULTIPROCESS=1 print-libmultiprocess_cmake
  make -C depends MULTIPROCESS=1 print-native_libmultiprocess_cmake
  make -C depends MULTIPROCESS=1 HOST=x86_64-apple-darwin16 print-libmultiprocess_cmake

  rm -rvf depends/x86_64-pc-linux-gnu/native depends/work/staging depends/work/build
  make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_staged
  for f in `find -name mpgen`; do echo == $f ==; readelf -d $f | grep -i path; done

  make -C depends MULTIPROCESS=1 V=1 native_libmultiprocess_built
  find -name CMakeCache.txt

Fixes #19981

(cherry picked from commit bitcoin/bitcoin@7d0271b5c3)
2023-01-11 20:54:37 +00:00
Carl Dong 0502af1bca depends: Specify LDFLAGS to cmake as well
(cherry picked from commit bitcoin/bitcoin@b893688357)
2023-01-11 20:54:37 +00:00
Carl Dong 34dc8df2e3 depends: Prepend CPPFLAGS to C{,XX}FLAGS for CMake
This is similar to how we do it for qt.mk.

(cherry picked from commit bitcoin/bitcoin@b3f541f618)
2023-01-11 20:54:37 +00:00
Carl Dong 737478475f depends: Cleanup CMake invocation
(cherry picked from commit bitcoin/bitcoin@8e121e5509)
2023-01-11 20:54:37 +00:00
Carl Dong ea3360c847 depends: More robust cmake invocation
Specify well-known env vars instead of using a workaround to split up CC
and CXX.

(cherry picked from commit bitcoin/bitcoin@8c7cd0c6d9)
2023-01-11 20:54:37 +00:00
Russell Yanofsky 135dbd01fc depends: Add CMake helper for building packages
(Adapted from commit bitcoin/bitcoin@603fd6a2e7)
2023-01-11 20:54:37 +00:00
Daira Hopwood 619456a4f4 tl::expected follow-up to address @str4d's comments.
Co-authored-by: Jack Grigg <jack@electriccoin.co>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-12-09 01:36:45 +00:00
Daira Hopwood 4de0d85abf The std::expected proposal has unnecessary instances of undefined behaviour
for operator->, operator*, and error(). Make these into assertion failures
(this still conforms to the proposal).

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-12-08 20:53:54 +00:00
Daira Hopwood 7472b0dbca Add tl::expected. refs #4816
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-12-08 20:53:54 +00:00
Greg Pfeil 4e76a216d6 Put utf8.h in the correct place
Both CMake and Nix want it to be here, so I obliged.
2022-12-02 22:10:26 -07:00
idm 2257e38efc
fix aarch64 dependency native clang download URL
Added assignment statement `$(package)_download_path_aarch64_linux` to ensure path for aarch clang is used.
2022-11-15 10:26:28 -05:00
Kris Nuttycombe 05110068d9 Update and/or postpone dependencies for 5.3.0 2022-10-19 10:09:03 -06:00
Jack Grigg 1f836859f3 depends: Update cxx to 1.0.78 2022-10-10 18:56:12 +00:00
Jack Grigg d9c14e1b5f depends: Update Boost to 1.80.0 2022-09-23 03:44:07 +00:00
Jack Grigg d3b434eb0f depends: Update cxx to 1.0.76 2022-09-23 03:44:07 +00:00
Jack Grigg baf7d9e24a depends: Update Rust to 1.64.0 2022-09-23 02:27:01 +00:00
Jack Grigg e27190d00a depends: Update Rust to 1.63.0 2022-08-11 15:51:57 +00:00
Jack Grigg 12c36670fe depends: Update Clang / libcxx to LLVM 14.0.6
In practice we are using 14.0.0 in most cases, as the LLVM Project have
not published Ubuntu binaries for any point release after 14.0.0 (which
we are using here).
2022-08-10 23:10:40 +00:00
Jack Grigg 93422e8fe2 depends: Update Rust to 1.62.1 2022-08-10 22:57:46 +00:00
Daira Hopwood a227652d7d Update cxx to 1.0.72.
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
2022-07-25 14:57:19 +01:00
Jack Grigg c85c5b5c12 depends: Vendor dependencies of native_cxxbuild 2022-05-27 23:16:17 +00:00
Jack Grigg 21f1bbf4aa depends: Add `rust/cxx.h` header as a dependency
We could also generate this in the main build with `cxxbridge --header`,
but we have the source from vendoring `cxxbridge`, and this simplifies
the automake integration slightly.
2022-05-27 20:15:05 +00:00