mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 06:52:36 +01:00
depends: patch around non-determinism in qt
This commit is contained in:
parent
e8ecec4575
commit
b335710782
2 changed files with 86 additions and 0 deletions
|
@ -22,6 +22,7 @@ $(package)_patches += fast_fixed_dtoa_no_optimize.patch
|
|||
$(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += fix-macos-linker.patch
|
||||
$(package)_patches += memory_resource.patch
|
||||
$(package)_patches += utc_from_string_no_optimize.patch
|
||||
$(package)_patches += windows_lto.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
|
@ -249,6 +250,7 @@ define $(package)_preprocess_cmds
|
|||
patch -p1 -i $($(package)_patch_dir)/memory_resource.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 && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fast_fixed_dtoa_no_optimize.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/guix_cross_lib_path.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/windows_lto.patch && \
|
||||
|
|
84
depends/patches/qt/utc_from_string_no_optimize.patch
Normal file
84
depends/patches/qt/utc_from_string_no_optimize.patch
Normal file
|
@ -0,0 +1,84 @@
|
|||
Modify optimisation flags for various functions.
|
||||
This fixes non-determinism issues in the asm produced for
|
||||
these function when cross-compiling on x86_64 and aarch64 for
|
||||
the arm64-apple-darwin HOST.
|
||||
|
||||
--- a/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp
|
||||
+++ b/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp
|
||||
@@ -1078,9 +1078,9 @@ void QItemSelectionModelPrivate::_q_layoutChanged(const QList<QPersistentModelIn
|
||||
|
||||
if (hint != QAbstractItemModel::VerticalSortHint) {
|
||||
// sort the "new" selection, as preparation for merging
|
||||
- std::stable_sort(savedPersistentIndexes.begin(), savedPersistentIndexes.end(),
|
||||
+ std::sort(savedPersistentIndexes.begin(), savedPersistentIndexes.end(),
|
||||
qt_PersistentModelIndexLessThan);
|
||||
- std::stable_sort(savedPersistentCurrentIndexes.begin(), savedPersistentCurrentIndexes.end(),
|
||||
+ std::sort(savedPersistentCurrentIndexes.begin(), savedPersistentCurrentIndexes.end(),
|
||||
qt_PersistentModelIndexLessThan);
|
||||
|
||||
// update the selection by merging the individual indexes
|
||||
@@ -1092,8 +1092,8 @@ void QItemSelectionModelPrivate::_q_layoutChanged(const QList<QPersistentModelIn
|
||||
savedPersistentCurrentIndexes.clear();
|
||||
} else {
|
||||
// sort the "new" selection, as preparation for merging
|
||||
- std::stable_sort(savedPersistentRowLengths.begin(), savedPersistentRowLengths.end());
|
||||
- std::stable_sort(savedPersistentCurrentRowLengths.begin(), savedPersistentCurrentRowLengths.end());
|
||||
+ std::sort(savedPersistentRowLengths.begin(), savedPersistentRowLengths.end());
|
||||
+ std::sort(savedPersistentCurrentRowLengths.begin(), savedPersistentCurrentRowLengths.end());
|
||||
|
||||
// update the selection by merging the individual indexes
|
||||
ranges = mergeRowLengths(savedPersistentRowLengths);
|
||||
|
||||
--- a/qtbase/src/corelib/itemmodels/qitemselectionmodel_p.h
|
||||
+++ b/qtbase/src/corelib/itemmodels/qitemselectionmodel_p.h
|
||||
@@ -76,7 +76,7 @@ public:
|
||||
void _q_rowsAboutToBeInserted(const QModelIndex &parent, int start, int end);
|
||||
void _q_columnsAboutToBeInserted(const QModelIndex &parent, int start, int end);
|
||||
void _q_layoutAboutToBeChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex>(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint);
|
||||
- void _q_layoutChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex>(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint);
|
||||
+ __attribute__ ((optnone)) void _q_layoutChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex>(), QAbstractItemModel::LayoutChangeHint hint = QAbstractItemModel::NoLayoutChangeHint);
|
||||
|
||||
inline void remove(QList<QItemSelectionRange> &r)
|
||||
{
|
||||
|
||||
--- a/qtbase/src/corelib/time/qdatetimeparser_p.h
|
||||
+++ b/qtbase/src/corelib/time/qdatetimeparser_p.h
|
||||
@@ -215,7 +215,7 @@ private:
|
||||
: value(ok == Invalid ? -1 : val), used(read), zeroes(zs), state(ok)
|
||||
{}
|
||||
};
|
||||
- ParsedSection parseSection(const QDateTime ¤tValue, int sectionIndex,
|
||||
+ __attribute__ ((optnone)) ParsedSection parseSection(const QDateTime ¤tValue, int sectionIndex,
|
||||
int offset, QString *text) const;
|
||||
int findMonth(const QString &str1, int monthstart, int sectionIndex,
|
||||
int year, QString *monthName = nullptr, int *used = nullptr) const;
|
||||
|
||||
--- a/qtbase/src/corelib/time/qtimezoneprivate_p.h
|
||||
+++ b/qtbase/src/corelib/time/qtimezoneprivate_p.h
|
||||
@@ -191,7 +191,7 @@ public:
|
||||
virtual ~QUtcTimeZonePrivate();
|
||||
|
||||
// Fall-back for UTC[+-]\d+(:\d+){,2} IDs.
|
||||
- static qint64 offsetFromUtcString(const QByteArray &id);
|
||||
+ static __attribute__ ((optnone)) qint64 offsetFromUtcString(const QByteArray &id);
|
||||
|
||||
QUtcTimeZonePrivate *clone() const override;
|
||||
|
||||
--- a/qtbase/src/widgets/widgets/qcalendarwidget.cpp
|
||||
+++ b/qtbase/src/widgets/widgets/qcalendarwidget.cpp
|
||||
@@ -329,13 +329,13 @@ class QCalendarYearValidator : public QCalendarDateSectionValidator
|
||||
|
||||
public:
|
||||
QCalendarYearValidator();
|
||||
- virtual Section handleKey(int key) override;
|
||||
+ __attribute__ ((optnone)) virtual Section handleKey(int key) override;
|
||||
virtual QDate applyToDate(QDate date, QCalendar cal) const override;
|
||||
virtual void setDate(QDate date, QCalendar cal) override;
|
||||
virtual QString text() const override;
|
||||
virtual QString text(QDate date, QCalendar cal, int repeat) const override;
|
||||
private:
|
||||
- int pow10(int n);
|
||||
+ __attribute__ ((optnone)) int pow10(int n);
|
||||
int m_pos;
|
||||
int m_year;
|
||||
int m_oldYear;
|
Loading…
Add table
Reference in a new issue