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

Reply via email to