aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2022-05-16 13:52:33 -0500
committerluigi1111 <luigi1111w@gmail.com>2022-05-16 13:52:33 -0500
commit44c0470e1ee9700054c2423bae0b292833ae74a5 (patch)
treec7c68e8a9acbf590331e78d51ef69609c795c262 /contrib
parentMerge pull request #8308 (diff)
parentdepends: Package cleanup (diff)
downloadmonero-44c0470e1ee9700054c2423bae0b292833ae74a5.tar.xz
Merge pull request #8312
5c27fd8 depends: Package cleanup (Howard Chu) c1d47eb Update randomx: fix Mac linking error (Howard Chu) 02e6af2 Update CI for aarch64 mac build (selsta) 7ea1e21 Make Mac SDK into a regular depends package (Howard Chu) e81ab9b Silence some protobuf link warnings (Howard Chu) fe5c2ae Fix arm64 darwin package defs (Howard Chu) fb68465 Boost 1.64 doesn't recognize arm64 darwin (Howard Chu) 617f908 more... update to clang 9.0.0 (Howard Chu) 83ae3ad Split native_clang out of native_cctools (Howard Chu) 1008318 Update native_cctools for newer SDK support (Howard Chu) a86c4cb Update to MacOSX SDK 11.1, add Mac M1 (Howard Chu)
Diffstat (limited to 'contrib')
-rw-r--r--contrib/depends/Makefile2
-rw-r--r--contrib/depends/README.md11
-rw-r--r--contrib/depends/hosts/darwin.mk15
-rw-r--r--contrib/depends/packages/boost.mk5
-rw-r--r--contrib/depends/packages/darwin_sdk.mk10
-rw-r--r--contrib/depends/packages/expat.mk2
-rw-r--r--contrib/depends/packages/hidapi.mk6
-rw-r--r--contrib/depends/packages/native_cctools.mk59
-rw-r--r--contrib/depends/packages/native_clang.mk29
-rw-r--r--contrib/depends/packages/native_libtapi.mk28
-rw-r--r--contrib/depends/packages/ncurses.mk5
-rw-r--r--contrib/depends/packages/openssl.mk1
-rw-r--r--contrib/depends/packages/packages.mk2
-rw-r--r--contrib/depends/packages/protobuf.mk5
-rw-r--r--contrib/depends/packages/readline.mk5
-rw-r--r--contrib/depends/packages/sodium.mk13
-rw-r--r--contrib/depends/packages/unbound.mk2
-rw-r--r--contrib/depends/patches/boost/fix_arm_arch.patch11
-rw-r--r--contrib/depends/patches/native_cctools/skip_otool.patch12
-rw-r--r--contrib/depends/patches/protobuf/visibility.patch159
-rw-r--r--contrib/depends/toolchain.cmake.in31
-rw-r--r--contrib/gitian/DOCKRUN.md6
-rw-r--r--contrib/gitian/README.md9
-rwxr-xr-xcontrib/gitian/dockrun.sh5
-rwxr-xr-xcontrib/gitian/gitian-build.py10
-rw-r--r--contrib/gitian/gitian-osx.yml8
26 files changed, 303 insertions, 148 deletions
diff --git a/contrib/depends/Makefile b/contrib/depends/Makefile
index 9ffe8a106..3df1d677e 100644
--- a/contrib/depends/Makefile
+++ b/contrib/depends/Makefile
@@ -2,7 +2,6 @@
SOURCES_PATH ?= $(BASEDIR)/sources
BASE_CACHE ?= $(BASEDIR)/built
-SDK_PATH ?= $(BASEDIR)/SDKs
FALLBACK_DOWNLOAD_PATH ?= https://downloads.getmonero.org/depends-sources
BUILD = $(shell ./config.guess)
@@ -185,7 +184,6 @@ $(host_prefix)/share/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_
-e 's|@build_tests@|$(build_tests)|' \
-e 's|@depends@|$(host_cmake)|' \
-e 's|@prefix@|$($(host_arch)_$(host_os)_prefix)|'\
- -e 's|@sdk@|$(SDK_PATH)|'\
-e 's|@arch@|$(host_arch)|'\
$< > $@
$(AT)touch $@
diff --git a/contrib/depends/README.md b/contrib/depends/README.md
index 10866acbe..1aa5b276f 100644
--- a/contrib/depends/README.md
+++ b/contrib/depends/README.md
@@ -30,7 +30,7 @@ Common `host-platform-triplets` for cross compilation are:
- `i686-w64-mingw32` for Win32
- `x86_64-w64-mingw32` for Win64
-- `x86_64-apple-darwin11` for MacOSX
+- `x86_64-apple-darwin11` for MacOSX x86_64
- `arm-linux-gnueabihf` for Linux ARM 32 bit
- `aarch64-linux-gnu` for Linux ARM 64 bit
- `riscv64-linux-gnu` for Linux RISCV 64 bit
@@ -43,7 +43,6 @@ The following can be set when running make: make FOO=bar
```
SOURCES_PATH: downloaded sources will be placed here
BASE_CACHE: built packages will be placed here
-SDK_PATH: Path where sdk's can be found (used by OSX)
FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
DEBUG: disable some optimizations and enable more runtime checking
HOST_ID_SALT: Optional salt to use when generating host package ids
@@ -59,14 +58,6 @@ download-win: run 'make download-win' to fetch all sources needed for win builds
download-linux: run 'make download-linux' to fetch all sources needed for linux builds
```
-#Darwin (macos) builds:
-
-To build with the x86_64-apple-darwin11 you require the mac os developer tools in MacOSX10.11.sdk.
-Download it from apple, or search for it on github. Create a new directoty called SDKs in this
-directory and place the entire MacOSX10.11.sdk folder in it. The depends build will then pick it up automatically
-(without requiring SDK_PATH).
-
-
#Mingw builds
Building for 32/64bit mingw requires switching alternatives to a posix mode
diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk
index 7b5c8b051..79d449054 100644
--- a/contrib/depends/hosts/darwin.mk
+++ b/contrib/depends/hosts/darwin.mk
@@ -1,9 +1,12 @@
OSX_MIN_VERSION=10.8
-OSX_SDK_VERSION=10.11
-OSX_SDK=$(SDK_PATH)/MacOSX$(OSX_SDK_VERSION).sdk
-LD64_VERSION=253.9
-darwin_CC=clang -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -B $(host_prefix)/native/bin
-darwin_CXX=clang++ -target $(host) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(OSX_SDK) -mlinker-version=$(LD64_VERSION) -stdlib=libc++ -B $(host_prefix)/native/bin
+LD64_VERSION=609
+ifeq (aarch64, $(host_arch))
+CC_target=arm64-apple-$(host_os)
+else
+CC_target=$(host)
+endif
+darwin_CC=clang -target $(CC_target) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(host_prefix)/native/SDK/ -mlinker-version=$(LD64_VERSION) -B$(host_prefix)/native/bin/$(host)-
+darwin_CXX=clang++ -target $(CC_target) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(host_prefix)/native/SDK/ -mlinker-version=$(LD64_VERSION) -stdlib=libc++ -B$(host_prefix)/native/bin/$(host)-
darwin_CFLAGS=-pipe
darwin_CXXFLAGS=$(darwin_CFLAGS)
@@ -15,4 +18,4 @@ darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
darwin_debug_CFLAGS=-O1
darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
-darwin_native_toolchain=native_cctools
+darwin_native_toolchain=native_cctools darwin_sdk
diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk
index 4571d4232..fd06c5393 100644
--- a/contrib/depends/packages/boost.mk
+++ b/contrib/depends/packages/boost.mk
@@ -4,7 +4,7 @@ $(package)_download_path=https://downloads.sourceforge.net/project/boost/boost/1
$(package)_file_name=$(package)_$($(package)_version).tar.bz2
$(package)_sha256_hash=7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332
$(package)_dependencies=libiconv
-$(package)_patches=fix_aroptions.patch
+$(package)_patches=fix_aroptions.patch fix_arm_arch.patch
define $(package)_set_vars
$(package)_config_opts_release=variant=release
@@ -13,7 +13,7 @@ $(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-
$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
$(package)_config_opts_android=threadapi=pthread runtime-link=static target-os=android
-$(package)_config_opts_darwin=--toolset=darwin-4.2.1 runtime-link=shared
+$(package)_config_opts_darwin=--toolset=darwin runtime-link=shared
$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
$(package)_config_opts_x86_64_mingw32=address-model=64
$(package)_config_opts_i686_mingw32=address-model=32
@@ -30,6 +30,7 @@ endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/fix_aroptions.patch &&\
+ patch -p1 < $($(package)_patch_dir)/fix_arm_arch.patch &&\
echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$(boost_archiver_$(host_os))\" <arflags>\"$($(package)_arflags)\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
endef
diff --git a/contrib/depends/packages/darwin_sdk.mk b/contrib/depends/packages/darwin_sdk.mk
new file mode 100644
index 000000000..d639c422e
--- /dev/null
+++ b/contrib/depends/packages/darwin_sdk.mk
@@ -0,0 +1,10 @@
+package=darwin_sdk
+$(package)_version=11.1
+$(package)_download_path=https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/
+$(package)_file_name=MacOSX$($(package)_version).sdk.tar.xz
+$(package)_sha256_hash=68797baaacb52f56f713400de306a58a7ca00b05c3dc6d58f0a8283bcac721f8
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_staging_dir)/$(host_prefix)/native/SDK &&\
+ mv * $($(package)_staging_dir)/$(host_prefix)/native/SDK
+endef
diff --git a/contrib/depends/packages/expat.mk b/contrib/depends/packages/expat.mk
index 1e1b9dbb8..9516f86ab 100644
--- a/contrib/depends/packages/expat.mk
+++ b/contrib/depends/packages/expat.mk
@@ -11,7 +11,7 @@ $(package)_config_opts+=--prefix=$(host_prefix)
endef
define $(package)_config_cmds
- $($(package)_autoconf) $($(package)_config_opts)
+ $($(package)_autoconf)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/packages/hidapi.mk b/contrib/depends/packages/hidapi.mk
index 8c56f9187..97e204f17 100644
--- a/contrib/depends/packages/hidapi.mk
+++ b/contrib/depends/packages/hidapi.mk
@@ -9,7 +9,6 @@ $(package)_patches=missing_win_include.patch
define $(package)_set_vars
$(package)_config_opts=--enable-static --disable-shared
$(package)_config_opts+=--prefix=$(host_prefix)
-$(package)_config_opts_darwin+=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
$(package)_config_opts_linux+=libudev_LIBS="-L$(host_prefix)/lib -ludev"
$(package)_config_opts_linux+=libudev_CFLAGS=-I$(host_prefix)/include
$(package)_config_opts_linux+=libusb_LIBS="-L$(host_prefix)/lib -lusb-1.0"
@@ -18,12 +17,11 @@ $(package)_config_opts_linux+=--with-pic
endef
define $(package)_preprocess_cmds
- patch -p1 < $($(package)_patch_dir)/missing_win_include.patch
+ patch -p1 < $($(package)_patch_dir)/missing_win_include.patch && ./bootstrap
endef
define $(package)_config_cmds
- ./bootstrap &&\
- $($(package)_autoconf) $($(package)_config_opts) AR_FLAGS=$($(package)_arflags)
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/packages/native_cctools.mk b/contrib/depends/packages/native_cctools.mk
index 64a72e484..0324f7acd 100644
--- a/contrib/depends/packages/native_cctools.mk
+++ b/contrib/depends/packages/native_cctools.mk
@@ -1,50 +1,17 @@
package=native_cctools
-$(package)_version=807d6fd1be5d2224872e381870c0a75387fe05e6
-$(package)_download_path=https://github.com/theuni/cctools-port/archive
+$(package)_version=04663295d0425abfac90a42440a7ec02d7155fea
+$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
$(package)_download_file=$($(package)_version).tar.gz
$(package)_file_name=$(package)-$($(package)_version).tar.gz
-$(package)_sha256_hash=a09c9ba4684670a0375e42d9d67e7f12c1f62581a27f28f7c825d6d7032ccc6a
+$(package)_sha256_hash=70a7189418c2086d20c299c5d59250cf5940782c778892ccc899c66516ed240e
$(package)_build_subdir=cctools
-$(package)_clang_version=3.7.1
-$(package)_clang_download_path=http://llvm.org/releases/$($(package)_clang_version)
-$(package)_clang_download_file=clang+llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
-$(package)_clang_file_name=clang-llvm-$($(package)_clang_version)-x86_64-linux-gnu-ubuntu-14.04.tar.xz
-$(package)_clang_sha256_hash=99b28a6b48e793705228a390471991386daa33a9717cd9ca007fcdde69608fd9
-$(package)_extra_sources=$($(package)_clang_file_name)
-$(package)_patches=skip_otool.patch
-
-define $(package)_fetch_cmds
-$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
-$(call fetch_file,$(package),$($(package)_clang_download_path),$($(package)_clang_download_file),$($(package)_clang_file_name),$($(package)_clang_sha256_hash))
-endef
-
-define $(package)_extract_cmds
- mkdir -p $($(package)_extract_dir) && \
- echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
- echo "$($(package)_clang_sha256_hash) $($(package)_source_dir)/$($(package)_clang_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
- $(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
- mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \
- tar --strip-components=1 -C toolchain -xf $($(package)_source_dir)/$($(package)_clang_file_name) && \
- rm -f toolchain/lib/libc++abi.so* && \
- echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \
- echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \
- chmod +x toolchain/bin/$(host)-dsymutil && \
- tar --strip-components=1 -xf $($(package)_source)
-endef
+$(package)_dependencies=native_clang native_libtapi
define $(package)_set_vars
-$(package)_config_opts=--target=$(host) --disable-lto-support
+$(package)_config_opts=--target=$(host) --disable-lto-support --with-libtapi=$(host_prefix)
$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
-$(package)_cc=$($(package)_extract_dir)/toolchain/bin/clang
-$(package)_cxx=$($(package)_extract_dir)/toolchain/bin/clang++
-endef
-
-# If clang gets updated to a version with a fix for https://reviews.llvm.org/D50559
-# then the patch that skips otool can be removed.
-define $(package)_preprocess_cmds
- patch -p0 < $($(package)_patch_dir)/skip_otool.patch && \
- cd $($(package)_build_subdir); ./autogen.sh && \
- sed -i.old "/define HAVE_PTHREADS/d" ld64/src/ld/InputFiles.h
+$(package)_cc=$(host_prefix)/native/bin/clang
+$(package)_cxx=$(host_prefix)/native/bin/clang++
endef
define $(package)_config_cmds
@@ -57,15 +24,5 @@ endef
define $(package)_stage_cmds
$(MAKE) DESTDIR=$($(package)_staging_dir) install && \
- cp $($(package)_extract_dir)/cctools/misc/install_name_tool $($(package)_staging_prefix_dir)/bin/ &&\
- cd $($(package)_extract_dir)/toolchain && \
- mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include && \
- mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
- cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\
- cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
- cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
- cp -rf lib/clang/$($(package)_clang_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_clang_version)/include/ && \
- cp bin/llvm-dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
- if `test -d include/c++/`; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \
- if `test -d lib/c++/`; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi
+ cp $($(package)_extract_dir)/cctools/misc/install_name_tool $($(package)_staging_prefix_dir)/bin/
endef
diff --git a/contrib/depends/packages/native_clang.mk b/contrib/depends/packages/native_clang.mk
new file mode 100644
index 000000000..115f8f389
--- /dev/null
+++ b/contrib/depends/packages/native_clang.mk
@@ -0,0 +1,29 @@
+package=native_clang
+$(package)_version=9.0.0
+$(package)_download_path=https://releases.llvm.org/$($(package)_version)
+$(package)_download_file=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
+$(package)_file_name=clang-llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
+$(package)_sha256_hash=a23b082b30c128c9831dbdd96edad26b43f56624d0ad0ea9edec506f5385038d
+
+define $(package)_extract_cmds
+ echo $($(package)_sha256_hash) $($(package)_source) | sha256sum -c &&\
+ mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \
+ tar --strip-components=1 -C toolchain -xf $($(package)_source) && \
+ rm -f toolchain/lib/libc++abi.so* && \
+ echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \
+ echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \
+ chmod +x toolchain/bin/$(host)-dsymutil
+endef
+
+define $(package)_stage_cmds
+ cd $($(package)_extract_dir)/toolchain && \
+ mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
+ mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
+ cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\
+ cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
+ cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
+ cp -rf lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/ && \
+ cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
+ if `test -d include/c++/`; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \
+ if `test -d lib/c++/`; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi
+endef
diff --git a/contrib/depends/packages/native_libtapi.mk b/contrib/depends/packages/native_libtapi.mk
new file mode 100644
index 000000000..56ee087cb
--- /dev/null
+++ b/contrib/depends/packages/native_libtapi.mk
@@ -0,0 +1,28 @@
+package=native_libtapi
+$(package)_version=664b8414f89612f2dfd35a9b679c345aa5389026
+$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
+$(package)_download_file=$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=62e419c12d1c9fad67cc1cd523132bc00db050998337c734c15bc8d73cc02b61
+$(package)_build_subdir=build
+$(package)_dependencies=native_clang
+
+define $(package)_config_cmds
+ echo -n $(build_prefix) > INSTALLPREFIX; \
+ CC=$(host_prefix)/native/bin/clang CXX=$(host_prefix)/native/bin/clang++ \
+ cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix) \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DCMAKE_BUILD_TYPE=RELEASE \
+ -DTAPI_REPOSITORY_STRING="1100.0.11" \
+ -DTAPI_FULL_VERSION="11.0.0" \
+ -DCMAKE_CXX_FLAGS="-I $($(package)_extract_dir)/src/llvm/projects/clang/include -I $($(package)_build_dir)/projects/clang/include" \
+ $($(package)_extract_dir)/src/llvm
+endef
+
+define $(package)_build_cmds
+ $(MAKE) clangBasic && $(MAKE) libtapi
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install-libtapi install-tapi-headers
+endef
diff --git a/contrib/depends/packages/ncurses.mk b/contrib/depends/packages/ncurses.mk
index d8fdf351c..fb1d92c65 100644
--- a/contrib/depends/packages/ncurses.mk
+++ b/contrib/depends/packages/ncurses.mk
@@ -7,8 +7,7 @@ $(package)_patches=fallback.c
define $(package)_set_vars
$(package)_build_opts=CC="$($(package)_cc)"
- $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" ARFLAGS=$($(package)_arflags) cf_cv_ar_flags=""
- $(package)_config_env_darwin=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
+ $(package)_config_env=cf_cv_ar_flags=""
$(package)_config_opts=--prefix=$(host_prefix)
$(package)_config_opts+=--disable-shared
$(package)_config_opts+=--with-build-cc=gcc
@@ -51,7 +50,7 @@ define $(package)_preprocess_cmds
endef
define $(package)_config_cmds
- ./configure $($(package)_config_opts)
+ $($(package)_autoconf)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk
index 79c94a30b..0d8478d49 100644
--- a/contrib/depends/packages/openssl.mk
+++ b/contrib/depends/packages/openssl.mk
@@ -38,6 +38,7 @@ $(package)_config_opts_arm_linux=linux-generic32
$(package)_config_opts_aarch64_linux=linux-generic64
$(package)_config_opts_arm_android=--static android-arm
$(package)_config_opts_aarch64_android=--static android-arm64
+$(package)_config_opts_aarch64_darwin=darwin64-arm64-cc
$(package)_config_opts_riscv64_linux=linux-generic64
$(package)_config_opts_mipsel_linux=linux-generic32
$(package)_config_opts_mips_linux=linux-generic32
diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk
index eed9e8ec1..11e2cb7be 100644
--- a/contrib/depends/packages/packages.mk
+++ b/contrib/depends/packages/packages.mk
@@ -34,6 +34,6 @@ mingw32_packages = icu4c sodium $(hardware_packages)
mingw32_native_packages = $(hardware_native_packages)
ifneq ($(build_os),darwin)
-darwin_native_packages += native_cctools
+darwin_native_packages += darwin_sdk native_clang native_cctools native_libtapi
endif
diff --git a/contrib/depends/packages/protobuf.mk b/contrib/depends/packages/protobuf.mk
index ad1098975..ddec1eb59 100644
--- a/contrib/depends/packages/protobuf.mk
+++ b/contrib/depends/packages/protobuf.mk
@@ -5,12 +5,17 @@ $(package)_file_name=$(native_$(package)_file_name)
$(package)_sha256_hash=$(native_$(package)_sha256_hash)
$(package)_dependencies=native_$(package)
$(package)_cxxflags=-std=c++11
+$(package)_patches=visibility.patch
define $(package)_set_vars
$(package)_config_opts=--disable-shared --with-protoc=$(build_prefix)/bin/protoc
$(package)_config_opts_linux=--with-pic
endef
+define $(package)_preprocess_cmds
+ patch -p0 < $($(package)_patch_dir)/visibility.patch
+endef
+
define $(package)_config_cmds
$($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
endef
diff --git a/contrib/depends/packages/readline.mk b/contrib/depends/packages/readline.mk
index b6e6a451a..957b6454c 100644
--- a/contrib/depends/packages/readline.mk
+++ b/contrib/depends/packages/readline.mk
@@ -7,19 +7,16 @@ $(package)_dependencies=ncurses
define $(package)_set_vars
$(package)_build_opts=CC="$($(package)_cc)"
- $(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)" LDFLAGS="-L$(host_prefix)/lib" ARFLAGS=$($(package)_arflags)
- $(package)_config_env_darwin=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
$(package)_config_opts+=--prefix=$(host_prefix)
$(package)_config_opts+=--exec-prefix=$(host_prefix)
$(package)_config_opts+=--host=$(HOST)
$(package)_config_opts+=--disable-shared --with-curses
$(package)_config_opts_release=--disable-debug-mode
- $(package)_config_opts_darwin+=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
$(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC"
endef
define $(package)_config_cmds
- ./configure $($(package)_config_opts)
+ $($(package)_autoconf)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/packages/sodium.mk b/contrib/depends/packages/sodium.mk
index e2ce9b349..87b34599e 100644
--- a/contrib/depends/packages/sodium.mk
+++ b/contrib/depends/packages/sodium.mk
@@ -8,15 +8,16 @@ $(package)_patches=disable-glibc-getrandom-getentropy.patch fix-whitespace.patch
define $(package)_set_vars
$(package)_config_opts=--enable-static --disable-shared
$(package)_config_opts+=--prefix=$(host_prefix)
-$(package)_config_opts_android=RANLIB=$($(package)_ranlib) AR=$($(package)_ar) CC=$($(package)_cc)
-$(package)_config_opts_darwin=RANLIB="$(host_prefix)/native/bin/x86_64-apple-darwin11-ranlib" AR="$(host_prefix)/native/bin/x86_64-apple-darwin11-ar" CC="$(host_prefix)/native/bin/$($(package)_cc)"
endef
-define $(package)_config_cmds
+define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/disable-glibc-getrandom-getentropy.patch &&\
- ./autogen.sh &&\
- patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch &&\
- $($(package)_autoconf) $($(package)_config_opts) AR_FLAGS=$($(package)_arflags)
+ autoconf &&\
+ patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/packages/unbound.mk b/contrib/depends/packages/unbound.mk
index 6df298f69..a85c47e4e 100644
--- a/contrib/depends/packages/unbound.mk
+++ b/contrib/depends/packages/unbound.mk
@@ -13,7 +13,7 @@ define $(package)_set_vars
endef
define $(package)_config_cmds
- $($(package)_autoconf) $($(package)_config_opts)
+ $($(package)_autoconf)
endef
define $(package)_build_cmds
diff --git a/contrib/depends/patches/boost/fix_arm_arch.patch b/contrib/depends/patches/boost/fix_arm_arch.patch
new file mode 100644
index 000000000..3cf6b6f4e
--- /dev/null
+++ b/contrib/depends/patches/boost/fix_arm_arch.patch
@@ -0,0 +1,11 @@
+--- boost_1_64_0/tools/build/src/tools/darwin.jam.O 2017-04-17 03:22:26.000000000 +0100
++++ boost_1_64_0/tools/build/src/tools/darwin.jam 2022-05-04 17:26:29.984464447 +0000
+@@ -505,7 +505,7 @@
+ if $(instruction-set) {
+ options = -arch$(_)$(instruction-set) ;
+ } else {
+- options = -arch arm ;
++# options = -arch arm ;
+ }
+ }
+ }
diff --git a/contrib/depends/patches/native_cctools/skip_otool.patch b/contrib/depends/patches/native_cctools/skip_otool.patch
deleted file mode 100644
index 30c4ee524..000000000
--- a/contrib/depends/patches/native_cctools/skip_otool.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- cctools/Makefile.am.O 2016-06-09 15:06:16.000000000 +0100
-+++ cctools/Makefile.am 2019-11-18 08:59:20.078663220 +0000
-@@ -1,7 +1,7 @@
- if ISDARWIN
--SUBDIRS=libstuff ar as misc otool ld64 $(LD_CLASSIC)
-+SUBDIRS=libstuff ar as misc ld64 $(LD_CLASSIC)
- else
--SUBDIRS=libstuff ar as misc libobjc2 otool ld64 $(LD_CLASSIC)
-+SUBDIRS=libstuff ar as misc ld64 $(LD_CLASSIC)
- endif
-
- ACLOCAL_AMFLAGS = -I m4
diff --git a/contrib/depends/patches/protobuf/visibility.patch b/contrib/depends/patches/protobuf/visibility.patch
new file mode 100644
index 000000000..e66d5961f
--- /dev/null
+++ b/contrib/depends/patches/protobuf/visibility.patch
@@ -0,0 +1,159 @@
+--- src/google/protobuf/descriptor.cc.O 2018-07-30 22:16:10.000000000 +0000
++++ src/google/protobuf/descriptor.cc 2022-05-06 13:38:14.827309092 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <algorithm>
+ #include <functional>
+ #include <google/protobuf/stubs/hash.h>
+@@ -7274,3 +7277,6 @@
+
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/extension_set.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/extension_set.cc 2022-05-06 14:48:55.369877050 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <google/protobuf/stubs/hash.h>
+ #include <tuple>
+ #include <utility>
+@@ -1914,3 +1917,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/extension_set_heavy.cc.O 2018-07-30 22:16:10.000000000 +0000
++++ src/google/protobuf/extension_set_heavy.cc 2022-05-06 14:14:27.847320946 +0000
+@@ -35,6 +35,10 @@
+ // Contains methods defined in extension_set.h which cannot be part of the
+ // lite library because they use descriptors or reflection.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/stubs/casts.h>
+ #include <google/protobuf/descriptor.pb.h>
+ #include <google/protobuf/io/coded_stream.h>
+@@ -814,3 +818,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/generated_message_reflection.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/generated_message_reflection.cc 2022-05-06 13:38:49.655540772 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <algorithm>
+ #include <set>
+
+@@ -2420,3 +2423,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/map_field.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/map_field.cc 2022-05-06 13:34:44.913905697 +0000
+@@ -28,6 +28,10 @@
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/map_field.h>
+ #include <google/protobuf/map_field_inl.h>
+
+@@ -462,3 +466,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/text_format.cc.O 2018-07-30 22:16:11.000000000 +0000
++++ src/google/protobuf/text_format.cc 2022-05-06 13:34:58.881999517 +0000
+@@ -32,6 +32,10 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <algorithm>
+ #include <float.h>
+ #include <math.h>
+@@ -2258,3 +2262,6 @@
+
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/wire_format.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/wire_format.cc 2022-05-06 13:06:23.294219228 +0000
+@@ -32,6 +32,10 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <stack>
+ #include <string>
+ #include <vector>
+@@ -1445,3 +1449,7 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/stubs/status.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/stubs/status.cc 2022-05-06 15:18:53.393208814 +0000
+@@ -27,6 +27,11 @@
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/stubs/status.h>
+
+ #include <ostream>
+@@ -132,3 +137,6 @@
+ } // namespace util
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in
index c3a0df59b..5f9501329 100644
--- a/contrib/depends/toolchain.cmake.in
+++ b/contrib/depends/toolchain.cmake.in
@@ -69,22 +69,35 @@ set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Find includes in target
# specify the cross compiler to be used. Darwin uses clang provided by the SDK.
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ if(ARCHITECTURE STREQUAL "aarch64")
+ SET(CLANG_TARGET "arm64-apple-darwin11")
+ SET(CONF_TRIPLE "aarch64-apple-darwin11")
+ SET(BUILD_TAG "mac-armv8")
+ SET(CMAKE_OSX_ARCHITECTURES "arm64")
+ set(ARM ON)
+ set(ARM_ID "armv8-a")
+ else()
+ SET(CLANG_TARGET "x86_64-apple-darwin11")
+ SET(CONF_TRIPLE "x86_64-apple-darwin11")
+ SET(BUILD_TAG "mac-x64")
+ SET(CMAKE_OSX_ARCHITECTURES "x86_64")
+ endif()
+ SET(_CMAKE_TOOLCHAIN_PREFIX @prefix@/native/bin/${CONF_TRIPLE}-)
SET(CMAKE_C_COMPILER @prefix@/native/bin/clang)
- SET(CMAKE_C_COMPILER_TARGET x86_64-apple-darwin11)
+ SET(CMAKE_C_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_C_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
SET(CMAKE_CXX_COMPILER @prefix@/native/bin/clang++ -stdlib=libc++)
- SET(CMAKE_CXX_COMPILER_TARGET x86_64-apple-darwin11)
- SET(CMAKE_ASM_COMPILER_TARGET x86_64-apple-darwin11)
- SET(CMAKE_ASM-ATT_COMPILER_TARGET x86_64-apple-darwin11)
- SET(_CMAKE_TOOLCHAIN_PREFIX x86_64-apple-darwin11-)
+ SET(CMAKE_CXX_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_CXX_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
+ SET(CMAKE_ASM_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_ASM-ATT_COMPILER_TARGET ${CLANG_TARGET})
SET(APPLE True)
- SET(BUILD_TAG "mac-x64")
SET(BUILD_64 ON)
SET(BREW OFF)
SET(PORT OFF)
- SET(CMAKE_OSX_SYSROOT "@sdk@/MacOSX10.11.sdk/")
+ SET(CMAKE_OSX_SYSROOT "@prefix@/native/SDK/")
SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.08")
SET(CMAKE_CXX_STANDARD 14)
- SET(CMAKE_OSX_ARCHITECTURES "x86_64")
SET(LLVM_ENABLE_PIC OFF)
SET(LLVM_ENABLE_PIE OFF)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
@@ -126,7 +139,7 @@ elseif(ARCHITECTURE STREQUAL "aarch64")
set(ARM_ID "armv8-a")
if(ANDROID)
set(BUILD_TAG "android-armv8")
- else()
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(BUILD_TAG "linux-armv8")
endif()
set(BUILD_64 ON)
diff --git a/contrib/gitian/DOCKRUN.md b/contrib/gitian/DOCKRUN.md
index 9a9659473..96998b1fe 100644
--- a/contrib/gitian/DOCKRUN.md
+++ b/contrib/gitian/DOCKRUN.md
@@ -30,12 +30,6 @@ git clone https://github.com/monero-project/monero.git
cd monero/contrib/gitian
```
-If you want Mac binaries included in your build, you need to obtain the MacOS SDK:
-
-```bash
-curl -O https://bitcoincore.org/depends-sources/sdks/MacOSX10.11.sdk.tar.gz
-```
-
Other User Preparation
----------------------
diff --git a/contrib/gitian/README.md b/contrib/gitian/README.md
index 27f33831f..9852b07ba 100644
--- a/contrib/gitian/README.md
+++ b/contrib/gitian/README.md
@@ -165,15 +165,6 @@ popd
Build the binaries
------------------
-**Note:** if you intend to build MacOS binaries, please follow [these instructions](https://github.com/bitcoin-core/docs/blob/master/gitian-building/gitian-building-mac-os-sdk.md) to get the required SDK.
-
-Currently working MacOS solution:
-
-```bash
-curl -O https://bitcoincore.org/depends-sources/sdks/MacOSX10.11.sdk.tar.gz
-mv MacOSX10.11.sdk.tar.gz builder/inputs
-```
-
To build the most recent tag (pass in `--docker` if using docker):
```bash
diff --git a/contrib/gitian/dockrun.sh b/contrib/gitian/dockrun.sh
index 015c411fd..396db126b 100755
--- a/contrib/gitian/dockrun.sh
+++ b/contrib/gitian/dockrun.sh
@@ -53,11 +53,6 @@ docker build --pull -f ${TAG}.Dockerfile -t $TAG .
cd ..
docker run -v /var/run/docker.sock:/var/run/docker.sock -d --name gitrun $TAG
-if [ -f MacOSX10.11.sdk.tar.gz ]; then
- docker cp MacOSX10.11.sdk.tar.gz gitrun:$WORKDIR/builder/inputs/
-else
- echo "No MacOS SDK found, Mac builds will be omitted"
-fi
fi
diff --git a/contrib/gitian/gitian-build.py b/contrib/gitian/gitian-build.py
index 6bf936958..859c2c645 100755
--- a/contrib/gitian/gitian-build.py
+++ b/contrib/gitian/gitian-build.py
@@ -59,9 +59,6 @@ def rebuild():
for i in args.os:
- if i is 'm' and args.nomac:
- continue
-
os_name = platforms[i][0]
tag_name = platforms[i][1]
suffix = platforms[i][2]
@@ -160,13 +157,6 @@ def main():
if not 'LXC_GUEST_IP' in os.environ.keys():
os.environ['LXC_GUEST_IP'] = '10.0.2.5'
- # Disable MacOS build if no SDK found
- args.nomac = False
- if 'm' in args.os and not os.path.isfile('builder/inputs/MacOSX10.11.sdk.tar.gz'):
- if args.build:
- print('Cannot build for MacOS, SDK does not exist. Will build for other OSes')
- args.nomac = True
-
script_name = os.path.basename(sys.argv[0])
# Signer and version shouldn't be empty
if args.signer == '':
diff --git a/contrib/gitian/gitian-osx.yml b/contrib/gitian/gitian-osx.yml
index 3434861d2..b4929e822 100644
--- a/contrib/gitian/gitian-osx.yml
+++ b/contrib/gitian/gitian-osx.yml
@@ -26,11 +26,10 @@ packages:
remotes:
- "url": "https://github.com/monero-project/monero.git"
"dir": "monero"
-files:
-- "MacOSX10.11.sdk.tar.gz"
+files: []
script: |
WRAP_DIR=$HOME/wrapped
- HOSTS="x86_64-apple-darwin11"
+ HOSTS="x86_64-apple-darwin11 aarch64-apple-darwin11"
FAKETIME_HOST_PROGS=""
FAKETIME_PROGS="ar ranlib date dmg genisoimage python"
@@ -88,9 +87,6 @@ script: |
BASEPREFIX=`pwd`/contrib/depends
- mkdir -p ${BASEPREFIX}/SDKs
- tar -C ${BASEPREFIX}/SDKs -xf ${BUILD_DIR}/MacOSX10.11.sdk.tar.gz
-
# Build dependencies for each host
export TAR_OPTIONS=--mtime=2000-01-01T12:00:00
for i in $HOSTS; do