Bug 104270
Summary: | disabling JIT should disable also the YARR JIT | ||
---|---|---|---|
Product: | WebKit | Reporter: | Dan Horák <dan> |
Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED INVALID | ||
Severity: | Normal | CC: | barraclough, fpizlo |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | Other | ||
OS: | Linux |
Dan Horák
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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Dan Horák
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
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
(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?