mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
Merge #19761: build: improve sed robustness by not using sed
3de365e4f1
build: replace wingenminiupnpcstrings sed with a patch in miniupnpc package (fanquake)bbc01a753d
build: replace qtranslations lrelease sed with a patch in qt package (fanquake)c723e4176e
build: replace FreeType back-compat sed with a patch in qt package (fanquake)3aaa39d436
build: replace pwd sed in qt package with a patch (fanquake)9d440f4e11
build: remove no-longer needed qt workaround (fanquake)bf85eace1a
build: remove no-longer needed qt configure workaround (fanquake)4af59a407a
build: use patch rather than sed in zeromq package (fanquake)cc107a3af1
build: use patch rather than sed in native_cctools package (fanquake)865cb23a48
build: use patch rather than sed in fontconfig package (fanquake)335bd7f8bc
build: use patch rather than sed in Boost package (fanquake)f36140d00c
build: use patch rather than sed in bdb package (fanquake) Pull request description: While using `sed` can be handy to use for a quick-fix, these instances accumulate, and can become unmaintainable. Not only that, but using sed isn't necessarily robust and it can fail silently. Most of our usage is also missing any documentation explaining why something is being done, when it should be updated/removed etc. Rather than relying on sed going forward, where possible, I've converted our sed usage into patches. These are easier to maintain, contain documentation, and should fail loudly when they don't apply. The remaining sed usage, (1 in miniupnpc, the rest in qt), are non-trivial to remove, as they are using build-time variables, or some input from the environment. This also steals 2 related commits out of #19716. Related to #16838. ACKs for top commit: hebasto: re-ACK3de365e4f1
, only `drop_lrelease_dependency.patch` updated. Travis makes ARM build without errors now. theuni: ACK3de365e4f1
. Tree-SHA512: b39afcb237e4421f9caabbd665af93fd2e749a1cdd42b1d5ee2261059120005c0e82994d315e679c317d23794eab5c7727f51cae403c94a9c4e4fd7eee9e7ee6
This commit is contained in:
commit
2562d5d238
@ -4,6 +4,7 @@ $(package)_download_path=https://download.oracle.com/berkeley-db
|
|||||||
$(package)_file_name=db-$($(package)_version).NC.tar.gz
|
$(package)_file_name=db-$($(package)_version).NC.tar.gz
|
||||||
$(package)_sha256_hash=12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef
|
$(package)_sha256_hash=12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef
|
||||||
$(package)_build_subdir=build_unix
|
$(package)_build_subdir=build_unix
|
||||||
|
$(package)_patches=clang_cxx_11.patch
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication --enable-option-checking
|
$(package)_config_opts=--disable-shared --enable-cxx --disable-replication --enable-option-checking
|
||||||
@ -14,8 +15,7 @@ $(package)_cppflags_mingw32=-DUNICODE -D_UNICODE
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
sed -i.old 's/__atomic_compare_exchange/__atomic_compare_exchange_db/' dbinc/atomic.h && \
|
patch -p1 < $($(package)_patch_dir)/clang_cxx_11.patch && \
|
||||||
sed -i.old 's/atomic_init/atomic_init_db/' dbinc/atomic.h mp/mp_region.c mp/mp_mvcc.c mp/mp_fget.c mutex/mut_method.c mutex/mut_tas.c && \
|
|
||||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub dist
|
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub dist
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ $(package)_version=1_70_0
|
|||||||
$(package)_download_path=https://dl.bintray.com/boostorg/release/1.70.0/source/
|
$(package)_download_path=https://dl.bintray.com/boostorg/release/1.70.0/source/
|
||||||
$(package)_file_name=boost_$($(package)_version).tar.bz2
|
$(package)_file_name=boost_$($(package)_version).tar.bz2
|
||||||
$(package)_sha256_hash=430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778
|
$(package)_sha256_hash=430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778
|
||||||
|
$(package)_patches=unused_var_in_process.patch
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts_release=variant=release
|
$(package)_config_opts_release=variant=release
|
||||||
@ -31,9 +32,8 @@ $(package)_cxxflags_linux=-fPIC
|
|||||||
$(package)_cxxflags_android=-fPIC
|
$(package)_cxxflags_android=-fPIC
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# Fix unused variable in boost_process, can be removed after upgrading to 1.72
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
sed -i.old "s/int ret_sig = 0;//" boost/process/detail/posix/wait_group.hpp && \
|
patch -p1 < $($(package)_patch_dir)/unused_var_in_process.patch && \
|
||||||
echo "using $($(package)_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$($(package)_archiver_$(host_os))\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
|
echo "using $($(package)_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$($(package)_archiver_$(host_os))\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -4,23 +4,23 @@ $(package)_download_path=https://www.freedesktop.org/software/fontconfig/release
|
|||||||
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
$(package)_file_name=$(package)-$($(package)_version).tar.bz2
|
||||||
$(package)_sha256_hash=b449a3e10c47e1d1c7a6ec6e2016cca73d3bd68fbbd4f0ae5cc6b573f7d6c7f3
|
$(package)_sha256_hash=b449a3e10c47e1d1c7a6ec6e2016cca73d3bd68fbbd4f0ae5cc6b573f7d6c7f3
|
||||||
$(package)_dependencies=freetype expat
|
$(package)_dependencies=freetype expat
|
||||||
|
$(package)_patches=remove_char_width_usage.patch gperf_header_regen.patch
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--disable-docs --disable-static --disable-libxml2 --disable-iconv
|
$(package)_config_opts=--disable-docs --disable-static --disable-libxml2 --disable-iconv
|
||||||
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
$(package)_config_opts += --disable-dependency-tracking --enable-option-checking
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
define $(package)_preprocess_cmds
|
||||||
|
patch -p1 < $($(package)_patch_dir)/remove_char_width_usage.patch && \
|
||||||
|
patch -p1 < $($(package)_patch_dir)/gperf_header_regen.patch
|
||||||
|
endef
|
||||||
|
|
||||||
define $(package)_config_cmds
|
define $(package)_config_cmds
|
||||||
$($(package)_autoconf)
|
$($(package)_autoconf)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
# 2.12.1 uses CHAR_WIDTH which is reserved and clashes with some glibc versions, but newer versions of fontconfig
|
|
||||||
# have broken makefiles which needlessly attempt to re-generate headers with gperf.
|
|
||||||
# Instead, change all uses of CHAR_WIDTH, and disable the rule that forces header re-generation.
|
|
||||||
# This can be removed once the upstream build is fixed.
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
sed -i 's/CHAR_WIDTH/CHARWIDTH/g' fontconfig/fontconfig.h src/fcobjshash.gperf src/fcobjs.h src/fcobjshash.h && \
|
|
||||||
sed -i 's/fcobjshash.h: fcobjshash.gperf/fcobjshash.h:/' src/Makefile && \
|
|
||||||
$(MAKE)
|
$(MAKE)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@ $(package)_version=2.0.20180203
|
|||||||
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
|
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
|
||||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||||
$(package)_sha256_hash=90dda8c7563ca6cd4a83e23b3c66dbbea89603a1675bfdb852897c2c9cc220b7
|
$(package)_sha256_hash=90dda8c7563ca6cd4a83e23b3c66dbbea89603a1675bfdb852897c2c9cc220b7
|
||||||
|
$(package)_patches=dont_use_wingen.patch
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_build_opts=CC="$($(package)_cc)"
|
$(package)_build_opts=CC="$($(package)_cc)"
|
||||||
@ -14,7 +15,7 @@ endef
|
|||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
mkdir dll && \
|
mkdir dll && \
|
||||||
sed -e 's|MINIUPNPC_VERSION_STRING \"version\"|MINIUPNPC_VERSION_STRING \"$($(package)_version)\"|' -e 's|OS/version|$(host)|' miniupnpcstrings.h.in > miniupnpcstrings.h && \
|
sed -e 's|MINIUPNPC_VERSION_STRING \"version\"|MINIUPNPC_VERSION_STRING \"$($(package)_version)\"|' -e 's|OS/version|$(host)|' miniupnpcstrings.h.in > miniupnpcstrings.h && \
|
||||||
sed -i.old "s|miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings|miniupnpcstrings.h: miniupnpcstrings.h.in|" Makefile.mingw
|
patch -p1 < $($(package)_patch_dir)/dont_use_wingen.patch
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_build_cmds
|
define $(package)_build_cmds
|
||||||
|
@ -4,6 +4,8 @@ $(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
|
|||||||
$(package)_file_name=$($(package)_version).tar.gz
|
$(package)_file_name=$($(package)_version).tar.gz
|
||||||
$(package)_sha256_hash=e51995a843533a3dac155dd0c71362dd471597a2d23f13dff194c6285362f875
|
$(package)_sha256_hash=e51995a843533a3dac155dd0c71362dd471597a2d23f13dff194c6285362f875
|
||||||
$(package)_build_subdir=cctools
|
$(package)_build_subdir=cctools
|
||||||
|
$(package)_patches=ld64_disable_threading.patch
|
||||||
|
|
||||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||||
$(package)_clang_version=8.0.0
|
$(package)_clang_version=8.0.0
|
||||||
$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version)
|
$(package)_clang_download_path=https://releases.llvm.org/$($(package)_clang_version)
|
||||||
@ -78,7 +80,7 @@ endef
|
|||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \
|
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/build.sh && \
|
||||||
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \
|
CC=$($(package)_cc) CXX=$($(package)_cxx) INSTALLPREFIX=$($(package)_extract_dir) ./libtapi/install.sh && \
|
||||||
sed -i.old "/define HAVE_PTHREADS/d" $($(package)_build_subdir)/ld64/src/ld/InputFiles.h
|
patch -p1 < $($(package)_patch_dir)/ld64_disable_threading.patch
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_config_cmds
|
define $(package)_config_cmds
|
||||||
|
@ -8,7 +8,10 @@ $(package)_dependencies=zlib
|
|||||||
$(package)_linux_dependencies=freetype fontconfig libxcb
|
$(package)_linux_dependencies=freetype fontconfig libxcb
|
||||||
$(package)_build_subdir=qtbase
|
$(package)_build_subdir=qtbase
|
||||||
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
$(package)_qt_libs=corelib network widgets gui plugins testlib
|
||||||
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch fix_rcc_determinism.patch fix_riscv64_arch.patch xkb-default.patch no-xlib.patch fix_android_qmake_conf.patch fix_android_jni_static.patch
|
$(package)_patches=fix_qt_pkgconfig.patch mac-qmake.conf fix_configure_mac.patch fix_no_printer.patch
|
||||||
|
$(package)_patches+= fix_rcc_determinism.patch fix_riscv64_arch.patch xkb-default.patch no-xlib.patch
|
||||||
|
$(package)_patches+= fix_android_qmake_conf.patch fix_android_jni_static.patch dont_hardcode_pwd.patch
|
||||||
|
$(package)_patches+= freetype_back_compat.patch drop_lrelease_dependency.patch
|
||||||
|
|
||||||
# Update OSX_QT_TRANSLATIONS when this is updated
|
# Update OSX_QT_TRANSLATIONS when this is updated
|
||||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||||
@ -190,11 +193,10 @@ define $(package)_extract_cmds
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
sed -i.old "s|FT_Get_Font_Format|FT_Get_X11_Font_Format|" qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp && \
|
patch -p1 -i $($(package)_patch_dir)/freetype_back_compat.patch && \
|
||||||
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
|
sed -i.old "s|updateqm.commands = \$$$$\$$$$LRELEASE|updateqm.commands = $($(package)_extract_dir)/qttools/bin/lrelease|" qttranslations/translations/translations.pro && \
|
||||||
sed -i.old "/updateqm.depends =/d" qttranslations/translations/translations.pro && \
|
patch -p1 -i $($(package)_patch_dir)/drop_lrelease_dependency.patch && \
|
||||||
sed -i.old "s/src_plugins.depends = src_sql src_network/src_plugins.depends = src_network/" qtbase/src/src.pro && \
|
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch &&\
|
||||||
sed -i.old -e 's/if \[ "$$$$XPLATFORM_MAC" = "yes" \]; then xspecvals=$$$$(macSDKify/if \[ "$$$$BUILD_ON_MAC" = "yes" \]; then xspecvals=$$$$(macSDKify/' -e 's|/bin/pwd|pwd|' qtbase/configure && \
|
|
||||||
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
mkdir -p qtbase/mkspecs/macx-clang-linux &&\
|
||||||
cp -f qtbase/mkspecs/macx-clang/Info.plist.lib qtbase/mkspecs/macx-clang-linux/ &&\
|
cp -f qtbase/mkspecs/macx-clang/Info.plist.lib qtbase/mkspecs/macx-clang-linux/ &&\
|
||||||
cp -f qtbase/mkspecs/macx-clang/Info.plist.app qtbase/mkspecs/macx-clang-linux/ &&\
|
cp -f qtbase/mkspecs/macx-clang/Info.plist.app qtbase/mkspecs/macx-clang-linux/ &&\
|
||||||
|
@ -3,6 +3,7 @@ $(package)_version=4.3.1
|
|||||||
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
|
$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
|
||||||
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
$(package)_file_name=$(package)-$($(package)_version).tar.gz
|
||||||
$(package)_sha256_hash=bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb
|
$(package)_sha256_hash=bcbabe1e2c7d0eec4ed612e10b94b112dd5f06fcefa994a0c79a45d835cd21eb
|
||||||
|
$(package)_patches=remove_libstd_link.patch
|
||||||
|
|
||||||
define $(package)_set_vars
|
define $(package)_set_vars
|
||||||
$(package)_config_opts=--without-docs --disable-shared --disable-curve --disable-curve-keygen --disable-perf
|
$(package)_config_opts=--without-docs --disable-shared --disable-curve --disable-curve-keygen --disable-perf
|
||||||
@ -15,6 +16,7 @@ define $(package)_set_vars
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_preprocess_cmds
|
define $(package)_preprocess_cmds
|
||||||
|
patch -p1 < $($(package)_patch_dir)/remove_libstd_link.patch && \
|
||||||
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
|
cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub config
|
||||||
endef
|
endef
|
||||||
|
|
||||||
@ -31,6 +33,5 @@ define $(package)_stage_cmds
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define $(package)_postprocess_cmds
|
define $(package)_postprocess_cmds
|
||||||
sed -i.old "s/ -lstdc++//" lib/pkgconfig/libzmq.pc && \
|
|
||||||
rm -rf bin share lib/*.la
|
rm -rf bin share lib/*.la
|
||||||
endef
|
endef
|
||||||
|
147
depends/patches/bdb/clang_cxx_11.patch
Normal file
147
depends/patches/bdb/clang_cxx_11.patch
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
commit 3311d68f11d1697565401eee6efc85c34f022ea7
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Mon Aug 17 20:03:56 2020 +0800
|
||||||
|
|
||||||
|
Fix C++11 compatibility
|
||||||
|
|
||||||
|
diff --git a/dbinc/atomic.h b/dbinc/atomic.h
|
||||||
|
index 0034dcc..7c11d4a 100644
|
||||||
|
--- a/dbinc/atomic.h
|
||||||
|
+++ b/dbinc/atomic.h
|
||||||
|
@@ -70,7 +70,7 @@ typedef struct {
|
||||||
|
* These have no memory barriers; the caller must include them when necessary.
|
||||||
|
*/
|
||||||
|
#define atomic_read(p) ((p)->value)
|
||||||
|
-#define atomic_init(p, val) ((p)->value = (val))
|
||||||
|
+#define atomic_init_db(p, val) ((p)->value = (val))
|
||||||
|
|
||||||
|
#ifdef HAVE_ATOMIC_SUPPORT
|
||||||
|
|
||||||
|
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
|
||||||
|
#define atomic_inc(env, p) __atomic_inc(p)
|
||||||
|
#define atomic_dec(env, p) __atomic_dec(p)
|
||||||
|
#define atomic_compare_exchange(env, p, o, n) \
|
||||||
|
- __atomic_compare_exchange((p), (o), (n))
|
||||||
|
+ __atomic_compare_exchange_db((p), (o), (n))
|
||||||
|
static inline int __atomic_inc(db_atomic_t *p)
|
||||||
|
{
|
||||||
|
int temp;
|
||||||
|
@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
|
||||||
|
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
||||||
|
* which configure could be changed to use.
|
||||||
|
*/
|
||||||
|
-static inline int __atomic_compare_exchange(
|
||||||
|
+static inline int __atomic_compare_exchange_db(
|
||||||
|
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
|
||||||
|
{
|
||||||
|
atomic_value_t was;
|
||||||
|
@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange(
|
||||||
|
#define atomic_dec(env, p) (--(p)->value)
|
||||||
|
#define atomic_compare_exchange(env, p, oldval, newval) \
|
||||||
|
(DB_ASSERT(env, atomic_read(p) == (oldval)), \
|
||||||
|
- atomic_init(p, (newval)), 1)
|
||||||
|
+ atomic_init_db(p, (newval)), 1)
|
||||||
|
#else
|
||||||
|
#define atomic_inc(env, p) __atomic_inc(env, p)
|
||||||
|
#define atomic_dec(env, p) __atomic_dec(env, p)
|
||||||
|
diff --git a/mp/mp_fget.c b/mp/mp_fget.c
|
||||||
|
index 5fdee5a..0b75f57 100644
|
||||||
|
--- a/mp/mp_fget.c
|
||||||
|
+++ b/mp/mp_fget.c
|
||||||
|
@@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */
|
||||||
|
|
||||||
|
/* Initialize enough so we can call __memp_bhfree. */
|
||||||
|
alloc_bhp->flags = 0;
|
||||||
|
- atomic_init(&alloc_bhp->ref, 1);
|
||||||
|
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||||
|
#ifdef DIAGNOSTIC
|
||||||
|
if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
|
||||||
|
__db_errx(env,
|
||||||
|
@@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */
|
||||||
|
MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize,
|
||||||
|
PROT_READ);
|
||||||
|
|
||||||
|
- atomic_init(&alloc_bhp->ref, 1);
|
||||||
|
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||||
|
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
|
||||||
|
alloc_bhp->priority = bhp->priority;
|
||||||
|
alloc_bhp->pgno = bhp->pgno;
|
||||||
|
diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c
|
||||||
|
index 34467d2..f05aa0c 100644
|
||||||
|
--- a/mp/mp_mvcc.c
|
||||||
|
+++ b/mp/mp_mvcc.c
|
||||||
|
@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp)
|
||||||
|
#else
|
||||||
|
memcpy(frozen_bhp, bhp, SSZA(BH, buf));
|
||||||
|
#endif
|
||||||
|
- atomic_init(&frozen_bhp->ref, 0);
|
||||||
|
+ atomic_init_db(&frozen_bhp->ref, 0);
|
||||||
|
if (mutex != MUTEX_INVALID)
|
||||||
|
frozen_bhp->mtx_buf = mutex;
|
||||||
|
else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
|
||||||
|
@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp)
|
||||||
|
#endif
|
||||||
|
alloc_bhp->mtx_buf = mutex;
|
||||||
|
MUTEX_LOCK(env, alloc_bhp->mtx_buf);
|
||||||
|
- atomic_init(&alloc_bhp->ref, 1);
|
||||||
|
+ atomic_init_db(&alloc_bhp->ref, 1);
|
||||||
|
F_CLR(alloc_bhp, BH_FROZEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/mp/mp_region.c b/mp/mp_region.c
|
||||||
|
index e6cece9..ddbe906 100644
|
||||||
|
--- a/mp/mp_region.c
|
||||||
|
+++ b/mp/mp_region.c
|
||||||
|
@@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
|
||||||
|
MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
|
||||||
|
return (ret);
|
||||||
|
SH_TAILQ_INIT(&htab[i].hash_bucket);
|
||||||
|
- atomic_init(&htab[i].hash_page_dirty, 0);
|
||||||
|
+ atomic_init_db(&htab[i].hash_page_dirty, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
|
||||||
|
hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID :
|
||||||
|
mtx_base + i;
|
||||||
|
SH_TAILQ_INIT(&hp->hash_bucket);
|
||||||
|
- atomic_init(&hp->hash_page_dirty, 0);
|
||||||
|
+ atomic_init_db(&hp->hash_page_dirty, 0);
|
||||||
|
#ifdef HAVE_STATISTICS
|
||||||
|
hp->hash_io_wait = 0;
|
||||||
|
hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;
|
||||||
|
diff --git a/mutex/mut_method.c b/mutex/mut_method.c
|
||||||
|
index 2588763..5c6d516 100644
|
||||||
|
--- a/mutex/mut_method.c
|
||||||
|
+++ b/mutex/mut_method.c
|
||||||
|
@@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval)
|
||||||
|
MUTEX_LOCK(env, mtx);
|
||||||
|
ret = atomic_read(v) == oldval;
|
||||||
|
if (ret)
|
||||||
|
- atomic_init(v, newval);
|
||||||
|
+ atomic_init_db(v, newval);
|
||||||
|
MUTEX_UNLOCK(env, mtx);
|
||||||
|
|
||||||
|
return (ret);
|
||||||
|
diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c
|
||||||
|
index f3922e0..e40fcdf 100644
|
||||||
|
--- a/mutex/mut_tas.c
|
||||||
|
+++ b/mutex/mut_tas.c
|
||||||
|
@@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags)
|
||||||
|
|
||||||
|
#ifdef HAVE_SHARED_LATCHES
|
||||||
|
if (F_ISSET(mutexp, DB_MUTEX_SHARED))
|
||||||
|
- atomic_init(&mutexp->sharecount, 0);
|
||||||
|
+ atomic_init_db(&mutexp->sharecount, 0);
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
if (MUTEX_INIT(&mutexp->tas)) {
|
||||||
|
@@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex)
|
||||||
|
F_CLR(mutexp, DB_MUTEX_LOCKED);
|
||||||
|
/* Flush flag update before zeroing count */
|
||||||
|
MEMBAR_EXIT();
|
||||||
|
- atomic_init(&mutexp->sharecount, 0);
|
||||||
|
+ atomic_init_db(&mutexp->sharecount, 0);
|
||||||
|
} else {
|
||||||
|
DB_ASSERT(env, sharecount > 0);
|
||||||
|
MEMBAR_EXIT();
|
22
depends/patches/boost/unused_var_in_process.patch
Normal file
22
depends/patches/boost/unused_var_in_process.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
commit dbd95cdaefdea95307d004f019a1c394cf9389f0
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Mon Aug 17 20:15:17 2020 +0800
|
||||||
|
|
||||||
|
Remove unused variable in Boost Process
|
||||||
|
|
||||||
|
This causes issues with our linters / CI.
|
||||||
|
|
||||||
|
Can be removed once depends Boost is 1.71.0 or later.
|
||||||
|
|
||||||
|
diff --git a/boost/process/detail/posix/wait_group.hpp b/boost/process/detail/posix/wait_group.hpp
|
||||||
|
index 9dc249803..2502d9772 100644
|
||||||
|
--- a/boost/process/detail/posix/wait_group.hpp
|
||||||
|
+++ b/boost/process/detail/posix/wait_group.hpp
|
||||||
|
@@ -137,7 +137,6 @@ inline bool wait_until(
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
- int ret_sig = 0;
|
||||||
|
int status;
|
||||||
|
if ((::waitpid(timeout_pid, &status, WNOHANG) != 0)
|
||||||
|
&& (WIFEXITED(status) || WIFSIGNALED(status)))
|
24
depends/patches/fontconfig/gperf_header_regen.patch
Normal file
24
depends/patches/fontconfig/gperf_header_regen.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
commit 7b6eb33ecd88768b28c67ce5d2d68a7eed5936b6
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 25 14:34:53 2020 +0800
|
||||||
|
|
||||||
|
Remove rule that causes inadvertant header regeneration
|
||||||
|
|
||||||
|
Otherwise the makefile will needlessly attempt to re-generate the
|
||||||
|
headers with gperf. This can be dropped once the upstream build is fixed.
|
||||||
|
|
||||||
|
See #10851.
|
||||||
|
|
||||||
|
diff --git a/src/Makefile.in b/src/Makefile.in
|
||||||
|
index f4626ad..4ae1b00 100644
|
||||||
|
--- a/src/Makefile.in
|
||||||
|
+++ b/src/Makefile.in
|
||||||
|
@@ -903,7 +903,7 @@ fcobjshash.gperf: fcobjshash.gperf.h fcobjs.h
|
||||||
|
' - > $@.tmp && \
|
||||||
|
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
|
||||||
|
|
||||||
|
-fcobjshash.h: fcobjshash.gperf
|
||||||
|
+fcobjshash.h:
|
||||||
|
$(AM_V_GEN) $(GPERF) -m 100 $< > $@.tmp && \
|
||||||
|
mv -f $@.tmp $@ || ( $(RM) $@.tmp && false )
|
||||||
|
|
62
depends/patches/fontconfig/remove_char_width_usage.patch
Normal file
62
depends/patches/fontconfig/remove_char_width_usage.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
commit 28165a9b078583dc8e9e5c344510e37582284cef
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Mon Aug 17 20:35:42 2020 +0800
|
||||||
|
|
||||||
|
Remove usage of CHAR_WIDTH
|
||||||
|
|
||||||
|
CHAR_WIDTH which is reserved and clashes with glibc 2.25+
|
||||||
|
|
||||||
|
See #10851.
|
||||||
|
|
||||||
|
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
|
||||||
|
index 5c72b22..843c532 100644
|
||||||
|
--- a/fontconfig/fontconfig.h
|
||||||
|
+++ b/fontconfig/fontconfig.h
|
||||||
|
@@ -128,7 +128,7 @@ typedef int FcBool;
|
||||||
|
#define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
|
||||||
|
|
||||||
|
/* Adjust outline rasterizer */
|
||||||
|
-#define FC_CHAR_WIDTH "charwidth" /* Int */
|
||||||
|
+#define FC_CHARWIDTH "charwidth" /* Int */
|
||||||
|
#define FC_CHAR_HEIGHT "charheight"/* Int */
|
||||||
|
#define FC_MATRIX "matrix" /* FcMatrix */
|
||||||
|
|
||||||
|
diff --git a/src/fcobjs.h b/src/fcobjs.h
|
||||||
|
index 1fc4f65..d27864b 100644
|
||||||
|
--- a/src/fcobjs.h
|
||||||
|
+++ b/src/fcobjs.h
|
||||||
|
@@ -51,7 +51,7 @@ FC_OBJECT (DPI, FcTypeDouble, NULL)
|
||||||
|
FC_OBJECT (RGBA, FcTypeInteger, NULL)
|
||||||
|
FC_OBJECT (SCALE, FcTypeDouble, NULL)
|
||||||
|
FC_OBJECT (MINSPACE, FcTypeBool, NULL)
|
||||||
|
-FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL)
|
||||||
|
+FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL)
|
||||||
|
FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL)
|
||||||
|
FC_OBJECT (MATRIX, FcTypeMatrix, NULL)
|
||||||
|
FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet)
|
||||||
|
diff --git a/src/fcobjshash.gperf b/src/fcobjshash.gperf
|
||||||
|
index 80a0237..eb4ad84 100644
|
||||||
|
--- a/src/fcobjshash.gperf
|
||||||
|
+++ b/src/fcobjshash.gperf
|
||||||
|
@@ -44,7 +44,7 @@ int id;
|
||||||
|
"rgba",FC_RGBA_OBJECT
|
||||||
|
"scale",FC_SCALE_OBJECT
|
||||||
|
"minspace",FC_MINSPACE_OBJECT
|
||||||
|
-"charwidth",FC_CHAR_WIDTH_OBJECT
|
||||||
|
+"charwidth",FC_CHARWIDTH_OBJECT
|
||||||
|
"charheight",FC_CHAR_HEIGHT_OBJECT
|
||||||
|
"matrix",FC_MATRIX_OBJECT
|
||||||
|
"charset",FC_CHARSET_OBJECT
|
||||||
|
diff --git a/src/fcobjshash.h b/src/fcobjshash.h
|
||||||
|
index 5a4d1ea..4e66bb0 100644
|
||||||
|
--- a/src/fcobjshash.h
|
||||||
|
+++ b/src/fcobjshash.h
|
||||||
|
@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char *str, register unsigned int len)
|
||||||
|
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
|
||||||
|
{-1},
|
||||||
|
#line 47 "fcobjshash.gperf"
|
||||||
|
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
|
||||||
|
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
|
||||||
|
#line 48 "fcobjshash.gperf"
|
||||||
|
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
|
||||||
|
#line 55 "fcobjshash.gperf"
|
26
depends/patches/miniupnpc/dont_use_wingen.patch
Normal file
26
depends/patches/miniupnpc/dont_use_wingen.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
commit e8077044df239bcf0d9e9980b0e1afb9f1f5c446
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 20:50:19 2020 +0800
|
||||||
|
|
||||||
|
Don't use wingenminiupnpcstrings when generating miniupnpcstrings.h
|
||||||
|
|
||||||
|
The wingenminiupnpcstrings tool is used on Windows to generate version
|
||||||
|
information. This information is irrelevant for us, and trying to use
|
||||||
|
wingenminiupnpcstrings would cause builds to fail, so just don't use it.
|
||||||
|
|
||||||
|
We should be able to drop this once we are using 2.1 or later. See
|
||||||
|
upstream commit: 9663c55c61408fdcc39a82987d2243f816b22932.
|
||||||
|
|
||||||
|
diff --git a/Makefile.mingw b/Makefile.mingw
|
||||||
|
index 574720e..fcc17bb 100644
|
||||||
|
--- a/Makefile.mingw
|
||||||
|
+++ b/Makefile.mingw
|
||||||
|
@@ -74,7 +74,7 @@ wingenminiupnpcstrings: wingenminiupnpcstrings.o
|
||||||
|
|
||||||
|
wingenminiupnpcstrings.o: wingenminiupnpcstrings.c
|
||||||
|
|
||||||
|
-miniupnpcstrings.h: miniupnpcstrings.h.in wingenminiupnpcstrings
|
||||||
|
+miniupnpcstrings.h: miniupnpcstrings.h.in
|
||||||
|
wingenminiupnpcstrings $< $@
|
||||||
|
|
||||||
|
minixml.o: minixml.c minixml.h
|
26
depends/patches/native_cctools/ld64_disable_threading.patch
Normal file
26
depends/patches/native_cctools/ld64_disable_threading.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
commit 584668415039adeed073decee7e04de28248afd3
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 01:20:24 2020 +0000
|
||||||
|
|
||||||
|
Disable threading to fix non-determinism
|
||||||
|
|
||||||
|
A bug in the file parser can cause dependencies to be calculated
|
||||||
|
differently based on which files have already been parsed. This is more
|
||||||
|
likely to occur on systems with more CPUs.
|
||||||
|
|
||||||
|
Just disable threading for now. There is no noticable slowdown.
|
||||||
|
|
||||||
|
See #9891.
|
||||||
|
|
||||||
|
diff --git a/cctools/ld64/src/ld/InputFiles.h b/cctools/ld64/src/ld/InputFiles.h
|
||||||
|
index ef9c756..90a70b6 100644
|
||||||
|
--- a/cctools/ld64/src/ld/InputFiles.h
|
||||||
|
+++ b/cctools/ld64/src/ld/InputFiles.h
|
||||||
|
@@ -25,7 +25,6 @@
|
||||||
|
#ifndef __INPUT_FILES_H__
|
||||||
|
#define __INPUT_FILES_H__
|
||||||
|
|
||||||
|
-#define HAVE_PTHREADS 1
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/types.h>
|
27
depends/patches/qt/dont_hardcode_pwd.patch
Normal file
27
depends/patches/qt/dont_hardcode_pwd.patch
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
commit 0e953866fc4672486e29e1ba6d83b4207e7b2f0b
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 15:09:06 2020 +0800
|
||||||
|
|
||||||
|
Don't hardcode pwd path
|
||||||
|
|
||||||
|
Let a man use his builtins if he wants to! Also, removes the unnecessary
|
||||||
|
assumption that pwd lives under /bin/pwd.
|
||||||
|
|
||||||
|
See #15581.
|
||||||
|
|
||||||
|
diff --git a/qtbase/configure b/qtbase/configure
|
||||||
|
index 08b49a8d..faea5b55 100755
|
||||||
|
--- a/qtbase/configure
|
||||||
|
+++ b/qtbase/configure
|
||||||
|
@@ -36,9 +36,9 @@
|
||||||
|
relconf=`basename $0`
|
||||||
|
# the directory of this script is the "source tree"
|
||||||
|
relpath=`dirname $0`
|
||||||
|
-relpath=`(cd "$relpath"; /bin/pwd)`
|
||||||
|
+relpath=`(cd "$relpath"; pwd)`
|
||||||
|
# the current directory is the "build tree" or "object tree"
|
||||||
|
-outpath=`/bin/pwd`
|
||||||
|
+outpath=`pwd`
|
||||||
|
|
||||||
|
WHICH="which"
|
||||||
|
|
20
depends/patches/qt/drop_lrelease_dependency.patch
Normal file
20
depends/patches/qt/drop_lrelease_dependency.patch
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
commit 67b3ed7406e1d0762188dbad2c44a06824ba0778
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 15:24:01 2020 +0800
|
||||||
|
|
||||||
|
Drop dependency on lrelease
|
||||||
|
|
||||||
|
Qts buildsystem insists on using the installed lrelease, but gets
|
||||||
|
confused about how to find it. Since we manually control the build
|
||||||
|
order, just drop the dependency.
|
||||||
|
|
||||||
|
See #9469
|
||||||
|
|
||||||
|
diff --git a/qttranslations/translations/translations.pro b/qttranslations/translations/translations.pro
|
||||||
|
index 694544c..eff339d 100644
|
||||||
|
--- a/qttranslations/translations/translations.pro
|
||||||
|
+++ b/qttranslations/translations/translations.pro
|
||||||
|
@@ -109,3 +109,2 @@ updateqm.commands = $$LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
|
||||||
|
silent:updateqm.commands = @echo lrelease ${QMAKE_FILE_IN} && $$updateqm.commands
|
||||||
|
-updateqm.depends = $$LRELEASE_EXE
|
||||||
|
updateqm.name = LRELEASE ${QMAKE_FILE_IN}
|
28
depends/patches/qt/freetype_back_compat.patch
Normal file
28
depends/patches/qt/freetype_back_compat.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
commit 14bc77db61bf9d56f9b6c8b84aa02573605c19c6
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 15:15:08 2020 +0800
|
||||||
|
|
||||||
|
Fix backwards compatibility with older Freetype versions at runtime
|
||||||
|
|
||||||
|
A few years ago, libfreetype introduced FT_Get_Font_Format() as an alias
|
||||||
|
for FT_Get_X11_Font_Format(), but FT_Get_X11_Font_Format() was kept for abi
|
||||||
|
backwards-compatibility.
|
||||||
|
|
||||||
|
Qt 5.9 introduced a call to FT_Get_Font_Format(). Replace it with FT_Get_X11_Font_Format()
|
||||||
|
in order to remain compatibile with older freetype, which is still used by e.g. Ubuntu Trusty.
|
||||||
|
|
||||||
|
See #14348.
|
||||||
|
|
||||||
|
diff --git a/qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp b/qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
|
||||||
|
index 3f543755..8ecc1c8c 100644
|
||||||
|
--- a/qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
|
||||||
|
+++ b/qtbase/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
|
||||||
|
@@ -898,7 +898,7 @@ bool QFontEngineFT::init(FaceId faceId, bool antialias, GlyphFormat format,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#if defined(FT_FONT_FORMATS_H)
|
||||||
|
- const char *fmt = FT_Get_Font_Format(face);
|
||||||
|
+ const char *fmt = FT_Get_X11_Font_Format(face);
|
||||||
|
if (fmt && qstrncmp(fmt, "CFF", 4) == 0) {
|
||||||
|
FT_Bool no_stem_darkening = true;
|
||||||
|
FT_Error err = FT_Property_Get(qt_getFreetype(), "cff", "no-stem-darkening", &no_stem_darkening);
|
25
depends/patches/zeromq/remove_libstd_link.patch
Normal file
25
depends/patches/zeromq/remove_libstd_link.patch
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
commit 47d4cd12a2c051815ddda78adebdb3923b260d8a
|
||||||
|
Author: fanquake <fanquake@gmail.com>
|
||||||
|
Date: Tue Aug 18 14:45:40 2020 +0800
|
||||||
|
|
||||||
|
Remove needless linking against libstdc++
|
||||||
|
|
||||||
|
This is broken for a number of reasons, including:
|
||||||
|
- g++ understands "static-libstdc++ -lstdc++" to mean "link against
|
||||||
|
whatever libstdc++ exists, probably shared", which in itself is buggy.
|
||||||
|
- another stdlib (libc++ for example) may be in use
|
||||||
|
|
||||||
|
See #11981.
|
||||||
|
|
||||||
|
diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in
|
||||||
|
index 233bc3a..3c2bf0d 100644
|
||||||
|
--- a/src/libzmq.pc.in
|
||||||
|
+++ b/src/libzmq.pc.in
|
||||||
|
@@ -7,6 +7,6 @@ Name: libzmq
|
||||||
|
Description: 0MQ c++ library
|
||||||
|
Version: @VERSION@
|
||||||
|
Libs: -L${libdir} -lzmq
|
||||||
|
-Libs.private: -lstdc++ @pkg_config_libs_private@
|
||||||
|
+Libs.private: @pkg_config_libs_private@
|
||||||
|
Requires.private: @pkg_config_names_private@
|
||||||
|
Cflags: -I${includedir} @pkg_config_defines@
|
Loading…
Reference in New Issue
Block a user