Bug 104270

Summary: disabling JIT should disable also the YARR JIT
Product: WebKit Reporter: Dan Horák <dan>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: barraclough, fpizlo
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Other   
OS: Linux   

Dan Horák
Reported 2012-12-06 09:46:27 PST
I get a build failure when building webkitgtk3-1.11.2 in Fedora/s390x because it looks like that YARR JIT is still enabled while JIT is disabled in the configure command and this combination sets ASSEMBLER to enabled state. The logic in Source/WTF/wtf/Platform.h has some error. ... g++ -DHAVE_CONFIG_H -I. -Wall -W -Wcast-align -Wchar-subscripts -Wreturn-type -Wformat -Wformat-security -Wno-format-y2k -Wundef -Wmissing-format-attribute -Wpointer-arith -Wwrite-strings -Wno-unused-parameter -Wno-parentheses -fno-exceptions -DENABLE_GLIB_SUPPORT=1 -DBUILDING_CAIRO__=1 -DBUILDING_GTK__=1 -DWTF_CHANGES -DBUILDING_WEBKIT2__=1 -DXP_UNIX -DMOZ_X11 -DWTF_USE_ICU_UNICODE=1 -DWTF_USE_GSTREAMER=1 -DWTF_USE_ACCELERATED_COMPOSITING=1 -DENABLE_3D_RENDERING=1 -DWTF_USE_TEXTURE_MAPPER=1 -DWTF_USE_TEXTURE_MAPPER_GL=1 -DWTF_USE_GLX=1 -DWTF_USE_EGL=1 -DWTF_USE_OPENGL=1 -DNDEBUG -DENABLE_JIT=0 -I./Source -I./Source/JavaScriptCore -I./Source/JavaScriptCore/API -I./Source/JavaScriptCore/assembler -I./Source/JavaScriptCore/bytecode -I./Source/JavaScriptCore/bytecompiler -I./Source/JavaScriptCore/dfg -I./Source/JavaScriptCore/disassembler -I./Source/JavaScriptCore/heap -I./Source/JavaScriptCore/debugger -I./Source/JavaScriptCore/ForwardingHeaders -I./Source/JavaScriptCore/interpreter -I./Source/JavaScriptCore/jit -I./Source/JavaScriptCore/jit -I./Source/JavaScriptCore/llint -I./Source/JavaScriptCore/parser -I./Source/JavaScriptCore/profiler -I./Source/JavaScriptCore/runtime -I./Source/JavaScriptCore/tools -I./Source/JavaScriptCore/yarr -I./DerivedSources/JavaScriptCore -I./Source/WTF -O2 -g1 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -march=z9-109 -mtune=z10 -Wno-c++0x-compat -O2 -c -o Source/JavaScriptCore/llint/Programs_LLIntOffsetsExtractor-LLIntOffsetsExtractor.o `test -f 'Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp' || echo './'`Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp In file included from ./Source/JavaScriptCore/bytecode/ValueRecovery.h:31:0, from ./Source/JavaScriptCore/bytecode/CodeOrigin.h:29, from ./Source/JavaScriptCore/bytecode/CodeBlock.h:38, from Source/JavaScriptCore/llint/LLIntOffsetsExtractor.cpp:29: ./Source/JavaScriptCore/assembler/MacroAssembler.h:62:2: error: #error "The MacroAssembler is not supported on this platform." ... full logs at http://s390.koji.fedoraproject.org/koji/taskinfo?taskID=878782
Attachments
Dan Horák
Comment 1 2012-12-17 09:05:06 PST
I think the problem is in the snippet from WTF/wtf/Platform.h (below), LLINT_C_LOOP is enabled on eg. s390x (where JIT is explicitly disabled) which leads to YARR also being enabled. I can YARR only x86/x86_64, MIPS, SH4 and ARM support in the YARR code. ... /* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */ #if !defined(ENABLE_YARR_JIT) && (ENABLE(JIT) || ENABLE(LLINT_C_LOOP)) && !PLATFORM(CHROMIUM) && !(OS(QNX) && PLATFORM(QT)) #define ENABLE_YARR_JIT 1 /* Setting this flag compares JIT results with interpreter results. */ #define ENABLE_YARR_JIT_DEBUG 0 #endif ...
Gavin Barraclough
Comment 2 2013-05-24 18:00:52 PDT
We provide the ability to compile in the YARR_JIT and/or the JS language JITs – this is intentional (when bringing up new architectures, we often compile in only the YARR_JIT, and not the JIT). If you don't want to builds the YARR_JIT for your platform, please just disable it!
Dan Horák
Comment 3 2013-05-24 23:45:38 PDT
(In reply to comment #2) > We provide the ability to compile in the YARR_JIT and/or the JS language JITs – this is intentional (when bringing up new architectures, we often compile in only the YARR_JIT, and not the JIT). If you don't want to builds the YARR_JIT for your platform, please just disable it! So there is a configure switch to disable YARR_JIT?
Note You need to log in before you can comment on or make changes to this bug.