aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
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