<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>98758</bug_id>
          
          <creation_ts>2012-10-09 07:50:31 -0700</creation_ts>
          <short_desc>JSC fails to build on Linux ARMv7 Thumb</short_desc>
          <delta_ts>2013-07-01 02:27:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Roman Zhuykov">zhroma</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>737774</commentid>
    <comment_count>0</comment_count>
      <attachid>167756</attachid>
    <who name="Roman Zhuykov">zhroma</who>
    <bug_when>2012-10-09 07:50:31 -0700</bug_when>
    <thetext>Created attachment 167756
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
&quot;../src/configure --host=arm-unknown-linux-gnueabi --enable-release&quot; and &quot;make jsc&quot;
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&apos;

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 &quot;value&quot; parameter equals -776, the second generated instruction is wrong: &quot;movt &lt;register&gt;, #-1&quot;

I&apos;ll add a patch with changeLog tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738855</commentid>
    <comment_count>1</comment_count>
    <who name="Roman Zhuykov">zhroma</who>
    <bug_when>2012-10-10 05:18:23 -0700</bug_when>
    <thetext>Fixed in SVN rev. 130826</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167756</attachid>
            <date>2012-10-09 07:50:31 -0700</date>
            <delta_ts>2012-10-09 07:50:31 -0700</delta_ts>
            <desc>Prototype patch</desc>
            <filename>ruby.patch</filename>
            <type>text/plain</type>
            <size>741</size>
            <attacher name="Roman Zhuykov">zhroma</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL2FybXY3LnJiIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKaW5kZXggZDlmOWJmYS4u
MDFhMWU5NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJt
djcucmIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL29mZmxpbmVhc20vYXJtdjcucmIKQEAg
LTUyLDcgKzUyLDExIEBAIGRlZiBhcm1WN01vdmVJbW1lZGlhdGUodmFsdWUsIHJlZ2lzdGVyKQog
ICAgIGVsc2UKICAgICAgICAgJGFzbS5wdXRzICJtb3Z3ICN7cmVnaXN0ZXIuYXJtVjdPcGVyYW5k
fSwgXCMje3ZhbHVlICYgMHhmZmZmfSIKICAgICAgICAgaWYgKHZhbHVlICYgMHhmZmZmMDAwMCkg
IT0gMAotICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7cmVnaXN0ZXIuYXJtVjdPcGVyYW5k
fSwgXCMje3ZhbHVlID4+IDE2fSIKKyAgICAgICAgICAgIGlmICgodmFsdWUgPj4gMTYpID49IDAp
CisgICAgICAgICAgICAgICAgJGFzbS5wdXRzICJtb3Z0ICN7cmVnaXN0ZXIuYXJtVjdPcGVyYW5k
fSwgXCMje3ZhbHVlID4+IDE2fSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAk
YXNtLnB1dHMgIm1vdnQgI3tyZWdpc3Rlci5hcm1WN09wZXJhbmR9LCBcIyN7MHhmZmZmICsgKHZh
bHVlID4+IDE2KX0iCisgICAgICAgICAgICBlbmQKICAgICAgICAgZW5kCiAgICAgZW5kCiBlbmQK
</data>

          </attachment>
      

    </bug>

</bugzilla>