Source: openjfx Version: 11.0.11+1-3.1 Severity: normal X-Debbugs-Cc: zhan...@loongson.cn
Dear Maintainer, I have a patch and a suggestion! Firstly, I submitted a loongarch64's patch for openjfx-11, but it does not support webkit as the minimum version of LoongArch's g++ is 13; Secondly, I suggest upgrading to the latest version of openjfx, which already supports LoongArch and also supports g++13, looking forward to your reply. Of course, I also saw the same question(#1023702 and #1041527), but there was no response, but I still look forward to it. Thanks! -- System Information: Debian Release: trixie/sid APT prefers unreleased APT policy: (500, 'unreleased'), (500, 'unstable') Architecture: loong64 (loongarch64) Kernel: Linux 5.10.0-60.96.0.126.oe2203.loongarch64 (SMP w/32 CPU threads) Locale: LANG=zh_CN.UTF-8, LC_CTYPE=zh_CN.UTF-8 (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: unable to detect
>From fc418a426205deb8e198f51a374bcfc125f96111 Mon Sep 17 00:00:00 2001 From: Zhang Na <zhan...@loongson.cn> Date: Mon, 29 Jan 2024 08:37:58 +0000 Subject: [PATCH] Add LoongArch support --- debian/control | 2 +- debian/gradle.properties.loong64 | 4 ++++ debian/rules | 4 ++++ .../gstreamer/gstreamer-lite/gstreamer/gst/gstconfig.h | 2 +- modules/javafx.web/src/main/native/CMakeLists.txt | 2 ++ .../src/main/native/Source/JavaScriptCore/CMakeLists.txt | 7 +++++++ .../ThirdParty/icu/source/i18n/double-conversion-utils.h | 2 +- .../javafx.web/src/main/native/Source/WTF/wtf/PageBlock.h | 2 +- .../src/main/native/Source/WTF/wtf/PlatformCPU.h | 6 ++++++ .../javafx.web/src/main/native/Source/WTF/wtf/dtoa/utils.h | 2 +- 10 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 debian/gradle.properties.loong64 diff --git a/debian/control b/debian/control index d6bff1a3..aff82e6a 100644 --- a/debian/control +++ b/debian/control @@ -10,7 +10,7 @@ Build-Depends: antlr4, default-jdk, default-jdk-doc, flex, - g++-11, + g++-11 [!loong64], gperf, gradle (>= 4.4), gradle-debian-helper (>= 2.0), diff --git a/debian/gradle.properties.loong64 b/debian/gradle.properties.loong64 new file mode 100644 index 00000000..47cc7b48 --- /dev/null +++ b/debian/gradle.properties.loong64 @@ -0,0 +1,4 @@ +COMPILE_WEBKIT = false +COMPILE_MEDIA = true +GRADLE_VERSION_CHECK = false +CONF = Release diff --git a/debian/rules b/debian/rules index 63f7f36a..4e4aafc0 100755 --- a/debian/rules +++ b/debian/rules @@ -19,7 +19,11 @@ export NUMBER_OF_PROCESSORS ?= $(shell nproc) dh $@ --buildsystem=gradle --no-parallel --with maven-repo-helper override_dh_auto_configure-arch: +ifneq (,$(filter $(DEB_HOST_ARCH), loong64)) + cp debian/gradle.properties.loong64 gradle.properties +else cp debian/gradle.properties . +endif override_dh_auto_configure-indep: echo "GRADLE_VERSION_CHECK = false" >> gradle.properties diff --git a/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstconfig.h b/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstconfig.h index c889459e..dbc9bcda 100644 --- a/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstconfig.h +++ b/modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gstconfig.h @@ -107,7 +107,7 @@ */ #if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__) # define GST_HAVE_UNALIGNED_ACCESS 0 -#elif defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__m68k__) || defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) +#elif defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__m68k__) || defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(__s390__) || defined(__s390x__) || defined(__zarch__) || defined(__loongarch__) # define GST_HAVE_UNALIGNED_ACCESS 1 #else # error "Could not detect architecture; don't know whether it supports unaligned access! Please file a bug." diff --git a/modules/javafx.web/src/main/native/CMakeLists.txt b/modules/javafx.web/src/main/native/CMakeLists.txt index d8218bf3..27db7c15 100644 --- a/modules/javafx.web/src/main/native/CMakeLists.txt +++ b/modules/javafx.web/src/main/native/CMakeLists.txt @@ -116,6 +116,8 @@ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64") set(WTF_CPU_PPC64 1) elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le") set(WTF_CPU_PPC64LE 1) +elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "loongarch64") + set(WTF_CPU_LOONGARCH64 1) else () set(WTF_CPU_UNKNOWN 1) endif () diff --git a/modules/javafx.web/src/main/native/Source/JavaScriptCore/CMakeLists.txt b/modules/javafx.web/src/main/native/Source/JavaScriptCore/CMakeLists.txt index b775b3ed..7f9dd169 100644 --- a/modules/javafx.web/src/main/native/Source/JavaScriptCore/CMakeLists.txt +++ b/modules/javafx.web/src/main/native/Source/JavaScriptCore/CMakeLists.txt @@ -252,6 +252,8 @@ else () set(OFFLINE_ASM_BACKEND "ARMv7") elseif (WTF_CPU_MIPS) set(OFFLINE_ASM_BACKEND "MIPS") + elseif (WTF_CPU_LOONGARCH64) + set(OFFLINE_ASM_BACKEND "LOONGARCH64") endif () if (NOT ENABLE_JIT) @@ -1333,7 +1335,12 @@ WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() if (COMPILER_IS_GCC_OR_CLANG) # Avoid using fused multiply-add instructions since this could give different results # for e.g. parseInt depending on the platform and compilation flags. + if (WTF_CPU_LOONGARCH64) + WEBKIT_ADD_TARGET_CXX_FLAGS(JavaScriptCore -ffp-contract=off) + else () WEBKIT_ADD_TARGET_CXX_FLAGS(JavaScriptCore -ffp-contract=off -fno-slp-vectorize) + endif () + endif () WEBKIT_COPY_FILES(JavaScriptCore_CopyHeaders diff --git a/modules/javafx.web/src/main/native/Source/ThirdParty/icu/source/i18n/double-conversion-utils.h b/modules/javafx.web/src/main/native/Source/ThirdParty/icu/source/i18n/double-conversion-utils.h index 1e44fcaa..686425e8 100644 --- a/modules/javafx.web/src/main/native/Source/ThirdParty/icu/source/i18n/double-conversion-utils.h +++ b/modules/javafx.web/src/main/native/Source/ThirdParty/icu/source/i18n/double-conversion-utils.h @@ -103,7 +103,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ defined(__or1k__) || defined(__arc__) || \ - defined(__EMSCRIPTEN__) + defined(__EMSCRIPTEN__) || defined(__loongarch__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ defined(__pnacl__) || defined(__native_client__) diff --git a/modules/javafx.web/src/main/native/Source/WTF/wtf/PageBlock.h b/modules/javafx.web/src/main/native/Source/WTF/wtf/PageBlock.h index 2a618f69..e5e340c0 100644 --- a/modules/javafx.web/src/main/native/Source/WTF/wtf/PageBlock.h +++ b/modules/javafx.web/src/main/native/Source/WTF/wtf/PageBlock.h @@ -47,7 +47,7 @@ namespace WTF { // 64 KiB. (Apple uses 16 KiB.) // // Use 64 KiB for any unknown CPUs to be conservative. -#if OS(DARWIN) || PLATFORM(PLAYSTATION) +#if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(LOONGARCH64) constexpr size_t CeilingOnPageSize = 16 * KB; #elif USE(64KB_PAGE_BLOCK) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) constexpr size_t CeilingOnPageSize = 64 * KB; diff --git a/modules/javafx.web/src/main/native/Source/WTF/wtf/PlatformCPU.h b/modules/javafx.web/src/main/native/Source/WTF/wtf/PlatformCPU.h index 58fef8f6..b1bf6019 100644 --- a/modules/javafx.web/src/main/native/Source/WTF/wtf/PlatformCPU.h +++ b/modules/javafx.web/src/main/native/Source/WTF/wtf/PlatformCPU.h @@ -55,6 +55,12 @@ #define WTF_MIPS_FP64 (defined __mips_fpr && __mips_fpr == 64) #endif +/* CPU(LOONGARCH64) - LOONGARCH64 */ +#if defined(__loongarch64) +#define WTF_CPU_LOONGARCH64 1 +#define WTF_CPU_KNOWN 1 +#endif + /* CPU(PPC64) - PowerPC 64-bit Big Endian */ #if ( defined(__ppc64__) \ || defined(__PPC64__)) \ diff --git a/modules/javafx.web/src/main/native/Source/WTF/wtf/dtoa/utils.h b/modules/javafx.web/src/main/native/Source/WTF/wtf/dtoa/utils.h index 96d5bd7b..684d3fbc 100644 --- a/modules/javafx.web/src/main/native/Source/WTF/wtf/dtoa/utils.h +++ b/modules/javafx.web/src/main/native/Source/WTF/wtf/dtoa/utils.h @@ -91,7 +91,7 @@ int main(int argc, char** argv) { defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ defined(__riscv) || \ defined(__or1k__) || defined(__arc__) || \ - defined(__EMSCRIPTEN__) + defined(__EMSCRIPTEN__) || defined(__loongarch__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(__mc68000__) || \ defined(__pnacl__) || defined(__native_client__) -- 2.43.0