forked from bitcoin/bitcoin
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge bitcoin#28880: build: switch to using LLVM 17.x for macOS builds
b335710 depends: patch around non-determinism in qt (fanquake) e8ecec4 build: rename native_clang to native_llvm (fanquake) b0c2903 Revert "build: Patch Qt to handle minimum macOS version properly" (fanquake) 558250d guix: use clang-toolchain-17 for macOS build (fanquake) 5ddd7c6 build: Bump `native_clang` up to 17.0.6 (Hennadii Stepanov) Pull request description: This is the last step before bitcoin#21778. We need LLVM 17.x so that lld has `-fixup_chains`. ACKs for top commit: theuni: ACK b335710. TheCharlatan: ACK b335710 Tree-SHA512: 8142956196a481178f360258c2e4d924178d552966b713323f29f2deba7e5ec73a3da1c9d79d97c9e7f6aa18ed7429cd6660826aa633e6dde1ac56000b9ad57f
- Loading branch information
Showing
8 changed files
with
98 additions
and
34 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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; |