Bug 98758 - JSC fails to build on Linux ARMv7 Thumb
Summary: JSC fails to build on Linux ARMv7 Thumb
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Linux
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-09 07:50 PDT by Roman Zhuykov
Modified: 2013-07-01 02:27 PDT (History)
3 users (show)

See Also:


Attachments
Prototype patch (741 bytes, patch)
2012-10-09 07:50 PDT, Roman Zhuykov
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Zhuykov 2012-10-09 07:50:31 PDT
Created attachment 167756 [details]
Prototype patch

Since SVN revision 130359 JSC fails to cross-build on x86-64 host for Linux ARMv7 Thumb.
I use scratchbox2 and cross-gcc (newest version 4.8.0 from trunk) to build JavaScriptCore. I build only jsc console application, running
"../src/configure --host=arm-unknown-linux-gnueabi --enable-release" and "make jsc"
Error while compiling LowLevelInterpreter.cpp:
arm-unknown-linux-gnueabi-g++ -DHAVE_CONFIG_H -I. -I../src -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_EGL=1 -DWTF_USE_OPENGL_ES_2=1 -DWTF_USE_OPENGL=1 -DNDEBUG -I../src/Source -I../src/Source/JavaScriptCore -I../src/Source/JavaScriptCore/API -I../src/Source/JavaScriptCore/assembler -I../src/Source/JavaScriptCore/bytecode -I../src/Source/JavaScriptCore/bytecompiler -I../src/Source/JavaScriptCore/dfg -I../src/Source/JavaScriptCore/disassembler -I../src/Source/JavaScriptCore/heap -I../src/Source/JavaScriptCore/debugger -I../src/Source/JavaScriptCore/ForwardingHeaders -I../src/Source/JavaScriptCore/interpreter -I../src/Source/JavaScriptCore/jit -I../src/Source/JavaScriptCore/jit -I../src/Source/JavaScriptCore/llint -I../src/Source/JavaScriptCore/parser -I../src/Source/JavaScriptCore/profiler -I../src/Source/JavaScriptCore/runtime -I../src/Source/JavaScriptCore/tools -I../src/Source/JavaScriptCore/yarr -I./DerivedSources/JavaScriptCore -I../src/Source/WTF -fno-rtti -fstrict-aliasing -O3 -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -D_REENTRANT -I/usr/include -O2 -mthumb -Werror -Wno-cast-align -Wno-unused-local-typedefs -Wno-c++0x-compat -O2 -MT Source/JavaScriptCore/llint/libjavascriptcoregtk_3_0_la-LowLevelInterpreter.lo -MD -MP -MF Source/JavaScriptCore/llint/.deps/libjavascriptcoregtk_3_0_la-LowLevelInterpreter.Tpo -c ../src/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp  -fPIC -DPIC -o Source/JavaScriptCore/llint/.libs/libjavascriptcoregtk_3_0_la-LowLevelInterpreter.o
/tmp/cchvZEw5.s: Assembler messages:
/tmp/cchvZEw5.s:3542: Error: immediate value out of range -- `movt r9,#-1'

Up to SVN rev. 130358 it builds and works fine. It also builds fine natively on x86-64.

The buggy assembly code on ARM is generated while creating LLIntAssembly.h by function armV7MoveImmediate from file Source/JavaScriptCore/offlineasm/armv7.rb. When armV7MoveImmediate "value" parameter equals -776, the second generated instruction is wrong: "movt <register>, #-1"

I'll add a patch with changeLog tomorrow.
Comment 1 Roman Zhuykov 2012-10-10 05:18:23 PDT
Fixed in SVN rev. 130826