mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
merge bitcoin#28880: switch to using LLVM 17.x for macOS builds
This commit is contained in:
parent
7b0a1f2256
commit
6d75a81f62
@ -14,7 +14,4 @@ export XCODE_BUILD_ID=15A240d
|
||||
export RUN_UNIT_TESTS=false
|
||||
export RUN_FUNCTIONAL_TESTS=false
|
||||
export GOAL="all deploy"
|
||||
|
||||
# False-positive warning is fixed with clang 17, remove this when that version
|
||||
# can be used.
|
||||
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process LDFLAGS=-Wno-error=unused-command-line-argument"
|
||||
export BITCOIN_CONFIG="--with-gui --enable-reduce-exports --disable-miner --with-boost-process"
|
||||
|
@ -609,7 +609,7 @@ inspecting signatures in Mach-O binaries.")
|
||||
(list ;; Native GCC 11 toolchain
|
||||
gcc-toolchain-11
|
||||
binutils
|
||||
clang-toolchain-15
|
||||
clang-toolchain-17
|
||||
python-signapple
|
||||
xorriso))
|
||||
(else '())))))
|
||||
|
@ -6,7 +6,7 @@ $(package)_sha256_hash=d4d46c64622f13d6938cecf989046d9561011bb59e8ee835f8f39825d
|
||||
$(package)_patches=disable_zlib.patch
|
||||
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
$(package)_dependencies=native_clang
|
||||
$(package)_dependencies=native_llvm
|
||||
endif
|
||||
|
||||
define $(package)_preprocess_cmds
|
||||
|
@ -1,16 +1,17 @@
|
||||
package=native_clang
|
||||
$(package)_version=15.0.6
|
||||
package=native_llvm
|
||||
$(package)_version=17.0.6
|
||||
$(package)_major_version=$(firstword $(subst ., ,$($(package)_version)))
|
||||
$(package)_download_path=https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(package)_version)
|
||||
ifneq (,$(findstring aarch64,$(BUILD)))
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-aarch64-linux-gnu.tar.xz
|
||||
$(package)_sha256_hash=8ca4d68cf103da8331ca3f35fe23d940c1b78fb7f0d4763c1c059e352f5d1bec
|
||||
$(package)_sha256_hash=6dd62762285326f223f40b8e4f2864b5c372de3f7de0731cb7cd55ca5287b75a
|
||||
else
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
|
||||
$(package)_sha256_hash=38bc7f5563642e73e69ac5626724e206d6d539fbef653541b34cae0ba9c3f036
|
||||
$(package)_file_name=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-22.04.tar.xz
|
||||
$(package)_sha256_hash=884ee67d647d77e58740c1e645649e29ae9e8a6fe87c1376be0f3a30f3cc9ab3
|
||||
endif
|
||||
|
||||
define $(package)_stage_cmds
|
||||
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_major_version)/include && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/bin && \
|
||||
mkdir -p $($(package)_staging_prefix_dir)/include/llvm-c && \
|
||||
cp bin/clang $($(package)_staging_prefix_dir)/bin/ && \
|
||||
@ -20,5 +21,5 @@ define $(package)_stage_cmds
|
||||
cp include/llvm-c/ExternC.h $($(package)_staging_prefix_dir)/include/llvm-c && \
|
||||
cp include/llvm-c/lto.h $($(package)_staging_prefix_dir)/include/llvm-c && \
|
||||
cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
|
||||
cp -r lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/
|
||||
cp -r lib/clang/$($(package)_major_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_major_version)/include/
|
||||
endef
|
@ -30,7 +30,7 @@ ifneq ($(build_os),darwin)
|
||||
darwin_native_packages += native_cctools native_libtapi
|
||||
|
||||
ifeq ($(strip $(FORCE_USE_SYSTEM_CLANG)),)
|
||||
darwin_native_packages+= native_clang
|
||||
darwin_native_packages+= native_llvm
|
||||
endif
|
||||
|
||||
endif
|
||||
|
@ -23,8 +23,8 @@ $(package)_patches += guix_cross_lib_path.patch
|
||||
$(package)_patches += fast_fixed_dtoa_no_optimize.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)_patches += fix-minimum-macos.patch
|
||||
|
||||
$(package)_qttranslations_file_name=qttranslations-$($(package)_suffix)
|
||||
$(package)_qttranslations_sha256_hash=a31785948c640b7c66d9fe2db4993728ca07f64e41c560b3625ad191b276ff20
|
||||
@ -236,18 +236,18 @@ endef
|
||||
define $(package)_preprocess_cmds
|
||||
cp $($(package)_patch_dir)/qt.pro qt.pro && \
|
||||
cp $($(package)_patch_dir)/qttools_src.pro qttools/src/src.pro && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-minimum-macos.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix-macos-linker.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/dont_hardcode_pwd.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qt_pkgconfig.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_qt_placeholders.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/fix_android_jni_static.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/no-xlib.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/qtbase-moc-ignore-gcc-macro.patch && \
|
||||
patch -p1 -i $($(package)_patch_dir)/use_android_ndk23.patch && \
|
||||
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)/qtbase-moc-ignore-gcc-macro.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 && \
|
||||
|
@ -1,18 +0,0 @@
|
||||
Ensure that Qt handles the minimum macOS version properly
|
||||
|
||||
This patch can be dropped for LLVM Clang 17+, after commit
|
||||
https://github.com/llvm/llvm-project/commit/c8e2dd8c6f490b68e41fe663b44535a8a21dfeab
|
||||
|
||||
|
||||
--- a/qtbase/src/corelib/global/qsystemdetection.h
|
||||
+++ b/qtbase/src/corelib/global/qsystemdetection.h
|
||||
@@ -220,6 +220,9 @@
|
||||
# include <Availability.h>
|
||||
# include <AvailabilityMacros.h>
|
||||
#
|
||||
+# undef __MAC_OS_X_VERSION_MIN_REQUIRED
|
||||
+# define __MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_MIN_REQUIRED
|
||||
+#
|
||||
# ifdef Q_OS_MACOS
|
||||
# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) || __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
|
||||
# undef __MAC_OS_X_VERSION_MIN_REQUIRED
|
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…
Reference in New Issue
Block a user