Hi,
this fixes the webkitgtk4 build on riscv64. ok? Index: Makefile =================================================================== RCS file: /cvs/ports/www/webkitgtk4/Makefile,v diff -u -p -r1.211 Makefile --- Makefile 13 Apr 2024 09:37:30 -0000 1.211 +++ Makefile 14 Apr 2024 11:03:42 -0000 @@ -16,6 +16,7 @@ V = 2.44.1 DISTNAME = webkitgtk-${V} PKGNAME = webkitgtk${API:S/.//}-${V} FULLPKGNAME = ${PKGNAME} +REVISION = 0 EXTRACT_SUFX = .tar.xz SUBST_VARS = API @@ -119,6 +120,13 @@ CONFIGURE_ARGS += -DENABLE_GAMEPAD=OFF # #error "The MacroAssembler is not supported on this platform." CONFIGURE_ARGS += -DENABLE_JIT=OFF CONFIGURE_ARGS += -DENABLE_C_LOOP=ON +.endif + +.if ${MACHINE_ARCH} == riscv64 +# WEBASSEMBLY and FTL_JIT need at least one of OMGJIT/BBQJIT +# check Source/WTF/wtf/PlatformEnable.h +CONFIGURE_ARGS += -DENABLE_WEBASSEMBLY=OFF +CONFIGURE_ARGS += -DENABLE_FTL_JIT=OFF .endif # we don't want an allocation of 1GB, it's above the "default" class ulimit Index: patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter64_asm =================================================================== RCS file: patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter64_asm diff -N patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter64_asm --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-Source_JavaScriptCore_llint_LowLevelInterpreter64_asm 15 Apr 2024 11:01:30 -0000 @@ -0,0 +1,67 @@ +Partial revert of https://commits.webkit.org/270649@main +To avoid _llint_throw_stack_overflow_error_from_vm_entry being out of reach +from its call sites (issue visible on riscv64) we turn it into a local label +nested inside the macro that uses it. Said macro is used only twice anyway. + +Error message: +-->8-- +<inline asm>:24:1: error: fixup value out of range +bleu sp, x13, .Lllint_throw_stack_overflow_error_from_vm_entry +^ +<inline asm>:26:1: error: fixup value out of range +bltu x13, x31, .Lllint_throw_stack_overflow_error_from_vm_entry +^ +<inline asm>:108:1: error: fixup value out of range +bleu sp, x13, .Lllint_throw_stack_overflow_error_from_vm_entry +^ +<inline asm>:110:1: error: fixup value out of range +bltu x13, x31, .Lllint_throw_stack_overflow_error_from_vm_entry +^ +1 warning and 4 errors generated. +--8<-- + +Index: Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +--- Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.orig ++++ Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +@@ -255,7 +255,7 @@ macro doVMEntry(makeCall) + addp CallFrameHeaderSlots, t4, t4 + lshiftp 3, t4 + subp sp, t4, t3 +- bqbeq sp, t3, _llint_throw_stack_overflow_error_from_vm_entry ++ bqbeq sp, t3, .llint_throw_stack_overflow_error_from_vm_entry + + # Ensure that we have enough additional stack capacity for the incoming args, + # and the frame for the JS code we're executing. We need to do this check +@@ -273,11 +273,11 @@ macro doVMEntry(makeCall) + .stackCheckFailed: + move t4, entry + move t5, vm +- jmp _llint_throw_stack_overflow_error_from_vm_entry ++ jmp .llint_throw_stack_overflow_error_from_vm_entry + .stackHeightOK: + move t3, sp + else +- bpb t3, VM::m_softStackLimit[vm], _llint_throw_stack_overflow_error_from_vm_entry ++ bpb t3, VM::m_softStackLimit[vm], .llint_throw_stack_overflow_error_from_vm_entry + move t3, sp + end + +@@ -362,9 +362,8 @@ macro doVMEntry(makeCall) + popCalleeSaves() + functionEpilogue() + ret +-end + +-_llint_throw_stack_overflow_error_from_vm_entry: ++.llint_throw_stack_overflow_error_from_vm_entry: + const entry = a0 + const vm = a1 + const protoCallFrame = a2 +@@ -387,6 +386,7 @@ _llint_throw_stack_overflow_error_from_vm_entry: + popCalleeSaves() + functionEpilogue() + ret ++end + + # a0, a2, t3, t4 + macro makeJavaScriptCall(entry, protoCallFrame, temp1, temp2) -- jca