aboutsummaryrefslogtreecommitdiff
path: root/depends/patches
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2022-07-19 11:13:08 +0100
committerfanquake <fanquake@gmail.com>2022-07-19 12:12:26 +0100
commitc32fa85909dde8f7d61c2a291564f3f26884e170 (patch)
treebe1cf15395a261d1c1e449e59db8ddb7af9942e8 /depends/patches
parent47dad42833d535aee6071526bec9df1b2497bad3 (diff)
downloadbitcoin-c32fa85909dde8f7d61c2a291564f3f26884e170.tar.xz
depends: modify FastFixedDtoa optimisation flags
This fixes a non-determinism issue in the asm produced for this function when cross-compiling on x86_64 and aarch64 for the arm-linux-gnueabihf HOST. Related to #21194.
Diffstat (limited to 'depends/patches')
-rw-r--r--depends/patches/qt/fast_fixed_dtoa_no_optimize.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/depends/patches/qt/fast_fixed_dtoa_no_optimize.patch b/depends/patches/qt/fast_fixed_dtoa_no_optimize.patch
new file mode 100644
index 0000000000..d4d6539f56
--- /dev/null
+++ b/depends/patches/qt/fast_fixed_dtoa_no_optimize.patch
@@ -0,0 +1,20 @@
+Modify the optimisation flags for FastFixedDtoa.
+This fixes a non-determinism issue in the asm produced for
+this function when cross-compiling on x86_64 and aarch64 for
+the arm-linux-gnueabihf HOST.
+
+--- a/qtbase/src/3rdparty/double-conversion/fixed-dtoa.h
++++ b/qtbase/src/3rdparty/double-conversion/fixed-dtoa.h
+@@ -48,9 +48,12 @@ namespace double_conversion {
+ //
+ // This method only works for some parameters. If it can't handle the input it
+ // returns false. The output is null-terminated when the function succeeds.
++#pragma GCC push_options
++#pragma GCC optimize ("-O1")
+ bool FastFixedDtoa(double v, int fractional_count,
+ Vector<char> buffer, int* length, int* decimal_point);
+
++#pragma GCC pop_options
+ } // namespace double_conversion
+
+ #endif // DOUBLE_CONVERSION_FIXED_DTOA_H_