From: tobtoht Date: Sat, 2 Nov 2024 16:33:59 +0000 (+0100) Subject: guix: use llvm17 toolchain for macos X-Git-Url: https://git.nutra.tk/v2?a=commitdiff_plain;h=3b9412fece9cfe5587680df551a6f3390b0dd47d;p=gamesguru%2Ffeather.git guix: use llvm17 toolchain for macos --- diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk index ff1514a7..7517dcc5 100644 --- a/contrib/depends/hosts/darwin.mk +++ b/contrib/depends/hosts/darwin.mk @@ -1,36 +1,27 @@ -OSX_MIN_VERSION=10.14 +OSX_MIN_VERSION=11.0 OSX_SDK_VERSION=11.0 XCODE_VERSION=12.2 XCODE_BUILD_ID=12B45b -LD64_VERSION=609 +LD64_VERSION=711 OSX_SDK=$(host_prefix)/native/SDK -darwin_native_binutils=native_cctools - darwin_native_toolchain=darwin_sdk -# 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. -# At the time of writing, GNU Make v4.2.1 is still being used in supported -# distro releases. -# -# 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++") - -clang_resource_dir=$(shell clang -print-resource-dir) -cctools_TOOLS=AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL DSYMUTIL +clang_prog=clang +clangxx_prog=clang++ +llvm_config_prog=llvm-config -# 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)))))))))))))))))))))))))) +llvm_lib_dir=$(shell $(llvm_config_prog) --libdir) -# 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=llvm-ar +darwin_DSYMUTIL=dsymutil +darwin_NM=llvm-nm +darwin_OBJDUMP=llvm-objdump +darwin_RANLIB=llvm-ranlib +darwin_STRIP=llvm-strip +darwin_LIBTOOL=llvm-libtool-darwin # Flag explanations: # @@ -55,9 +46,7 @@ $(foreach TOOL,$(cctools_TOOLS),$(eval darwin_$(TOOL) = $$(build_prefix)/bin/$$( # Adds the desired paths from the SDK # -darwin_CC_=--target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \ - -B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \ - -isysroot$(OSX_SDK) \ +darwin_CC_=--target=$(host) \ -isysroot$(OSX_SDK) -nostdlibinc \ -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \ @@ -65,18 +54,18 @@ darwin_CC=env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH \ -u LIBRARY_PATH \ $(clang_prog) $(darwin_CC_) -darwin_CXX_=--target=$(host) -mmacosx-version-min=$(OSX_MIN_VERSION) \ - -B$(build_prefix)/bin -mlinker-version=$(LD64_VERSION) \ - -isysroot$(OSX_SDK) -nostdlibinc \ - -iwithsysroot/usr/include/c++/v1 \ - -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks +darwin_CXX_=--target=$(host) \ + -isysroot$(OSX_SDK) -nostdlibinc \ + -iwithsysroot/usr/include/c++/v1 \ + -iwithsysroot/usr/include -iframeworkwithsysroot/System/Library/Frameworks 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) $(darwin_CXX_) -darwin_CFLAGS=-pipe -darwin_CXXFLAGS=-pipe -std=$(CXX_STANDARD) +darwin_CFLAGS=-pipe -mmacosx-version-min=$(OSX_MIN_VERSION) -mlinker-version=$(LD64_VERSION) +darwin_CXXFLAGS=-pipe -mmacosx-version-min=$(OSX_MIN_VERSION) -mlinker-version=$(LD64_VERSION) +darwin_LDFLAGS=-Wl,-platform_version,macos,$(OSX_MIN_VERSION),$(OSX_SDK_VERSION) -fuse-ld=lld darwin_ARFLAGS=cr darwin_release_CFLAGS=-O2 diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk index 5e08c309..b6b97112 100644 --- a/contrib/depends/packages/boost.mk +++ b/contrib/depends/packages/boost.mk @@ -3,7 +3,7 @@ $(package)_version=1.85.0 $(package)_download_path=https://boostorg.jfrog.io/artifactory/main/release/$($(package)_version)/source/ $(package)_file_name=$(package)_$(subst .,_,$($(package)_version)).tar.gz $(package)_sha256_hash=be0d91732d5b0cc6fbb275c7939974457e79b54d6f07ce2e3dfdd68bef883b0b -$(package)_patches=disable_addr2line.patch +$(package)_patches=disable_addr2line.patch filesystem_macos_sdk.patch define $(package)_set_vars $(package)_config_opts=variant=release @@ -29,6 +29,7 @@ endef define $(package)_preprocess_cmds patch -p1 -i $($(package)_patch_dir)/disable_addr2line.patch && \ + patch -p1 -i $($(package)_patch_dir)/filesystem_macos_sdk.patch && \ echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : \"$($(package)_cxxflags) $($(package)_cppflags)\" \"$($(package)_ldflags)\" \"$(boost_archiver_$(host_os))\" \"$($(package)_arflags)\" \"$(host_STRIP)\" \"$(host_RANLIB)\" \"$(host_WINDRES)\" : ;" > user-config.jam endef diff --git a/contrib/depends/packages/darwin_sdk.mk b/contrib/depends/packages/darwin_sdk.mk index 0e82fa53..1bedd61f 100644 --- a/contrib/depends/packages/darwin_sdk.mk +++ b/contrib/depends/packages/darwin_sdk.mk @@ -1,8 +1,8 @@ package=darwin_sdk -$(package)_version=12.2 -$(package)_download_path=https://featherwallet.org/files/sources/ -$(package)_file_name=Xcode-12.2-12B45b-extracted-SDK-with-libcxx-headers.tar.gz -$(package)_sha256_hash=332477876917786b26dd7c3fc1665d2c5cdca81c72755e6a9754f308de77d33b +$(package)_version=15.0 +$(package)_download_path=https://bitcoincore.org/depends-sources/sdks +$(package)_file_name=Xcode-15.0-15A240d-extracted-SDK-with-libcxx-headers.tar.gz +$(package)_sha256_hash=c0c2e7bb92c1fee0c4e9f3a485e4530786732d6c6dd9e9f418c282aa6892f55d define $(package)_stage_cmds mkdir -p $($(package)_staging_dir)/$(host_prefix)/native/SDK &&\ diff --git a/contrib/depends/packages/libgcrypt.mk b/contrib/depends/packages/libgcrypt.mk index 1912cd18..9b452d5b 100644 --- a/contrib/depends/packages/libgcrypt.mk +++ b/contrib/depends/packages/libgcrypt.mk @@ -4,17 +4,19 @@ $(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgcrypt/ $(package)_file_name=libgcrypt-$($(package)_version).tar.gz $(package)_sha256_hash=2382891207d3b000b20c81dbf2036516a535d31abd80f57d455e711e1dde5ff5 $(package)_dependencies=libgpg-error +$(package)_patches=no-programs.patch define $(package)_set_vars $(package)_build_opts=CFLAGS="-fPIE" endef define $(package)_preprocess_cmds + patch -p1 < $($(package)_patch_dir)/no-programs.patch && \ cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux endef define $(package)_config_cmds - $($(package)_autoconf) --disable-shared --enable-static --disable-doc --disable-asm --with-libgpg-error-prefix=$(host_prefix) + $($(package)_autoconf) --disable-shared --enable-static --disable-tests --disable-doc --disable-asm --with-libgpg-error-prefix=$(host_prefix) endef define $(package)_build_cmds diff --git a/contrib/depends/packages/libgpg-error.mk b/contrib/depends/packages/libgpg-error.mk index d5cf9b2a..f7365ae6 100644 --- a/contrib/depends/packages/libgpg-error.mk +++ b/contrib/depends/packages/libgpg-error.mk @@ -3,7 +3,7 @@ $(package)_version=1.50 $(package)_download_path=https://www.gnupg.org/ftp/gcrypt/libgpg-error/ $(package)_file_name=libgpg-error-$($(package)_version).tar.gz $(package)_sha256_hash=34a3b36ec8ad830f8f3ceb5db583d1f6dc8ae4c31d04f6da18ea18dd95396ab0 -$(package)_patches=declare_environ_macos.patch +$(package)_patches=declare_environ_macos.patch no-programs.patch define $(package)_set_vars $(package)_config_opts := --enable-static --disable-shared @@ -14,6 +14,7 @@ endef define $(package)_preprocess_cmds patch -p1 < $($(package)_patch_dir)/declare_environ_macos.patch && \ + patch -p1 < $($(package)_patch_dir)/no-programs.patch && \ cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux endef diff --git a/contrib/depends/packages/libusb.mk b/contrib/depends/packages/libusb.mk index fde34ec9..444a5ebb 100644 --- a/contrib/depends/packages/libusb.mk +++ b/contrib/depends/packages/libusb.mk @@ -3,8 +3,10 @@ $(package)_version=1.0.27 $(package)_download_path=https://github.com/libusb/libusb/releases/download/v$($(package)_version) $(package)_file_name=$(package)-$($(package)_version).tar.bz2 $(package)_sha256_hash=ffaa41d741a8a3bee244ac8e54a72ea05bf2879663c098c82fc5757853441575 +$(package)_patches=fix-c11-check.patch define $(package)_preprocess_cmds + patch -p1 < $($(package)_patch_dir)/fix-c11-check.patch && \ cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub . && \ autoreconf -i endef diff --git a/contrib/depends/packages/native_cctools.mk b/contrib/depends/packages/native_cctools.mk deleted file mode 100644 index 18699a4e..00000000 --- a/contrib/depends/packages/native_cctools.mk +++ /dev/null @@ -1,36 +0,0 @@ -package=native_cctools -$(package)_version=2ef2e931cf641547eb8a68cfebde61003587c9fd -$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive -$(package)_file_name=$($(package)_version).tar.gz -$(package)_sha256_hash=6b73269efdf5c58a070e7357b66ee760501388549d6a12b423723f45888b074b -$(package)_build_subdir=cctools -$(package)_dependencies=native_libtapi -$(package)_patches=no-build-date.patch - -define $(package)_set_vars - $(package)_config_opts=--target=$(host) - $(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib - $(package)_cc=$(clang_prog) - $(package)_cxx=$(clangxx_prog) -endef - -define $(package)_preprocess_cmds - patch -p1 < $($(package)_patch_dir)/no-build-date.patch && \ - cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub cctools -endef - -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 \ No newline at end of file diff --git a/contrib/depends/packages/native_libtapi.mk b/contrib/depends/packages/native_libtapi.mk deleted file mode 100644 index e512c16b..00000000 --- a/contrib/depends/packages/native_libtapi.mk +++ /dev/null @@ -1,20 +0,0 @@ -package=native_libtapi -$(package)_version=664b8414f89612f2dfd35a9b679c345aa5389026 -$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive -$(package)_file_name=$($(package)_version).tar.gz -$(package)_sha256_hash=62e419c12d1c9fad67cc1cd523132bc00db050998337c734c15bc8d73cc02b61 -$(package)_patches=no_embed_git_rev.patch - -define $(package)_preprocess_cmds - patch -p1 -i $($(package)_patch_dir)/no_embed_git_rev.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 && \ - mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \ - cp src/llvm/include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c -endef \ No newline at end of file diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk index a7a77712..58a659cf 100644 --- a/contrib/depends/packages/openssl.mk +++ b/contrib/depends/packages/openssl.mk @@ -9,6 +9,7 @@ $(package)_config_env=AR="$($(package)_ar)" ARFLAGS=$($(package)_arflags) RANLIB $(package)_config_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native" PATH="$(host_prefix)/native/bin" CC=clang AR=ar RANLIB=ranlib $(package)_build_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native" $(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl --libdir=$(host_prefix)/lib +$(package)_config_opts+=no-apps $(package)_config_opts+=no-capieng $(package)_config_opts+=no-dso $(package)_config_opts+=no-dtls1 diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk index 174a3b91..431a98cc 100644 --- a/contrib/depends/packages/packages.mk +++ b/contrib/depends/packages/packages.mk @@ -7,7 +7,7 @@ linux_native_packages = x86_64_linux_packages := flatstart darwin_packages := -darwin_native_packages = darwin_sdk native_cctools native_libtapi +darwin_native_packages = darwin_sdk mingw32_packages = mingw32_native_packages = @@ -18,4 +18,4 @@ qt_mingw32_packages := qt tor_linux_packages := libevent tor_linux tor_darwin_packages := tor_darwin -tor_mingw32_packages := tor_mingw32 \ No newline at end of file +tor_mingw32_packages := tor_mingw32 diff --git a/contrib/depends/packages/qt.mk b/contrib/depends/packages/qt.mk index 47fb50c2..4f5c7249 100644 --- a/contrib/depends/packages/qt.mk +++ b/contrib/depends/packages/qt.mk @@ -4,7 +4,7 @@ $(package)_download_path=https://download.qt.io/official_releases/qt/6.7/$($(pac $(package)_suffix=everywhere-src-$($(package)_version).tar.xz $(package)_file_name=qtbase-$($(package)_suffix) $(package)_sha256_hash=8ccbb9ab055205ac76632c9eeddd1ed6fc66936fc56afc2ed0fd5d9e23da3097 -$(package)_darwin_dependencies=native_cctools native_qt openssl +$(package)_darwin_dependencies=openssl native_qt $(package)_mingw32_dependencies=openssl native_qt $(package)_linux_dependencies=openssl native_qt freetype fontconfig libxcb libxkbcommon libxcb_util libxcb_util_render libxcb_util_keysyms libxcb_util_image libxcb_util_wm libxcb_util_cursor dbus $(package)_patches += fast_fixed_dtoa_no_optimize.patch @@ -22,6 +22,8 @@ $(package)_patches += revert-macOS-Silence-warning-about-supporting-secure.patch $(package)_patches += no-resonance-audio.patch $(package)_patches += fix_static_qt_darwin_camera_permissions.patch $(package)_patches += revert-f67ee7c39.patch +$(package)_patches += macos-available-qtbase.patch +$(package)_patches += macos-available-qtmultimedia.patch #$(package)_patches += fix-static-fontconfig-static-linking.patch $(package)_qttools_file_name=qttools-$($(package)_suffix) @@ -191,6 +193,7 @@ define $(package)_preprocess_cmds -e 's|@host_prefix@|$(host_prefix)|' \ -e 's|@cmake_c_flags@|$(darwin_CC_)|' \ -e 's|@cmake_cxx_flags@|$(darwin_CXX_)|' \ + -e 's|@cmake_ld_flags@|$(darwin_LDFLAGS)|'\ -e 's|@wmf_libs@|$(WMF_LIBS)|' \ toolchain.cmake && \ cd qtbase && \ @@ -198,11 +201,13 @@ define $(package)_preprocess_cmds patch -p1 -i $($(package)_patch_dir)/libxau-fix.patch && \ patch -p1 -i $($(package)_patch_dir)/revert-macOS-Silence-warning-about-supporting-secure.patch && \ patch -p1 -i $($(package)_patch_dir)/fix_static_qt_darwin_camera_permissions.patch && \ + patch -p1 -i $($(package)_patch_dir)/macos-available-qtbase.patch && \ cd ../qtmultimedia && \ patch -p1 -i $($(package)_patch_dir)/qtmultimedia-fixes.patch && \ patch -p1 -i $($(package)_patch_dir)/v4l2.patch && \ patch -p1 -i $($(package)_patch_dir)/no-resonance-audio.patch && \ - patch -p1 -i $($(package)_patch_dir)/revert-f67ee7c39.patch + patch -p1 -i $($(package)_patch_dir)/revert-f67ee7c39.patch && \ + patch -p1 -i $($(package)_patch_dir)/macos-available-qtmultimedia.patch endef define $(package)_config_cmds @@ -210,7 +215,7 @@ define $(package)_config_cmds export PKG_CONFIG_SYSROOT_DIR=/ && \ export PKG_CONFIG_LIBDIR=$(host_prefix)/lib/pkgconfig && \ export QT_MAC_SDK_NO_VERSION_CHECK=1 && \ - env -u C_INCLUDE_PATH -u CPLUS_INCLUDE_PATH -u OBJC_INCLUDE_PATH -u OBJCPLUS_INCLUDE_PATH -u CPATH -u LIBRARY_PATH cmake $($(package)_config_opts) + $($(package)_cmake) endef define $(package)_build_cmds diff --git a/contrib/depends/packages/zlib.mk b/contrib/depends/packages/zlib.mk index 76495a0d..f85a0d28 100644 --- a/contrib/depends/packages/zlib.mk +++ b/contrib/depends/packages/zlib.mk @@ -5,21 +5,13 @@ $(package)_file_name=$(package)-$($(package)_version).tar.xz $(package)_sha256_hash=38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32 define $(package)_config_cmds - CC="$($(package)_cc)" \ - CXX="$($(package)_cxx)" \ - AR="$($(package)_ar)" \ - RANLIB="$($(package)_ranlib)" \ - LIBTOOL="$($(package)_libtool)" \ - LDLAGS="$($(package)_ldflags)" \ - CFLAGS="-fPIE" \ - CXXFLAGS="-fPIE" \ - ./configure --static --prefix=$(host_prefix) + $($(package)_cmake) endef define $(package)_build_cmds - $(MAKE) + $(MAKE) endef define $(package)_stage_cmds - $(MAKE) DESTDIR=$($(package)_staging_dir) install + $(MAKE) DESTDIR=$($(package)_staging_dir) install endef diff --git a/contrib/depends/patches/boost/filesystem_macos_sdk.patch b/contrib/depends/patches/boost/filesystem_macos_sdk.patch new file mode 100644 index 00000000..a502c069 --- /dev/null +++ b/contrib/depends/patches/boost/filesystem_macos_sdk.patch @@ -0,0 +1,13 @@ +diff --git a/libs/filesystem/src/directory.cpp b/libs/filesystem/src/directory.cpp +index 0cf5025..cd38e1b 100644 +--- a/libs/filesystem/src/directory.cpp ++++ b/libs/filesystem/src/directory.cpp +@@ -279,7 +279,7 @@ inline system::error_code dir_itr_close(dir_itr_imp& imp) noexcept + // Obtains a file descriptor from the directory iterator + inline int dir_itr_fd(dir_itr_imp const& imp, system::error_code& ec) + { +- int fd = ::dirfd(static_cast< DIR* >(imp.handle)); ++ int fd = dirfd(static_cast< DIR* >(imp.handle)); + if (BOOST_UNLIKELY(fd < 0)) + { + int err = errno; diff --git a/contrib/depends/patches/libgcrypt/no-programs.patch b/contrib/depends/patches/libgcrypt/no-programs.patch new file mode 100644 index 00000000..fa4e6363 --- /dev/null +++ b/contrib/depends/patches/libgcrypt/no-programs.patch @@ -0,0 +1,37 @@ +diff --git a/src/Makefile.in b/src/Makefile.in +index 48f08f0..92170ef 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -132,7 +132,7 @@ CONFIG_CLEAN_VPATH_FILES = + am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" +-PROGRAMS = $(bin_PROGRAMS) ++PROGRAMS = + am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; + am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ +diff --git a/tests/Makefile.in b/tests/Makefile.in +index 27900c3..c9503dc 100644 +--- a/tests/Makefile.in ++++ b/tests/Makefile.in +@@ -110,8 +110,8 @@ host_triplet = @host@ + @USE_RSA_TRUE@am__append_1 = pkcs1v2 t-rsa-pss t-rsa-15 t-rsa-testparm + @USE_DSA_TRUE@am__append_2 = fips186-dsa dsa-rfc6979 t-dsa + @USE_ECC_TRUE@am__append_3 = curves t-ecdsa t-ed25519 t-cv25519 t-x448 t-ed448 +-TESTS = $(am__EXEEXT_4) $(tests_sh) $(am__EXEEXT_5) $(tests_sh_last) +-EXTRA_PROGRAMS = testapi$(EXEEXT) pkbench$(EXEEXT) ++TESTS = ++EXTRA_PROGRAMS = + noinst_PROGRAMS = testdrv$(EXEEXT) $(am__EXEEXT_4) $(am__EXEEXT_5) \ + fipsdrv$(EXEEXT) rsacvt$(EXEEXT) genhashdata$(EXEEXT) \ + gchash$(EXEEXT) +@@ -147,7 +147,7 @@ am__EXEEXT_4 = version$(EXEEXT) t-secmem$(EXEEXT) mpitests$(EXEEXT) \ + t-mlkem$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \ + $(am__EXEEXT_3) + am__EXEEXT_5 = benchmark$(EXEEXT) bench-slope$(EXEEXT) +-PROGRAMS = $(noinst_PROGRAMS) ++PROGRAMS = + aeswrap_SOURCES = aeswrap.c + aeswrap_OBJECTS = aeswrap.$(OBJEXT) + aeswrap_LDADD = $(LDADD) diff --git a/contrib/depends/patches/libgpg-error/no-programs.patch b/contrib/depends/patches/libgpg-error/no-programs.patch new file mode 100644 index 00000000..38c89a6e --- /dev/null +++ b/contrib/depends/patches/libgpg-error/no-programs.patch @@ -0,0 +1,13 @@ +diff --git a/src/Makefile.in b/src/Makefile.in +index 882f4ad..4c99ddc 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -154,7 +154,7 @@ CONFIG_CLEAN_VPATH_FILES = + am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \ + "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" \ + "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)" +-PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS) ++PROGRAMS = + am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; + am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ diff --git a/contrib/depends/patches/libusb/fix-c11-check.patch b/contrib/depends/patches/libusb/fix-c11-check.patch new file mode 100644 index 00000000..93b00576 --- /dev/null +++ b/contrib/depends/patches/libusb/fix-c11-check.patch @@ -0,0 +1,22 @@ +diff --git a/configure.ac b/configure.ac +index 6dc7c698..eebe10a1 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -46,7 +46,7 @@ dnl note that we don't just check if the compiler accepts '-std=x11' + dnl but also that it supports the _Thread_local keyword because some compilers + dnl (e.g. gcc 4.8) accept the command line option but do not implement TLS + saved_CFLAGS="${CFLAGS}" +-CFLAGS="-std=gnu11" ++CFLAGS="${saved_CFLAGS} -std=gnu11" + AC_MSG_CHECKING([if $CC supports -std=gnu11]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_Thread_local int x;], [x = 42;])], + [AC_MSG_RESULT([yes]) +@@ -55,7 +55,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_Thread_local int x;], [x = 42;])], + c_dialect=]) + if test "x$c_dialect" != xgnu; then + dnl fallback check for -std=c11 compiler support (required) +- CFLAGS="-std=c11" ++ CFLAGS="${saved_CFLAGS} -std=c11" + AC_MSG_CHECKING([if $CC supports -std=c11]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_Thread_local int x;], [x = 42;])], + [AC_MSG_RESULT([yes])], diff --git a/contrib/depends/patches/native_cctools/no-build-date.patch b/contrib/depends/patches/native_cctools/no-build-date.patch deleted file mode 100644 index 8b7d1e1f..00000000 --- a/contrib/depends/patches/native_cctools/no-build-date.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/cctools/ld64/src/ld/Options.cpp b/cctools/ld64/src/ld/Options.cpp -index 3bb8324..033760d 100644 ---- a/cctools/ld64/src/ld/Options.cpp -+++ b/cctools/ld64/src/ld/Options.cpp -@@ -4279,7 +4279,6 @@ void Options::buildSearchPaths(int argc, const char* argv[]) - fVerbose = true; - extern const char ldVersionString[]; - fprintf(stderr, "%s", ldVersionString); -- fprintf(stderr, "BUILD " __TIME__ " " __DATE__"\n"); - fprintf(stderr, "configured to support archs: %s\n", ALL_SUPPORTED_ARCHS); - // if only -v specified, exit cleanly - if ( argc == 2 ) { diff --git a/contrib/depends/patches/native_libtapi/no_embed_git_rev.patch b/contrib/depends/patches/native_libtapi/no_embed_git_rev.patch deleted file mode 100644 index 5c83618e..00000000 --- a/contrib/depends/patches/native_libtapi/no_embed_git_rev.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/src/llvm/CMakeLists.txt b/src/llvm/CMakeLists.txt -index ab92717c8..dff3a292a 100644 ---- a/src/llvm/CMakeLists.txt -+++ b/src/llvm/CMakeLists.txt -@@ -754,7 +754,6 @@ set(LLVM_SRPM_DIR "${CMAKE_CURRENT_BINARY_DIR}/srpm") - - # SVN_REVISION and GIT_COMMIT get set by the call to add_version_info_from_vcs. - # DUMMY_VAR contains a version string which we don't care about. --add_version_info_from_vcs(DUMMY_VAR) - if ( SVN_REVISION ) - set(LLVM_RPM_SPEC_REVISION "r${SVN_REVISION}") - elseif ( GIT_COMMIT ) -diff --git a/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake b/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake -index 6b1c71983..e16326ed6 100644 ---- a/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake -+++ b/src/llvm/cmake/modules/GenerateVersionFromCVS.cmake -@@ -24,7 +24,7 @@ include(VersionFromVCS) - set(ENV{TERM} "dumb") - - function(append_info name path) -- add_version_info_from_vcs(REVISION ${path}) -+ set(REVISION "git-0000000") - string(STRIP "${REVISION}" REVISION) - file(APPEND "${HEADER_FILE}.txt" - "#define ${name} \"${REVISION}\"\n") diff --git a/contrib/depends/patches/qt/macos-available-qtbase.patch b/contrib/depends/patches/qt/macos-available-qtbase.patch new file mode 100644 index 00000000..a85db9b1 --- /dev/null +++ b/contrib/depends/patches/qt/macos-available-qtbase.patch @@ -0,0 +1,35 @@ +diff --git a/src/gui/platform/darwin/qappleiconengine.mm b/src/gui/platform/darwin/qappleiconengine.mm +index a346c4d1f1..a1d02a97cb 100644 +--- a/src/gui/platform/darwin/qappleiconengine.mm ++++ b/src/gui/platform/darwin/qappleiconengine.mm +@@ -362,15 +362,6 @@ auto *configuredImage(const NSImage *image, const QColor &color) + auto *config = [NSImageSymbolConfiguration configurationWithPointSize:48 + weight:NSFontWeightRegular + scale:NSImageSymbolScaleLarge]; +- if (@available(macOS 12, *)) { +- auto *primaryColor = [NSColor colorWithSRGBRed:color.redF() +- green:color.greenF() +- blue:color.blueF() +- alpha:color.alphaF()]; +- +- auto *colorConfig = [NSImageSymbolConfiguration configurationWithHierarchicalColor:primaryColor]; +- config = [config configurationByApplyingConfiguration:colorConfig]; +- } + + return [image imageWithSymbolConfiguration:config]; + } +diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm +index 232b2374b3..d28d966ad1 100644 +--- a/src/gui/rhi/qrhimetal.mm ++++ b/src/gui/rhi/qrhimetal.mm +@@ -4685,10 +4685,6 @@ id QRhiMetalData::createMetalLib(const QShader &shader, QShader::Var + QString *error, QByteArray *entryPoint, QShaderKey *activeKey) + { + QVarLengthArray versions; +- if (@available(macOS 13, iOS 16, *)) +- versions << 30; +- if (@available(macOS 12, iOS 15, *)) +- versions << 24; + if (@available(macOS 11, iOS 14, *)) + versions << 23; + if (@available(macOS 10.15, iOS 13, *)) diff --git a/contrib/depends/patches/qt/macos-available-qtmultimedia.patch b/contrib/depends/patches/qt/macos-available-qtmultimedia.patch new file mode 100644 index 00000000..8700b717 --- /dev/null +++ b/contrib/depends/patches/qt/macos-available-qtmultimedia.patch @@ -0,0 +1,19 @@ +diff --git a/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm b/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm +index 940a964b7..bab2cebe0 100644 +--- a/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm ++++ b/src/plugins/multimedia/darwin/camera/qavfcamerabase.mm +@@ -176,14 +176,6 @@ void QAVFVideoDevices::updateCameraDevices() + #endif + ]; + +-#if QT_DARWIN_PLATFORM_SDK_EQUAL_OR_ABOVE(__MAC_14_0, __IPHONE_17_0, __TVOS_NA, __WATCHOS_NA) +- if (@available(macOS 14, iOS 17, *)) { +- discoveryDevices = [discoveryDevices arrayByAddingObjectsFromArray: @[ +- AVCaptureDeviceTypeExternal, +- AVCaptureDeviceTypeContinuityCamera +- ]]; +- } else +-#endif + { + #ifdef Q_OS_MACOS + QT_WARNING_PUSH diff --git a/contrib/depends/patches/qt/toolchain.cmake b/contrib/depends/patches/qt/toolchain.cmake index 116af0bd..73e96027 100644 --- a/contrib/depends/patches/qt/toolchain.cmake +++ b/contrib/depends/patches/qt/toolchain.cmake @@ -25,6 +25,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(CMAKE_CXX_FLAGS "@cmake_cxx_flags@") set(CMAKE_OBJC_FLAGS "@cmake_c_flags@") set(CMAKE_OBJCXX_FLAGS "@cmake_cxx_flags@") + set(CMAKE_EXE_LINKER_FLAGS "@cmake_ld_flags@") + set(CMAKE_MODULE_LINKER_FLAGS "@cmake_ld_flags@") + set(CMAKE_SHARED_LINKER_FLAGS "@cmake_ld_flags@") + SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") set(CMAKE_INSTALL_NAME_TOOL @target@-install_name_tool) endif() \ No newline at end of file diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in index 4b998913..3a6eb11b 100644 --- a/contrib/depends/toolchain.cmake.in +++ b/contrib/depends/toolchain.cmake.in @@ -94,28 +94,30 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") SET(BUILD_TAG "mac-x64") SET(CMAKE_OSX_ARCHITECTURES "x86_64") endif() + SET(CMAKE_SYSTEM_VERSION 20.1) SET(_CMAKE_TOOLCHAIN_PREFIX @prefix@/native/bin/${CONF_TRIPLE}-) SET(CMAKE_C_COMPILER @CC@) SET(CMAKE_C_COMPILER_TARGET ${CLANG_TARGET}) - SET(CMAKE_C_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX}) - SET(CMAKE_CXX_COMPILER @CXX@ -stdlib=libc++ ) - SET(CMAKE_CXX_COMPILER_TARGET ${CLANG_TARGET}) - SET(CMAKE_CXX_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX}) + SET(CMAKE_C_FLAGS "@CFLAGS@") + SET(CMAKE_CXX_COMPILER @CXX@ -stdlib=libc++) + SET(CMAKE_CXX_FLAGS "@CXXFLAGS@") + SET(CMAKE_EXE_LINKER_FLAGS "@LDFLAGS@") + SET(CMAKE_MODULE_LINKER_FLAGS "@LDFLAGS@") + SET(CMAKE_SHARED_LINKER_FLAGS "@LDFLAGS@") + SET(CMAKE_INSTALL_NAME_TOOL llvm-install-name-tool) SET(CMAKE_ASM_COMPILER clang) - SET(CMAKE_ASM-ATT_COMPILER as) + SET(CMAKE_ASM-ATT_COMPILER llvm-as) SET(CMAKE_ASM_COMPILER_TARGET ${CLANG_TARGET}) SET(CMAKE_ASM-ATT_COMPILER_TARGET ${CLANG_TARGET}) - SET(CMAKE_AR @prefix@/native/bin/${CLANG_TARGET}-ar) - SET(CMAKE_RANLIB @prefix@/native/bin/${CLANG_TARGET}-ranlib) + SET(CMAKE_AR llvm-ar) + SET(CMAKE_RANLIB llvm-ranlib) SET(APPLE True) SET(BUILD_64 ON) SET(BREW OFF) SET(PORT OFF) SET(CMAKE_OSX_SYSROOT "@prefix@/native/SDK") - SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.14") + SET(CMAKE_OSX_DEPLOYMENT_TARGET "11.0") SET(CMAKE_CXX_STANDARD 17) - SET(LLVM_ENABLE_PIC OFF) - SET(LLVM_ENABLE_PIE OFF) else() SET(CMAKE_C_COMPILER @CC@) SET(CMAKE_CXX_COMPILER @CXX@) diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh index c4342080..3156986d 100755 --- a/contrib/guix/libexec/build.sh +++ b/contrib/guix/libexec/build.sh @@ -153,18 +153,7 @@ for p in "${PATHS[@]}"; do done # Disable Guix ld auto-rpath behavior -case "$HOST" in - *darwin*) - # The auto-rpath behavior is necessary for darwin builds as some native - # tools built by depends refer to and depend on Guix-built native - # libraries - # - # After the native packages in depends are built, the ld wrapper should - # no longer affect our build, as clang would instead reach for - # x86_64-apple-darwin-ld from cctools - ;; - *) export GUIX_LD_WRAPPER_DISABLE_RPATH=yes ;; -esac +export GUIX_LD_WRAPPER_DISABLE_RPATH=yes # Make /usr/bin if it doesn't exist [ -e /usr/bin ] || mkdir -p /usr/bin @@ -196,16 +185,6 @@ export GLIBC_DYNAMIC_LINKER=${glibc_dynamic_linker} # Environment variables for determinism export TAR_OPTIONS="--owner=0 --group=0 --numeric-owner --mtime='@${SOURCE_DATE_EPOCH}' --sort=name" export TZ="UTC" -case "$HOST" in - *darwin*) - # cctools AR, unlike GNU binutils AR, does not have a deterministic mode - # or a configure flag to enable determinism by default, it only - # understands if this env-var is set or not. See: - # - # https://github.com/tpoechtrager/cctools-port/blob/55562e4073dea0fbfd0b20e0bf69ffe6390c7f97/cctools/ar/archive.c#L334 - export ZERO_AR_DATE=yes - ;; -esac #################### # Depends Building # diff --git a/contrib/guix/manifest.scm b/contrib/guix/manifest.scm index 682c7eb7..6ec92a69 100644 --- a/contrib/guix/manifest.scm +++ b/contrib/guix/manifest.scm @@ -353,7 +353,8 @@ thus should be able to compile on most platforms where these exist.") (list gcc-toolchain-11 (list gcc-toolchain-11 "static") - binutils - clang-toolchain-10 - ldid)) + ldid + clang-toolchain-17 + lld-17 + (make-lld-wrapper lld-17 #:lld-as-ld? #t))) (else '()))))) diff --git a/contrib/macdeploy/Info.plist.in b/contrib/macdeploy/Info.plist.in index f069b89c..56777971 100644 --- a/contrib/macdeploy/Info.plist.in +++ b/contrib/macdeploy/Info.plist.in @@ -3,7 +3,7 @@ LSMinimumSystemVersion - 10.14 + 11 LSArchitecturePriority diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8ca40be0..245d62a5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -300,12 +300,6 @@ if(STATIC AND UNIX AND NOT APPLE) target_link_libraries(feather PRIVATE Qt6::QComposePlatformInputContextPlugin) endif() -if(DEPENDS AND APPLE) - # TODO: Needed for ___isOSVersionAtLeast - target_link_libraries(feather PRIVATE - ${CMAKE_OSX_SYSROOT}/lib/darwin/libclang_rt.osx.a) -endif() - if(DEPENDS AND UNIX AND NOT APPLE) target_link_libraries(XCB::XCB INTERFACE ${LIBXAU_LIBRARY}) endif()