aboutsummaryrefslogtreecommitdiff
path: root/depends
diff options
context:
space:
mode:
Diffstat (limited to 'depends')
-rw-r--r--depends/Makefile14
-rw-r--r--depends/README.md22
-rw-r--r--depends/builders/darwin.mk6
-rw-r--r--depends/builders/default.mk3
-rw-r--r--depends/config.site.in6
-rw-r--r--depends/funcs.mk8
-rwxr-xr-xdepends/gen_id1
-rw-r--r--depends/hosts/android.mk15
-rw-r--r--depends/hosts/darwin.mk61
-rw-r--r--depends/hosts/default.mk2
-rw-r--r--depends/packages/boost.mk2
-rw-r--r--depends/packages/miniupnpc.mk2
-rw-r--r--depends/packages/native_cctools.mk39
-rw-r--r--depends/packages/native_libtapi.mk22
-rw-r--r--depends/packages/native_llvm.mk25
-rw-r--r--depends/packages/packages.mk13
-rw-r--r--depends/packages/qt.mk34
-rw-r--r--depends/patches/native_libtapi/disable_zlib.patch17
-rw-r--r--depends/patches/qt/clang_18_libpng.patch40
-rw-r--r--depends/patches/qt/fix_android_jni_static.patch17
-rw-r--r--depends/patches/qt/mac-qmake.conf1
-rw-r--r--depends/patches/qt/no_warnings_for_symbols.patch11
22 files changed, 105 insertions, 256 deletions
diff --git a/depends/Makefile b/depends/Makefile
index 005d9696fb..52a9a14e56 100644
--- a/depends/Makefile
+++ b/depends/Makefile
@@ -101,10 +101,6 @@ host_os+=$(findstring netbsd,$(full_host_os))
host_os+=$(findstring openbsd,$(full_host_os))
host_os+=$(findstring mingw32,$(full_host_os))
-ifeq (android,$(findstring android,$(full_host_os)))
-host_os:=android
-endif
-
host_os:=$(strip $(host_os))
ifeq ($(host_os),)
host_os=$(full_host_os)
@@ -185,9 +181,6 @@ all_packages = $(packages) $(native_packages)
meta_depends = Makefile config.guess config.sub funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
-$(host_arch)_$(host_os)_native_binutils?=$($(host_os)_native_binutils)
-$(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)
-
include funcs.mk
final_build_id_long+=$(shell $(build_SHA256SUM) config.site.in)
@@ -217,9 +210,8 @@ $(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
# tool needs to be available in $PATH at all times.
#
# 2. If the tool is _**not**_ expected to be available in $PATH at all times
-# (such as is the case for our native_cctools binutils tools), it needs to
-# be referred to by its absolute path, such as would be output by the
-# AC_PATH_{PROG,TOOL} macros.
+# it needs to be referred to by its absolute path, such as would be output
+# by the AC_PATH_{PROG,TOOL} macros.
#
# Minor note: it is also okay to refer to tools by their absolute path even if
# we expect them to be available in $PATH at all times, more specificity does
@@ -233,7 +225,7 @@ $(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_
-e 's|@RANLIB@|$(host_RANLIB)|' \
-e 's|@NM@|$(host_NM)|' \
-e 's|@STRIP@|$(host_STRIP)|' \
- -e 's|@OTOOL@|$(host_OTOOL)|' \
+ -e 's|@OBJDUMP@|$(host_OBJDUMP)|' \
-e 's|@DSYMUTIL@|$(host_DSYMUTIL)|' \
-e 's|@build_os@|$(build_os)|' \
-e 's|@host_os@|$(host_os)|' \
diff --git a/depends/README.md b/depends/README.md
index 10e0985cf4..adaeed468f 100644
--- a/depends/README.md
+++ b/depends/README.md
@@ -38,21 +38,22 @@ Common `host-platform-triplet`s for cross compilation are:
- `riscv32-linux-gnu` for Linux RISC-V 32 bit
- `riscv64-linux-gnu` for Linux RISC-V 64 bit
- `s390x-linux-gnu` for Linux S390X
-- `armv7a-linux-android` for Android ARM 32 bit
-- `aarch64-linux-android` for Android ARM 64 bit
-- `x86_64-linux-android` for Android x86 64 bit
-The paths are automatically configured and no other options are needed unless targeting [Android](../doc/build-android.md).
+The paths are automatically configured and no other options are needed.
### Install the required dependencies: Ubuntu & Debian
+#### Common
+
+ apt install automake bison cmake curl libtool make patch pkg-config python3 xz-utils
+
#### For macOS cross compilation
- sudo apt-get install curl bsdmainutils cmake zip
+ apt install clang lld llvm g++ zip
-Note: You must obtain the macOS SDK before proceeding with a cross-compile.
-Under the depends directory, create a subdirectory named `SDKs`.
-Then, place the extracted SDK under this new directory.
+Clang 18 or later is required. You must also obtain the macOS SDK before
+proceeding with a cross-compile. Under the depends directory, create a
+subdirectory named `SDKs`. Then, place the extracted SDK under this new directory.
For more information, see [SDK Extraction](../contrib/macdeploy/README.md#sdk-extraction).
#### For Win64 cross compilation
@@ -63,7 +64,7 @@ For more information, see [SDK Extraction](../contrib/macdeploy/README.md#sdk-ex
Common linux dependencies:
- sudo apt-get install make automake cmake curl g++-multilib libtool binutils bsdmainutils pkg-config python3 patch bison
+ sudo apt-get install g++-multilib binutils
For linux ARM cross compilation:
@@ -118,9 +119,6 @@ The following can be set when running make: `make FOO=bar`
- `DEBUG`: Disable some optimizations and enable more runtime checking
- `HOST_ID_SALT`: Optional salt to use when generating host package ids
- `BUILD_ID_SALT`: Optional salt to use when generating build package ids
-- `FORCE_USE_SYSTEM_CLANG`: (EXPERTS ONLY) When cross-compiling for macOS, use Clang found in the
- system's `$PATH` rather than the default prebuilt release of Clang
- from llvm.org. Clang 8 or later is required
- `LOG`: Use file-based logging for individual packages. During a package build its log file
resides in the `depends` directory, and the log file is printed out automatically in case
of build error. After successful build log files are moved along with package archives
diff --git a/depends/builders/darwin.mk b/depends/builders/darwin.mk
index 554bfd2c3e..2b59353e84 100644
--- a/depends/builders/darwin.mk
+++ b/depends/builders/darwin.mk
@@ -3,7 +3,7 @@ build_darwin_CXX:=$(shell xcrun -f clang++) -isysroot$(shell xcrun --show-sdk-pa
build_darwin_AR:=$(shell xcrun -f ar)
build_darwin_RANLIB:=$(shell xcrun -f ranlib)
build_darwin_STRIP:=$(shell xcrun -f strip)
-build_darwin_OTOOL:=$(shell xcrun -f otool)
+build_darwin_OBJDUMP:=$(shell xcrun -f objdump)
build_darwin_NM:=$(shell xcrun -f nm)
build_darwin_DSYMUTIL:=$(shell xcrun -f dsymutil)
build_darwin_SHA256SUM=shasum -a 256
@@ -15,11 +15,9 @@ darwin_CXX:=$(shell xcrun -f clang++) -stdlib=libc++ -isysroot$(shell xcrun --sh
darwin_AR:=$(shell xcrun -f ar)
darwin_RANLIB:=$(shell xcrun -f ranlib)
darwin_STRIP:=$(shell xcrun -f strip)
-darwin_OTOOL:=$(shell xcrun -f otool)
+darwin_OBJDUMP:=$(shell xcrun -f objdump)
darwin_NM:=$(shell xcrun -f nm)
darwin_DSYMUTIL:=$(shell xcrun -f dsymutil)
-darwin_native_binutils=
-darwin_native_toolchain=
x86_64_darwin_CFLAGS += -arch x86_64
x86_64_darwin_CXXFLAGS += -arch x86_64
diff --git a/depends/builders/default.mk b/depends/builders/default.mk
index 50869cd8a2..2a1709d98a 100644
--- a/depends/builders/default.mk
+++ b/depends/builders/default.mk
@@ -1,6 +1,7 @@
default_build_CC = gcc
default_build_CXX = g++
default_build_AR = ar
+default_build_OBJDUMP = objdump
default_build_TAR = tar
default_build_RANLIB = ranlib
default_build_STRIP = strip
@@ -12,7 +13,7 @@ build_$(build_os)_$1 ?= $$(default_build_$1)
build_$(build_arch)_$(build_os)_$1 ?= $$(build_$(build_os)_$1)
build_$1=$$(build_$(build_arch)_$(build_os)_$1)
endef
-$(foreach var,CC CXX AR TAR RANLIB NM STRIP SHA256SUM DOWNLOAD OTOOL DSYMUTIL TOUCH,$(eval $(call add_build_tool_func,$(var))))
+$(foreach var,CC CXX AR TAR RANLIB NM STRIP SHA256SUM DOWNLOAD OBJDUMP DSYMUTIL TOUCH,$(eval $(call add_build_tool_func,$(var))))
define add_build_flags_func
build_$(build_arch)_$(build_os)_$1 += $(build_$(build_os)_$1)
build_$1=$$(build_$(build_arch)_$(build_os)_$1)
diff --git a/depends/config.site.in b/depends/config.site.in
index 81975f02b9..f6bed6a9d4 100644
--- a/depends/config.site.in
+++ b/depends/config.site.in
@@ -118,9 +118,9 @@ if test -n "@STRIP@"; then
fi
if test "@host_os@" = darwin; then
- if test -n "@OTOOL@"; then
- OTOOL="@OTOOL@"
- ac_cv_path_OTOOL="${OTOOL}"
+ if test -n "@OBJDUMP@"; then
+ OBJDUMP="@OBJDUMP@"
+ ac_cv_path_OBJDUMP="${OBJDUMP}"
fi
if test -n "@DSYMUTIL@"; then
diff --git a/depends/funcs.mk b/depends/funcs.mk
index d8a72421b4..3c0dc7a7fc 100644
--- a/depends/funcs.mk
+++ b/depends/funcs.mk
@@ -46,7 +46,7 @@ endef
define int_get_build_id
$(eval $(1)_dependencies += $($(1)_$(host_arch)_$(host_os)_dependencies) $($(1)_$(host_os)_dependencies))
-$(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($($(1)_type)_native_toolchain) $($($(1)_type)_native_binutils) $($(1)_dependencies)))
+$(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($(1)_dependencies)))
$(foreach dep,$($(1)_all_dependencies),$(eval $(1)_build_id_deps+=$(dep)-$($(dep)_version)-$($(dep)_recipe_hash)))
$(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id))
$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
@@ -180,6 +180,9 @@ $(1)_cmake=env CC="$$($(1)_cc)" \
CXXFLAGS="$$($(1)_cppflags) $$($(1)_cxxflags)" \
LDFLAGS="$$($(1)_ldflags)" \
cmake -DCMAKE_INSTALL_PREFIX:PATH="$$($($(1)_type)_prefix)" \
+ -DCMAKE_AR=`which $$($(1)_ar)` \
+ -DCMAKE_NM=`which $$($(1)_nm)` \
+ -DCMAKE_RANLIB=`which $$($(1)_ranlib)` \
-DCMAKE_INSTALL_LIBDIR=lib/ \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=$(V) \
@@ -294,6 +297,3 @@ $(foreach package,$(all_packages),$(eval $(call int_config_attach_build_config,$
#create build targets
$(foreach package,$(all_packages),$(eval $(call int_add_cmds,$(package))))
-
-#special exception: if a toolchain package exists, all non-native packages depend on it
-$(foreach package,$(packages),$(eval $($(package)_extracted): |$($($(host_arch)_$(host_os)_native_toolchain)_cached) $($($(host_arch)_$(host_os)_native_binutils)_cached) ))
diff --git a/depends/gen_id b/depends/gen_id
index 8518b4e674..e2e2273b2d 100755
--- a/depends/gen_id
+++ b/depends/gen_id
@@ -53,7 +53,6 @@
echo "BEGIN AR"
bash -c "${AR} --version"
env | grep '^AR_'
- echo "ZERO_AR_DATE=${ZERO_AR_DATE}"
echo "END AR"
echo "BEGIN NM"
diff --git a/depends/hosts/android.mk b/depends/hosts/android.mk
deleted file mode 100644
index a1c8c56dba..0000000000
--- a/depends/hosts/android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-ifeq ($(HOST),armv7a-linux-android)
-android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang++
-android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)eabi$(ANDROID_API_LEVEL)-clang
-else
-android_CXX=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang++
-android_CC=$(ANDROID_TOOLCHAIN_BIN)/$(HOST)$(ANDROID_API_LEVEL)-clang
-endif
-
-android_CFLAGS=-std=$(C_STANDARD)
-android_CXXFLAGS=-std=$(CXX_STANDARD)
-
-android_AR=$(ANDROID_TOOLCHAIN_BIN)/llvm-ar
-android_RANLIB=$(ANDROID_TOOLCHAIN_BIN)/llvm-ranlib
-
-android_cmake_system=Android
diff --git a/depends/hosts/darwin.mk b/depends/hosts/darwin.mk
index 639259ace3..564381d1e9 100644
--- a/depends/hosts/darwin.mk
+++ b/depends/hosts/darwin.mk
@@ -2,29 +2,10 @@ OSX_MIN_VERSION=11.0
OSX_SDK_VERSION=14.0
XCODE_VERSION=15.0
XCODE_BUILD_ID=15A240d
-LD64_VERSION=711
+LLD_VERSION=711
OSX_SDK=$(SDK_PATH)/Xcode-$(XCODE_VERSION)-$(XCODE_BUILD_ID)-extracted-SDK-with-libcxx-headers
-darwin_native_binutils=native_cctools
-
-ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
-# FORCE_USE_SYSTEM_CLANG is empty, so we use our depends-managed, pinned clang
-# from llvm.org
-
-# Clang is a dependency of native_cctools when FORCE_USE_SYSTEM_CLANG is empty
-darwin_native_toolchain=native_cctools
-
-clang_prog=$(build_prefix)/bin/clang
-clangxx_prog=$(clang_prog)++
-llvm_config_prog=$(build_prefix)/bin/llvm-config
-
-else
-# FORCE_USE_SYSTEM_CLANG is non-empty, so we use the clang from the user's
-# system
-
-darwin_native_toolchain=
-
# We can't just use $(shell command -v clang) because GNU Make handles builtins
# in a special way and doesn't know that `command` is a POSIX-standard builtin
# prior to 1af314465e5dfe3e8baa839a32a72e83c04f26ef, first released in v4.2.90.
@@ -34,20 +15,13 @@ darwin_native_toolchain=
# Source: https://lists.gnu.org/archive/html/bug-make/2017-11/msg00017.html
clang_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang")
clangxx_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v clang++")
-llvm_config_prog=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-config")
-
-llvm_lib_dir=$(shell $(llvm_config_prog) --libdir)
-endif
-
-cctools_TOOLS=AR RANLIB STRIP NM OTOOL DSYMUTIL
-# Make-only lowercase function
-lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
-
-# For well-known tools provided by cctools, make sure that their well-known
-# variable is set to the full path of the tool, just like how AC_PATH_{TOO,PROG}
-# would.
-$(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(host)-$(call lc,$(TOOL))))
+darwin_AR=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-ar")
+darwin_DSYMUTIL=$(shell $(SHELL) $(.SHELLFLAGS) "command -v dsymutil")
+darwin_NM=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-nm")
+darwin_OBJDUMP=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-objdump")
+darwin_RANLIB=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-ranlib")
+darwin_STRIP=$(shell $(SHELL) $(.SHELLFLAGS) "command -v llvm-strip")
# Flag explanations:
#
@@ -56,11 +30,6 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
# Ensures that modern linker features are enabled. See here for more
# details: https://github.com/bitcoin/bitcoin/pull/19407.
#
-# -B$(build_prefix)/bin
-#
-# Explicitly point to our binaries (e.g. cctools) so that they are
-# ensured to be found and preferred over other possibilities.
-#
# -isysroot$(OSX_SDK) -nostdlibinc
#
# Disable default include paths built into the compiler as well as
@@ -75,12 +44,16 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$(
#
# Indicate to the linker the platform, the oldest supported version,
# and the SDK used.
+#
+# -no_adhoc_codesign
+#
+# Disable adhoc codesigning (for now) when using LLVM tooling, to avoid
+# non-determinism issues with the Identifier field.
darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
-u LIBRARY_PATH \
$(clang_prog) --target=$(host) \
- -B$(build_prefix)/bin \
-isysroot$(OSX_SDK) -nostdlibinc \
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
@@ -88,18 +61,18 @@ darwin_CXX=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \
-u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH \
-u LIBRARY_PATH \
$(clangxx_prog) --target=$(host) \
- -B$(build_prefix)/bin \
-isysroot$(OSX_SDK) -nostdlibinc \
-iwithsysroot/usr/include/c++/v1 \
-iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks
-darwin_CFLAGS=-pipe -std=$(C_STANDARD) -mmacosx-version-min=$(OSX_MIN_VERSION)
-darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD) -mmacosx-version-min=$(OSX_MIN_VERSION)
+darwin_CFLAGS=-pipe -std=$(C_STANDARD) -mmacos-version-min=$(OSX_MIN_VERSION)
+darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD) -mmacos-version-min=$(OSX_MIN_VERSION)
darwin_LDFLAGS=-Wl,-platform_version,macos,$(OSX_MIN_VERSION),$(OSX_SDK_VERSION)
ifneq ($(build_os),darwin)
-darwin_CFLAGS += -mlinker-version=$(LD64_VERSION)
-darwin_CXXFLAGS += -mlinker-version=$(LD64_VERSION)
+darwin_CFLAGS += -mlinker-version=$(LLD_VERSION)
+darwin_CXXFLAGS += -mlinker-version=$(LLD_VERSION)
+darwin_LDFLAGS += -Wl,-no_adhoc_codesign -fuse-ld=lld
endif
darwin_release_CFLAGS=-O2
diff --git a/depends/hosts/default.mk b/depends/hosts/default.mk
index 6a6cab6cc6..d82c33f29c 100644
--- a/depends/hosts/default.mk
+++ b/depends/hosts/default.mk
@@ -38,5 +38,5 @@ host_$1 = $$($(host_arch)_$(host_os)_$1)
host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
endef
-$(foreach tool,CC CXX AR RANLIB STRIP NM OBJCOPY OTOOL DSYMUTIL,$(eval $(call add_host_tool_func,$(tool))))
+$(foreach tool,CC CXX AR RANLIB STRIP NM OBJCOPY OBJDUMP DSYMUTIL,$(eval $(call add_host_tool_func,$(tool))))
$(foreach flags,CFLAGS CXXFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
diff --git a/depends/packages/boost.mk b/depends/packages/boost.mk
index 7f0389b30d..938e9971ba 100644
--- a/depends/packages/boost.mk
+++ b/depends/packages/boost.mk
@@ -1,6 +1,6 @@
package=boost
$(package)_version=1.81.0
-$(package)_download_path=https://boostorg.jfrog.io/artifactory/main/release/$($(package)_version)/source/
+$(package)_download_path=https://archives.boost.io/release/$($(package)_version)/source/
$(package)_file_name=boost_$(subst .,_,$($(package)_version)).tar.gz
$(package)_sha256_hash=205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6
diff --git a/depends/packages/miniupnpc.mk b/depends/packages/miniupnpc.mk
index 077e3bb1ee..341031b5f8 100644
--- a/depends/packages/miniupnpc.mk
+++ b/depends/packages/miniupnpc.mk
@@ -1,6 +1,6 @@
package=miniupnpc
$(package)_version=2.2.7
-$(package)_download_path=https://miniupnp.tuxfamily.org/files/
+$(package)_download_path=http://miniupnp.free.fr/files/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=b0c3a27056840fd0ec9328a5a9bac3dc5e0ec6d2e8733349cf577b0aa1e70ac1
$(package)_patches=dont_leak_info.patch cmake_get_src_addr.patch fix_windows_snprintf.patch
diff --git a/depends/packages/native_cctools.mk b/depends/packages/native_cctools.mk
deleted file mode 100644
index 3148e51048..0000000000
--- a/depends/packages/native_cctools.mk
+++ /dev/null
@@ -1,39 +0,0 @@
-package=native_cctools
-$(package)_version=c74fafe86076713cb8e6f937af43b6df6da1f42d
-$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
-$(package)_file_name=$($(package)_version).tar.gz
-$(package)_sha256_hash=e2c1588d505a69c32e079f4e616e0f117d5478429040e394f624f43f2796e6bc
-$(package)_build_subdir=cctools
-$(package)_dependencies=native_libtapi
-
-define $(package)_set_vars
- $(package)_config_opts=--target=$(host) --enable-lto-support
- $(package)_config_opts+=--with-llvm-config=$(llvm_config_prog)
- $(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
- $(package)_cc=$(clang_prog)
- $(package)_cxx=$(clangxx_prog)
-endef
-
-ifneq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
-define $(package)_preprocess_cmds
- mkdir -p $($(package)_staging_prefix_dir)/lib && \
- cp $(llvm_lib_dir)/libLTO.so $($(package)_staging_prefix_dir)/lib/
-endef
-else
-endif
-
-define $(package)_config_cmds
- $($(package)_autoconf)
-endef
-
-define $(package)_build_cmds
- $(MAKE)
-endef
-
-define $(package)_stage_cmds
- $(MAKE) DESTDIR=$($(package)_staging_dir) install
-endef
-
-define $(package)_postprocess_cmds
- rm -rf share
-endef
diff --git a/depends/packages/native_libtapi.mk b/depends/packages/native_libtapi.mk
deleted file mode 100644
index fb5ab0b4dc..0000000000
--- a/depends/packages/native_libtapi.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-package=native_libtapi
-$(package)_version=eb33a59f2e30ff9724dc1ea8bee8b5229b0557c9
-$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
-$(package)_file_name=$($(package)_version).tar.gz
-$(package)_sha256_hash=d4d46c64622f13d6938cecf989046d9561011bb59e8ee835f8f39825d67f578f
-$(package)_patches=disable_zlib.patch
-
-ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
-$(package)_dependencies=native_llvm
-endif
-
-define $(package)_preprocess_cmds
- patch -p1 < $($(package)_patch_dir)/disable_zlib.patch
-endef
-
-define $(package)_build_cmds
- CC=$(clang_prog) CXX=$(clangxx_prog) INSTALLPREFIX=$($(package)_staging_prefix_dir) ./build.sh
-endef
-
-define $(package)_stage_cmds
- ./install.sh
-endef
diff --git a/depends/packages/native_llvm.mk b/depends/packages/native_llvm.mk
deleted file mode 100644
index 09994eb012..0000000000
--- a/depends/packages/native_llvm.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-package=native_llvm
-$(package)_version=17.0.6
-$(package)_major_version=$(firstword $(subst ., ,$($(package)_version)))
-$(package)_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version)
-ifneq (,$(findstring aarch64,$(BUILD)))
-$(package)_file_name=clang+llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz
-$(package)_sha256_hash=6dd62762285326f223f40b8e4f2864b5c372de3f7de0731cb7cd55ca5287b75a
-else
-$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-22.04.tar.xz
-$(package)_sha256_hash=884ee67d647d77e58740c1e645649e29ae9e8a6fe87c1376be0f3a30f3cc9ab3
-endif
-
-define $(package)_stage_cmds
- mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_major_version)/include && \
- mkdir -p $($(package)_staging_prefix_dir)/bin && \
- mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
- cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
- cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ && \
- cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
- cp bin/llvm-config $($(package)_staging_prefix_dir)/bin/ && \
- cp include/llvm-c/ExternC.h $($(package)_staging_prefix_dir)/include/llvm-c && \
- cp include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c && \
- cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
- cp -r lib/clang/$($(package)_major_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_major_version)/include/
-endef
diff --git a/depends/packages/packages.mk b/depends/packages/packages.mk
index fb52fd4499..01ed0d7a92 100644
--- a/depends/packages/packages.mk
+++ b/depends/packages/packages.mk
@@ -5,12 +5,10 @@ boost_packages = boost
libevent_packages = libevent
qrencode_linux_packages = qrencode
-qrencode_android_packages = qrencode
qrencode_darwin_packages = qrencode
qrencode_mingw32_packages = qrencode
qt_linux_packages:=qt expat libxcb xcb_proto libXau xproto freetype fontconfig libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
-qt_android_packages=qt
qt_darwin_packages=qt
qt_mingw32_packages=qt
@@ -26,14 +24,3 @@ multiprocess_packages = libmultiprocess capnp
multiprocess_native_packages = native_libmultiprocess native_capnp
usdt_linux_packages=systemtap
-
-darwin_native_packages =
-
-ifneq ($(build_os),darwin)
-darwin_native_packages += native_cctools native_libtapi
-
-ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
-darwin_native_packages+= native_llvm
-endif
-
-endif
diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
index d057b2d410..d35139dd2d 100644
--- a/depends/packages/qt.mk
+++ b/depends/packages/qt.mk
@@ -1,9 +1,9 @@
package=qt
-$(package)_version=5.15.13
+$(package)_version=5.15.14
$(package)_download_path=https://download.qt.io/official_releases/qt/5.15/$($(package)_version)/submodules
$(package)_suffix=everywhere-opensource-src-$($(package)_version).tar.xz
$(package)_file_name=qtbase-$($(package)_suffix)
-$(package)_sha256_hash=4cca51dcc1f22ceeee6b3e33cd1c3a60b14e85e24644dca3af89a2c2989ab809
+$(package)_sha256_hash=500d3b390048e9538c28b5f523dfea6936f9c2e10d24ab46580ff57d430b98be
$(package)_linux_dependencies=freetype fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm
$(package)_qt_libs=corelib network widgets gui plugins testlib
$(package)_linguist_tools = lrelease lupdate lconvert
@@ -12,23 +12,24 @@ $(package)_patches += qttools_src.pro
$(package)_patches += mac-qmake.conf
$(package)_patches += fix_qt_pkgconfig.patch
$(package)_patches += no-xlib.patch
-$(package)_patches += fix_android_jni_static.patch
$(package)_patches += dont_hardcode_pwd.patch
$(package)_patches += qtbase-moc-ignore-gcc-macro.patch
+$(package)_patches += no_warnings_for_symbols.patch
$(package)_patches += rcc_hardcode_timestamp.patch
$(package)_patches += duplicate_lcqpafonts.patch
$(package)_patches += guix_cross_lib_path.patch
$(package)_patches += fix-macos-linker.patch
$(package)_patches += memory_resource.patch
+$(package)_patches += clang_18_libpng.patch
$(package)_patches += utc_from_string_no_optimize.patch
$(package)_patches += windows_lto.patch
$(package)_patches += zlib-timebits64.patch
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
-$(package)_qttranslations_sha256_hash=24d4c58bc2a40c0f44f59ee64af4192c7d0038c1e45af61646cfc5b65058f271
+$(package)_qttranslations_sha256_hash=5b94d1a11b566908622fcca2f8b799744d2f8a68da20be4caa5953ed63b10489
$(package)_qttools_file_name=qttools-$($(package)_suffix)
-$(package)_qttools_sha256_hash=57c9794c572c4e02871f2e7581525752b0cf85ea16cfab23a4ac9ba7b39a5d34
+$(package)_qttools_sha256_hash=12061a85baf5f4de8fbc795e1d3872b706f340211b9e70962caeffc6f5e89563
$(package)_extra_sources = $($(package)_qttranslations_file_name)
$(package)_extra_sources += $($(package)_qttools_file_name)
@@ -138,7 +139,7 @@ ifneq ($(build_os),darwin)
$(package)_config_opts_darwin += -xplatform macx-clang-linux
$(package)_config_opts_darwin += -device-option MAC_SDK_PATH=$(OSX_SDK)
$(package)_config_opts_darwin += -device-option MAC_SDK_VERSION=$(OSX_SDK_VERSION)
-$(package)_config_opts_darwin += -device-option CROSS_COMPILE="$(host)-"
+$(package)_config_opts_darwin += -device-option CROSS_COMPILE="llvm-"
$(package)_config_opts_darwin += -device-option MAC_TARGET=$(host)
$(package)_config_opts_darwin += -device-option XCODE_VERSION=$(XCODE_VERSION)
endif
@@ -185,24 +186,6 @@ $(package)_config_opts_mingw32 += -pch
ifneq ($(LTO),)
$(package)_config_opts_mingw32 += -ltcg
endif
-
-$(package)_config_opts_android = -xplatform android-clang
-$(package)_config_opts_android += -android-sdk $(ANDROID_SDK)
-$(package)_config_opts_android += -android-ndk $(ANDROID_NDK)
-$(package)_config_opts_android += -android-ndk-platform android-$(ANDROID_API_LEVEL)
-$(package)_config_opts_android += -egl
-$(package)_config_opts_android += -no-dbus
-$(package)_config_opts_android += -opengl es2
-$(package)_config_opts_android += -qt-freetype
-$(package)_config_opts_android += -no-fontconfig
-$(package)_config_opts_android += -L $(host_prefix)/lib
-$(package)_config_opts_android += -I $(host_prefix)/include
-$(package)_config_opts_android += -pch
-$(package)_config_opts_android += -no-feature-vulkan
-
-$(package)_config_opts_aarch64_android += -android-arch arm64-v8a
-$(package)_config_opts_armv7a_android += -android-arch armeabi-v7a
-$(package)_config_opts_x86_64_android += -android-arch x86_64
endef
define $(package)_fetch_cmds
@@ -243,10 +226,11 @@ define $(package)_preprocess_cmds
patch -p1 -i $($(package)_patch_dir)/fix-macos-linker.patch && \
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
- patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
patch -p1 -i $($(package)_patch_dir)/memory_resource.patch && \
+ patch -p1 -i $($(package)_patch_dir)/no_warnings_for_symbols.patch && \
+ patch -p1 -i $($(package)_patch_dir)/clang_18_libpng.patch && \
patch -p1 -i $($(package)_patch_dir)/rcc_hardcode_timestamp.patch && \
patch -p1 -i $($(package)_patch_dir)/duplicate_lcqpafonts.patch && \
patch -p1 -i $($(package)_patch_dir)/utc_from_string_no_optimize.patch && \
diff --git a/depends/patches/native_libtapi/disable_zlib.patch b/depends/patches/native_libtapi/disable_zlib.patch
deleted file mode 100644
index 6c7691214a..0000000000
--- a/depends/patches/native_libtapi/disable_zlib.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-build: disable zlib
-
-This isn't needed, and causes issues when clang-tblgen
-is built, but trys to reach for a system libz.so.
-
-diff --git a/build.sh b/build.sh
-index e25d2f732..ec8422621 100755
---- a/build.sh
-+++ b/build.sh
-@@ -66,6 +66,7 @@ cmake ../src/llvm \
- -DCMAKE_INSTALL_PREFIX=$INSTALLPREFIX \
- -DTAPI_REPOSITORY_STRING=$TAPI_VERSION \
- -DTAPI_FULL_VERSION=$TAPI_VERSION \
-+ -DLLVM_ENABLE_ZLIB=OFF \
- $CMAKE_EXTRA_ARGS
-
- echo ""
diff --git a/depends/patches/qt/clang_18_libpng.patch b/depends/patches/qt/clang_18_libpng.patch
new file mode 100644
index 0000000000..e807905b32
--- /dev/null
+++ b/depends/patches/qt/clang_18_libpng.patch
@@ -0,0 +1,40 @@
+fix Qt macOS build with Clang 18
+
+ See:
+ https://github.com/pnggroup/libpng/commit/893b8113f04d408cc6177c6de19c9889a48faa24.
+
+ In a similar manner as zlib (madler/zlib#895),
+ libpng contains a header configuration that's no longer valid and
+ hasn't been exercised for the macOS target.
+
+ - The target OS conditional macros are misused. Specifically
+ `TARGET_OS_MAC` covers all Apple targets, including iOS, and it
+ should not be checked with `#if defined` as they would always be
+ defined (to either 1 or 0) on Apple platforms.
+ - `#include <fp.h>` no longer works for the macOS target and results
+ in a compilation failure. macOS ships all required functions in
+ `math.h`, and clients should use `math.h` instead.
+
+--- a/qtbase/src/3rdparty/libpng/pngpriv.h
++++ b/qtbase/src/3rdparty/libpng/pngpriv.h
+@@ -514,18 +514,8 @@
+ */
+ # include <float.h>
+
+-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
+- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
+- /* We need to check that <math.h> hasn't already been included earlier
+- * as it seems it doesn't agree with <fp.h>, yet we should really use
+- * <fp.h> if possible.
+- */
+-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
+-# include <fp.h>
+-# endif
+-# else
+-# include <math.h>
+-# endif
++# include <math.h>
++
+ # if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
+ /* Amiga SAS/C: We must include builtin FPU functions when compiling using
+ * MATH=68881
diff --git a/depends/patches/qt/fix_android_jni_static.patch b/depends/patches/qt/fix_android_jni_static.patch
deleted file mode 100644
index 79824f244a..0000000000
--- a/depends/patches/qt/fix_android_jni_static.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- old/qtbase/src/plugins/platforms/android/androidjnimain.cpp
-+++ new/qtbase/src/plugins/platforms/android/androidjnimain.cpp
-@@ -979,6 +979,14 @@ Q_DECL_EXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void */*reserved*/)
- __android_log_print(ANDROID_LOG_FATAL, "Qt", "registerNatives failed");
- return -1;
- }
-+
-+ const jint ret = QT_PREPEND_NAMESPACE(QtAndroidPrivate::initJNI(vm, env));
-+ if (ret != 0)
-+ {
-+ __android_log_print(ANDROID_LOG_FATAL, "Qt", "initJNI failed");
-+ return ret;
-+ }
-+
- QWindowSystemInterfacePrivate::TabletEvent::setPlatformSynthesizesMouse(false);
-
- m_javaVM = vm;
diff --git a/depends/patches/qt/mac-qmake.conf b/depends/patches/qt/mac-qmake.conf
index cb94bf07b4..a29db20004 100644
--- a/depends/patches/qt/mac-qmake.conf
+++ b/depends/patches/qt/mac-qmake.conf
@@ -13,6 +13,7 @@ QMAKE_MAC_SDK.macosx.Path = $${MAC_SDK_PATH}
QMAKE_MAC_SDK.macosx.platform_name = macosx
QMAKE_MAC_SDK.macosx.SDKVersion = $${MAC_SDK_VERSION}
QMAKE_MAC_SDK.macosx.PlatformPath = /phony
+QMAKE_CXXFLAGS += -fuse-ld=lld
!host_build: QMAKE_CFLAGS += -target $${MAC_TARGET}
!host_build: QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CFLAGS
!host_build: QMAKE_CXXFLAGS += -target $${MAC_TARGET}
diff --git a/depends/patches/qt/no_warnings_for_symbols.patch b/depends/patches/qt/no_warnings_for_symbols.patch
new file mode 100644
index 0000000000..11cdc599ed
--- /dev/null
+++ b/depends/patches/qt/no_warnings_for_symbols.patch
@@ -0,0 +1,11 @@
+--- a/qtbase/mkspecs/features/mac/no_warn_empty_obj_files.prf
++++ b/qtbase/mkspecs/features/mac/no_warn_empty_obj_files.prf
+@@ -1,7 +1,7 @@
+ # Prevent warnings about object files without any symbols. This is a common
+ # thing in Qt as we tend to build files unconditionally, and then use ifdefs
+ # to compile out parts that are not relevant.
+-QMAKE_RANLIB += -no_warning_for_no_symbols
++# QMAKE_RANLIB += -no_warning_for_no_symbols
+
+ # We have to tell 'ar' to not run ranlib by itself
+ QMAKE_AR += -S