<?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>152923</bug_id>
          
          <creation_ts>2016-01-08 13:26:51 -0800</creation_ts>
          <short_desc>Fixed compilation of JavaScriptCore with GCC 4.8 on 32-bit platforms</short_desc>
          <delta_ts>2016-01-11 13:04:39 -0800</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>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>1</everconfirmed>
          <reporter name="Konstantin Tokarev">annulen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jbriance</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1153978</commentid>
    <comment_count>0</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-08 13:26:51 -0800</bug_when>
    <thetext>This small patch restores compilation of JSC with GCC 4.8 on 32-bit platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1153981</commentid>
    <comment_count>1</comment_count>
      <attachid>268578</attachid>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-08 13:28:20 -0800</bug_when>
    <thetext>Created attachment 268578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154000</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-01-08 14:01:25 -0800</bug_when>
    <thetext>What is the error that GCC 4.8 reports?  Aggregate initialization is a c++11 feature and should be in GCC 4.8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154015</commentid>
    <comment_count>3</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-08 14:28:26 -0800</bug_when>
    <thetext>I hit this GCC bug which is fixed in 4.9.0:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50025

Exact message is:

In file included from ../../Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:33:0:
../../Source/JavaScriptCore/jit/CallFrameShuffler.h: In member function ‘void JSC::CallFrameShuffler::assumeCalleeIsCell()’:
../../Source/JavaScriptCore/jit/CallFrameShuffler.h:144:90: error: invalid initialization of non-const reference of type ‘JSC::CachedRecovery&amp;’ from an rvalue of type ‘&lt;brace-enclosed initializer list&gt;’
         CachedRecovery&amp; calleeCachedRecovery { *getNew(VirtualRegister(JSStack::Callee)) };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154077</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-08 17:24:42 -0800</bug_when>
    <thetext>This seems like it is completely unrelated to whether it is being compiled on a 32-bit platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154127</commentid>
    <comment_count>5</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-01-08 23:41:16 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; This seems like it is completely unrelated to whether it is being compiled
&gt; on a 32-bit platform.

It is in JSVALUE32_64 block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154153</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-09 10:45:55 -0800</bug_when>
    <thetext>Frankly, if a one-line change is all that&apos;s needed to support a particular compiler, I would just take it.

For openSUSE I got the latest stable WebKitGTK+ building and running fine with GCC 4.8 using -DENABLE_INDEXED_DATABASE=OFF and -DENABLE_DATABASE_PROCESS=OFF, in order to provide them the option of upgrading. (It built fine without running into this issue.) We will need to be more conservative with increasing our GCC requirement in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154154</commentid>
    <comment_count>7</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-09 10:49:44 -0800</bug_when>
    <thetext>Many vendor-supplied cross-toolchains don&apos;t have GCC 4.9 yet, but provide 4.8.x.

And many other Linux distributions, e.g. Ubuntu 14.04 LTS, provide GCC 4.8 in their repos, but not newer versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154357</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-01-11 05:41:05 -0800</bug_when>
    <thetext>Just a note, once we would like to use B3 as FTL JIT backend, GCC 5.2 
will be the minimum required version. See bug151624 for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154358</commentid>
    <comment_count>9</comment_count>
    <who name="Konstantin Tokarev">annulen</who>
    <bug_when>2016-01-11 05:46:29 -0800</bug_when>
    <thetext>That&apos;s sad, I hoped I will be able to fix FTL compilation with 4.8 in local branch.

However, right now I&apos;m mostly interested in supporting GCC 4.8 for targeting MIPS with vendor-supplied toolchain, and it has no B3 yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154436</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-11 12:14:46 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; This seems like it is completely unrelated to whether it is being compiled
&gt; &gt; on a 32-bit platform.
&gt; 
&gt; It is in JSVALUE32_64 block.
Oh, duh.

(In reply to comment #6)
&gt; Frankly, if a one-line change is all that&apos;s needed to support a particular compiler, I would just take it.
I agree.  I see no harm in accepting this change right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154458</commentid>
    <comment_count>11</comment_count>
      <attachid>268578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 13:04:36 -0800</bug_when>
    <thetext>Comment on attachment 268578
Patch

Clearing flags on attachment: 268578

Committed r194861: &lt;http://trac.webkit.org/changeset/194861&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154459</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-11 13:04:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268578</attachid>
            <date>2016-01-08 13:28:20 -0800</date>
            <delta_ts>2016-01-11 13:04:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152923-20160109002747.patch</filename>
            <type>text/plain</type>
            <size>1455</size>
            <attacher name="Konstantin Tokarev">annulen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0NzgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
YTNiODZlYmE1MzgwNTg1NjEyOTk2YmFlZjQyNjIzZDhiMDkxYmFmLi5lNDVmYTUxOWI2YWEzYjA3
MzY4M2E0ZTY0M2M0ZjM4ODg1ODliNGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxNi0wMS0wOCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5YW5k
ZXgucnU+CisKKyAgICAgICAgRml4ZWQgY29tcGlsYXRpb24gb2YgSmF2YVNjcmlwdENvcmUgd2l0
aCBHQ0MgNC44IG9uIDMyLWJpdCBwbGF0Zm9ybXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjkyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaml0L0NhbGxGcmFtZVNodWZmbGVyLmg6CisgICAgICAg
IChKU0M6OkNhbGxGcmFtZVNodWZmbGVyOjphc3N1bWVDYWxsZWVJc0NlbGwpOgorCiAyMDE2LTAx
LTA4ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQjMgaW5jb3Jy
ZWN0bHkgdHVybnMgTm90RXF1YWwoYm9vbCwgMSkgaW50byBFcXVhbChib29sLCAxKSBpbnN0ZWFk
IG9mIEVxdWFsKGJvb2wsIDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NhbGxGcmFtZVNodWZmbGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0NhbGxGcmFt
ZVNodWZmbGVyLmgKaW5kZXggNDVhNzczMDk5ZDJhMjdjZmY3YWI0NTg3ZDdmMTQ2NWUyMWViNDA4
OC4uMzkyN2NiNmM5MWY5ODI2OWRjNDg1MTM5M2QwM2UyYjU0OWY3NWIyMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DYWxsRnJhbWVTaHVmZmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ2FsbEZyYW1lU2h1ZmZsZXIuaApAQCAtMTQxLDcgKzE0MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFzc3VtZUNhbGxlZUlzQ2VsbCgpCiAgICAgewogI2lmIFVT
RShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIENhY2hlZFJlY292ZXJ5JiBjYWxsZWVDYWNoZWRSZWNv
dmVyeSB7ICpnZXROZXcoVmlydHVhbFJlZ2lzdGVyKEpTU3RhY2s6OkNhbGxlZSkpIH07CisgICAg
ICAgIENhY2hlZFJlY292ZXJ5JiBjYWxsZWVDYWNoZWRSZWNvdmVyeSA9ICpnZXROZXcoVmlydHVh
bFJlZ2lzdGVyKEpTU3RhY2s6OkNhbGxlZSkpOwogICAgICAgICBzd2l0Y2ggKGNhbGxlZUNhY2hl
ZFJlY292ZXJ5LnJlY292ZXJ5KCkudGVjaG5pcXVlKCkpIHsKICAgICAgICAgY2FzZSBJblBhaXI6
CiAgICAgICAgICAgICB1cGRhdGVSZWNvdmVyeSgK
</data>

          </attachment>
      

    </bug>

</bugzilla>