On Fri, Nov 26 2021, Antoine Jacoutot <[email protected]> wrote:
> On Fri, Nov 26, 2021 at 02:02:29PM +0100, Jeremie Courreges-Anglas wrote:
>>
>> This is not a fix for the relocation errors seen at link time in
>> previous builds.
>>
>> http://build-failures.rhaalovely.net/riscv64/2021-11-05/www/webkitgtk4.log
>>
>> I don't know how to fix those errors in LLint. Maybe some of the asm
>> involved isn't position-independant enough (the .cpp files themselves
>> are built with -fPIC).
>>
>> This commit is what introduces partial riscv64 native support, it's not
>> complete yet:
>>
>>
>> https://github.com/WebKit/WebKit/commit/d9b48eb602eb0269030f018afddd16c560d0b501
>>
>> Our port already contains logic to force-disable JIT and force-enable
>> the C_LOOP interpreter on some architectures. alas the flag name for
>> C_LOOP has changed. This is the reason why C_LOOP wasn't forced on
>> riscv64.
>
> OK.
I intend to commit this version, the comment in my previous diff isn't
quite accurrate.
Index: Makefile
===================================================================
RCS file: /home/cvs/ports/www/webkitgtk4/Makefile,v
retrieving revision 1.157
diff -u -p -p -u -r1.157 Makefile
--- Makefile 25 Nov 2021 19:05:27 -0000 1.157
+++ Makefile 26 Nov 2021 13:11:33 -0000
@@ -112,12 +112,13 @@ CONFIGURE_ARGS += -DUSE_WPE_RENDERER=OFF
CONFIGURE_ARGS += -DENABLE_GAMEPAD=OFF
# sync with Source/JavaScriptCore/assembler/MacroAssembler.h
+# native support for riscv64 in LLInt fails to link with relocation errors
.if ${MACHINE_ARCH} != "aarch64" && ${MACHINE_ARCH} != "amd64" && \
${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "i386" && \
${MACHINE_ARCH} != "mips64" && ${MACHINE_ARCH} != "mips64el"
# #error "The MacroAssembler is not supported on this platform."
CONFIGURE_ARGS += -DENABLE_JIT=OFF
-CONFIGURE_ARGS += -DENABLE_LLINT_C_LOOP=ON
+CONFIGURE_ARGS += -DENABLE_C_LOOP=ON
.endif
> Bumps are cheap if unsure...
Not needed.
Any opinion on...
>> ok?
>>
>> PS: I'm not sure a REVISION bump is needed. The diff unbreaks riscv64
>> and may affect a bunch of architectures that don't have any kind of
>> assembler support. The latter already have C_LOOP enabled by default
>> per Source/cmake/WebKitFeatures.cmake:93.
>> Should we reverse the logic
>> and always enforce JIT=NO/C_LOOP=YES on !(amd64|aarch64)?
This?
--
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE