From 7c41fb51d4d7dd275069cfb14eab57f2c2d5afc9 Mon Sep 17 00:00:00 2001 From: zhangfeilong Date: Sat, 11 Oct 2025 17:18:24 +0800 Subject: [PATCH] add sw64 support --- add-sw_64-support.patch | 146 ++++++++++++++++++++++++++++++++++++++++ qt.spec | 8 ++- 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 add-sw_64-support.patch diff --git a/add-sw_64-support.patch b/add-sw_64-support.patch new file mode 100644 index 0000000..5cfb1a0 --- /dev/null +++ b/add-sw_64-support.patch @@ -0,0 +1,146 @@ +From 403e909e48e3f70beb0f51c865c788cb92f7a13e Mon Sep 17 00:00:00 2001 +From: zhangfeilong +Subject: [PATCH] add sw_64 support + +--- + configure | 9 +++++++++ + mkspecs/linux-g++-64/qmake.conf | 5 ++--- + mkspecs/solaris-g++-64/qmake.conf | 2 +- + .../javascriptcore/JavaScriptCore/wtf/Platform.h | 7 ++++++- + src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h | 5 +++++ + src/corelib/arch/qatomic_arch.h | 2 ++ + src/corelib/arch/sw_64/arch.pri | 7 +++++++ + 7 files changed, 32 insertions(+), 5 deletions(-) + create mode 100644 src/corelib/arch/sw_64/arch.pri +diff --git a/configure b/configure +index 226a602f..a4426a0e 100755 +--- a/configure ++++ b/configure +@@ -3257,6 +3257,12 @@ if [ -z "${CFG_HOST_ARCH}" ]; then + fi + CFG_HOST_ARCH=arm + ;; ++ *:*:sw*64*) ++ if [ "$OPT_VERBOSE" = "yes" ]; then ++ echo " SW_64" ++ fi ++ CFG_HOST_ARCH=sw_64 ++ ;; + Linux:*:sparc*) + if [ "$OPT_VERBOSE" = "yes" ]; then + echo " Linux on SPARC" +@@ -3334,6 +3340,9 @@ arm*) + mips*) + CFG_ARCH=mips + ;; ++sw_64) ++ CFG_ARCH=sw_64 ++ ;; + esac + + if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then +diff --git a/mkspecs/linux-g++-64/qmake.conf b/mkspecs/linux-g++-64/qmake.conf +index 222f6b7e..dd992c3d 100644 +--- a/mkspecs/linux-g++-64/qmake.conf ++++ b/mkspecs/linux-g++-64/qmake.conf +@@ -12,9 +12,8 @@ CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index + QT += core gui + QMAKE_INCREMENTAL_STYLE = sublib + +-QMAKE_CFLAGS = -m64 +-QMAKE_LFLAGS = -m64 +- ++QMAKE_CFLAGS = ++QMAKE_LFLAGS = + include(../common/linux.conf) + include(../common/gcc-base-unix.conf) + include(../common/g++-unix.conf) +diff --git a/mkspecs/solaris-g++-64/qmake.conf b/mkspecs/solaris-g++-64/qmake.conf +index 7bc7b9fd..2ecbaac8 100644 +--- a/mkspecs/solaris-g++-64/qmake.conf ++++ b/mkspecs/solaris-g++-64/qmake.conf +@@ -36,7 +36,7 @@ QMAKE_LEX = flex + QMAKE_LEXFLAGS = + QMAKE_YACC = yacc + QMAKE_YACCFLAGS = -d +-QMAKE_CFLAGS = -m64 -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ ++QMAKE_CFLAGS = -D_XOPEN_SOURCE=500 -D__EXTENSIONS__ + QMAKE_CFLAGS_DEPS = -M + QMAKE_CFLAGS_WARN_ON = -Wall -W + QMAKE_CFLAGS_WARN_OFF = -w +diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +index eca1a3cf..823c3d52 100644 +--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h ++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h +@@ -147,6 +147,11 @@ + #define WTF_CPU_HPPA 1 + #define WTF_CPU_BIG_ENDIAN 1 + #endif ++/* CPU(LOONGARCH64) - loongarch64 */ ++#if defined(__sw_64__) ++#define WTF_CPU_SW_64 1 ++#endif ++ + + /* CPU(PPC) - PowerPC 32-bit */ + #if defined(__ppc__) \ +@@ -915,7 +920,7 @@ + #endif + + #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64) +-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(S390X) ++#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64) || CPU(S390X) || CPU(SW_64) + #define WTF_USE_JSVALUE64 1 + #elif CPU(ARM) || CPU(PPC64) + #define WTF_USE_JSVALUE32 1 +diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h +index 635df39e..100dd526 100644 +--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h ++++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h +@@ -180,6 +180,10 @@ + #define WTF_CPU_BIG_ENDIAN 1 + #endif + ++#if defined(__sw_64__) ++#define WTF_CPU_SW_64 1 ++#endif ++ + /* CPU(PPC64) - PowerPC 64-bit */ + #if defined(__ppc64__) \ + || defined(__PPC64__) +@@ -1011,6 +1015,7 @@ + || CPU(ALPHA) \ + || CPU(SPARC64) \ + || CPU(S390X) \ ++ || CPU(SW_64) \ + || CPU(PPC64) \ + || CPU(MIPS64) || CPU(AARCH64) + #define WTF_USE_JSVALUE64 1 +diff --git a/src/corelib/arch/qatomic_arch.h b/src/corelib/arch/qatomic_arch.h +index c91c20b3..f987e9a6 100644 +--- a/src/corelib/arch/qatomic_arch.h ++++ b/src/corelib/arch/qatomic_arch.h +@@ -96,6 +96,8 @@ QT_BEGIN_HEADER + # include "QtCore/qatomic_generic.h" + #elif defined(QT_ARCH_AARCH64) + # include "QtCore/qatomic_aarch64.h" ++#elif defined(QT_ARCH_SW_64) ++# include "QtCore/qatomic_generic.h" + #else + # error "Qt has not been ported to this architecture" + #endif +diff --git a/src/corelib/arch/sw_64/arch.pri b/src/corelib/arch/sw_64/arch.pri +new file mode 100644 +index 00000000..09a233ee +--- /dev/null ++++ b/src/corelib/arch/sw_64/arch.pri +@@ -0,0 +1,7 @@ ++# ++# SW_64 architecture ++# ++ ++# note: even though we use inline assembler with gcc, we always ++# include the compiled version to keep binary compatibility ++*-64:SOURCES += ../generic/qatomic_generic_unix.cpp +-- +2.31.1 diff --git a/qt.spec b/qt.spec index ef0e1ff..c3fbc19 100644 --- a/qt.spec +++ b/qt.spec @@ -1,7 +1,7 @@ %if "%{?__isa_bits}" == "64" %define platform linux-g++-64 %endif -%ifarch x86_64 aarch64 riscv64 +%ifarch x86_64 aarch64 riscv64 sw_64 %define platform linux-g++ %endif %define _qt4_prefix %{_libdir}/qt4 @@ -83,6 +83,9 @@ Patch47: fix-build-error-for-loongarch64.patch Patch48: fix-build-error-about-messagemodel.patch # https://codereview.qt-project.org/c/qt/qtscript/+/308863 Patch49: fix-lto-build.patch +%ifarch sw_64 +Patch50: add-sw_64-support.patch +%endif Patch6000: CVE-2018-19869.patch Patch6001: CVE-2018-19872.patch Patch6002: CVE-2018-19871.patch @@ -446,6 +449,9 @@ fi %{_qt4_prefix}/examples/ %changelog +* Sat Oct 11 2025 zhangfeilong - 1:4.8.7-62 +- add sw64 support + * Sat Dec 07 2024 Funda Wang - 1:4.8.7-61 - fix LTO build - cleanup spec -- Gitee