aboutsummaryrefslogtreecommitdiff
path: root/depends
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2024-04-30 13:28:59 +0800
committerfanquake <fanquake@gmail.com>2024-04-30 13:29:33 +0800
commit5195baa60087ee366290887ad982fc491e14c111 (patch)
tree0daf8ce106c9e367342ce52734c4c3ce424dae48 /depends
parent3c2d440f1497f60bb444326f51383df244dcdfe9 (diff)
downloadbitcoin-5195baa60087ee366290887ad982fc491e14c111.tar.xz
depends: fix miniupnpc snprintf usage on Windows
Diffstat (limited to 'depends')
-rw-r--r--depends/packages/miniupnpc.mk5
-rw-r--r--depends/patches/miniupnpc/fix_windows_snprintf.patch25
2 files changed, 28 insertions, 2 deletions
diff --git a/depends/packages/miniupnpc.mk b/depends/packages/miniupnpc.mk
index 28916729c4..077e3bb1ee 100644
--- a/depends/packages/miniupnpc.mk
+++ b/depends/packages/miniupnpc.mk
@@ -3,7 +3,7 @@ $(package)_version=2.2.7
$(package)_download_path=https://miniupnp.tuxfamily.org/files/
$(package)_file_name=$(package)-$($(package)_version).tar.gz
$(package)_sha256_hash=b0c3a27056840fd0ec9328a5a9bac3dc5e0ec6d2e8733349cf577b0aa1e70ac1
-$(package)_patches=dont_leak_info.patch cmake_get_src_addr.patch
+$(package)_patches=dont_leak_info.patch cmake_get_src_addr.patch fix_windows_snprintf.patch
$(package)_build_subdir=build
define $(package)_set_vars
@@ -14,7 +14,8 @@ endef
define $(package)_preprocess_cmds
patch -p1 < $($(package)_patch_dir)/dont_leak_info.patch && \
- patch -p1 < $($(package)_patch_dir)/cmake_get_src_addr.patch
+ patch -p1 < $($(package)_patch_dir)/cmake_get_src_addr.patch && \
+ patch -p1 < $($(package)_patch_dir)/fix_windows_snprintf.patch
endef
define $(package)_config_cmds
diff --git a/depends/patches/miniupnpc/fix_windows_snprintf.patch b/depends/patches/miniupnpc/fix_windows_snprintf.patch
new file mode 100644
index 0000000000..ff9e26231e
--- /dev/null
+++ b/depends/patches/miniupnpc/fix_windows_snprintf.patch
@@ -0,0 +1,25 @@
+commit a1e9de80ab99b4c956a6a4e21d3e0de6f7a1014d
+Author: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com>
+Date: Sat Apr 20 15:14:47 2024 +0100
+
+ Fix macro expression that guards `snprintf` for Windows
+
+ Otherwise, the `snprintf` is still wrongly emulated for the following
+ cases:
+ - mingw-w64 6.0.0 or new with ucrt
+ - mingw-w64 8.0.0 or new with iso c ext
+
+--- a/src/win32_snprintf.h
++++ b/src/win32_snprintf.h
+@@ -23,9 +23,9 @@
+ (defined(_MSC_VER) && _MSC_VER < 1900) /* Visual Studio older than 2015 */ || \
+ (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR) && defined(__NO_ISOCEXT)) /* mingw32 without iso c ext */ || \
+ (defined(__MINGW64_VERSION_MAJOR) && /* mingw-w64 not ... */ !( \
+- (defined (__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0)) /* ... with ansi stdio */ || \
++ (defined (__USE_MINGW_ANSI_STDIO) && __USE_MINGW_ANSI_STDIO != 0) /* ... with ansi stdio */ || \
+ (__MINGW64_VERSION_MAJOR >= 6 && defined(_UCRT)) /* ... at least 6.0.0 with ucrt */ || \
+- (__MINGW64_VERSION_MAJOR >= 8 && !defined(__NO_ISOCEXT)) /* ... at least 8.0.0 with iso c ext */ || \
++ (__MINGW64_VERSION_MAJOR >= 8 && !defined(__NO_ISOCEXT))) /* ... at least 8.0.0 with iso c ext */ || \
+ 0) || \
+ 0)
+