<?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>179861</bug_id>
          
          <creation_ts>2017-11-18 08:21:55 -0800</creation_ts>
          <short_desc>[WTF] Use system endianess information instead of relying CPU information</short_desc>
          <delta_ts>2017-11-19 00:08:28 -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>New Bugs</component>
          <version>WebKit Nightly 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373551</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 08:21:55 -0800</bug_when>
    <thetext>[WTF] Use system endianess information instead of relying CPU information</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373552</commentid>
    <comment_count>1</comment_count>
      <attachid>327313</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 08:23:34 -0800</bug_when>
    <thetext>Created attachment 327313
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373553</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 08:24:57 -0800</bug_when>
    <thetext>My goal is removing bunch of minor CPUs from Platform.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373554</commentid>
    <comment_count>3</comment_count>
      <attachid>327314</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 08:32:24 -0800</bug_when>
    <thetext>Created attachment 327314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373560</commentid>
    <comment_count>4</comment_count>
      <attachid>327314</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-18 10:29:06 -0800</bug_when>
    <thetext>Comment on attachment 327314
Patch

Do we want something that’ll work with C++17?  http://en.cppreference.com/w/cpp/types/endian</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373598</commentid>
    <comment_count>5</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 14:27:04 -0800</bug_when>
    <thetext>(In reply to JF Bastien from comment #4)
&gt; Comment on attachment 327314 [details]
&gt; Patch
&gt; 
&gt; Do we want something that’ll work with C++17? 
&gt; http://en.cppreference.com/w/cpp/types/endian

In our current use cases, we need preprocessor defines to switch implementation by ifdefs. But C++ enum would work well if we implement things and switch by it.

template&lt;std::endian&gt;
void implementation();

template&lt;&gt;
void implementation&lt;std::endian::little&gt;()
{
    ...;
}

template&lt;&gt;
void implementation&lt;std::endian::big&gt;()
{
    ...;
}

And layout change is like,

template&lt;std::endian&gt;
struct Layout;

template&lt;&gt;
struct Layout&lt;std::endian::big&gt; {
    uint8_t f0;
    uint8_t f1;
};

template&lt;&gt;
struct Layout&lt;std::endian::little&gt; {
    uint8_t f1;
    uint8_t f0;
};

I&apos;m not sure how to handle PDP endian (a.k.a. middle endian) in C++17.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373635</commentid>
    <comment_count>6</comment_count>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2017-11-18 21:01:41 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #5)
&gt; (In reply to JF Bastien from comment #4)
&gt; &gt; Comment on attachment 327314 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Do we want something that’ll work with C++17? 
&gt; &gt; http://en.cppreference.com/w/cpp/types/endian
&gt; 
&gt; In our current use cases, we need preprocessor defines to switch
&gt; implementation by ifdefs. But C++ enum would work well if we implement
&gt; things and switch by it.

Sounds like you&apos;d rather do that separately? Sounds fine, I just figured I would ask! :)

Shame that the proposal didn&apos;t have a feature test macro so we could conditionally use it when available :(

&gt; I&apos;m not sure how to handle PDP endian (a.k.a. middle endian) in C++17.

Can we just static_assert that we never get such endian? I don&apos;t think WebKit supports this type of platform?

Otherwise r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373659</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 23:43:01 -0800</bug_when>
    <thetext>(In reply to JF Bastien from comment #6)
&gt; (In reply to Yusuke Suzuki from comment #5)
&gt; &gt; (In reply to JF Bastien from comment #4)
&gt; &gt; &gt; Comment on attachment 327314 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Do we want something that’ll work with C++17? 
&gt; &gt; &gt; http://en.cppreference.com/w/cpp/types/endian
&gt; &gt; 
&gt; &gt; In our current use cases, we need preprocessor defines to switch
&gt; &gt; implementation by ifdefs. But C++ enum would work well if we implement
&gt; &gt; things and switch by it.
&gt; 
&gt; Sounds like you&apos;d rather do that separately? Sounds fine, I just figured I
&gt; would ask! :)
&gt; 
&gt; Shame that the proposal didn&apos;t have a feature test macro so we could
&gt; conditionally use it when available :(

Yeah, I think currently using CPU(LITTLE_ENDIAN) / CPU(BIG_ENDIAN) is enough for WebKit. But once C++17 is everywhere, we can consider using std::endian instead in our code base.

&gt; 
&gt; &gt; I&apos;m not sure how to handle PDP endian (a.k.a. middle endian) in C++17.
&gt; 
&gt; Can we just static_assert that we never get such endian? I don&apos;t think
&gt; WebKit supports this type of platform?
&gt; 
&gt; Otherwise r=me

Right, I think the current WebKit does not support middle endian well.
And I don&apos;t think there are any stake holders using middle endian CPUs.
I&apos;ll add `static_assert(!CPU(MIDDLE_ENDIAN), &quot;&quot;);` to ensure this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373660</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-18 23:44:17 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #7)
&gt; (In reply to JF Bastien from comment #6)
&gt; &gt; (In reply to Yusuke Suzuki from comment #5)
&gt; &gt; &gt; (In reply to JF Bastien from comment #4)
&gt; &gt; &gt; &gt; Comment on attachment 327314 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Do we want something that’ll work with C++17? 
&gt; &gt; &gt; &gt; http://en.cppreference.com/w/cpp/types/endian
&gt; &gt; &gt; 
&gt; &gt; &gt; In our current use cases, we need preprocessor defines to switch
&gt; &gt; &gt; implementation by ifdefs. But C++ enum would work well if we implement
&gt; &gt; &gt; things and switch by it.
&gt; &gt; 
&gt; &gt; Sounds like you&apos;d rather do that separately? Sounds fine, I just figured I
&gt; &gt; would ask! :)
&gt; &gt; 
&gt; &gt; Shame that the proposal didn&apos;t have a feature test macro so we could
&gt; &gt; conditionally use it when available :(
&gt; 
&gt; Yeah, I think currently using CPU(LITTLE_ENDIAN) / CPU(BIG_ENDIAN) is enough
&gt; for WebKit. But once C++17 is everywhere, we can consider using std::endian
&gt; instead in our code base.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure how to handle PDP endian (a.k.a. middle endian) in C++17.
&gt; &gt; 
&gt; &gt; Can we just static_assert that we never get such endian? I don&apos;t think
&gt; &gt; WebKit supports this type of platform?
&gt; &gt; 
&gt; &gt; Otherwise r=me
&gt; 
&gt; Right, I think the current WebKit does not support middle endian well.
&gt; And I don&apos;t think there are any stake holders using middle endian CPUs.
&gt; I&apos;ll add `static_assert(!CPU(MIDDLE_ENDIAN), &quot;&quot;);` to ensure this.

Since it&apos;s macro, and we do not want to add any C++ things to Platform.h, I&apos;ll insert

#if !CPU(LITTLE_ENDIAN) &amp;&amp; !CPU(BIG_ENDIAN)
#error Unsupported endian
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373663</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-11-19 00:07:13 -0800</bug_when>
    <thetext>Committed r225032: &lt;https://trac.webkit.org/changeset/225032&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373664</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-19 00:08:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/35635902&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327313</attachid>
            <date>2017-11-18 08:23:34 -0800</date>
            <delta_ts>2017-11-18 08:32:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179861-20171119012334.patch</filename>
            <type>text/plain</type>
            <size>4985</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY2NzFmNmY1ZGY2MWE4ZDVhOGE3MjI3
OWMxZGMyYWIzNWVjNTlhODkuLjQ3YTdhMGRlOTQwN2VhM2QxYWUwNzc5ZGQ1OGMzOGIwMzM4NGJj
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTctMTEtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgW1dURl0gVXNlIHN5c3RlbSBlbmRpYW5lc3Mg
aW5mb3JtYXRpb24gaW5zdGVhZCBvZiByZWx5aW5nIENQVSBpbmZvcm1hdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCB3ZSB1c2Ug
a25vd24gQ1BVIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSBlbmRpYW5lc3Mgb2YgdGhlIGN1cnJl
bnQKKyAgICAgICAgYXJjaGl0ZWN0dXJlLiBCdXQgdGhpcyBtZWFucyB0aGF0IHVua25vd24gQ1BV
IGRvZXMgbm90IHdvcmsgd2VsbCBpbiBXZWJLaXQKKyAgICAgICAgd2l0aG91IG1vZGlmeWluZyBj
b2RlLiBJbnN0ZWFkLCB3ZSB1c2UgY29tcGlsZXIgb3Igc3lzdGVtJ3MgbWFjcm8gdG8gZGV0ZXJt
aW5lCisgICAgICAgIGVuZGlhbmVzcy4gVGhpcyBwYXZlcyB0aGUgd2F5IHRvIGRyb3BwaW5nIG1h
bnkgQ1BVcyBpbiBQbGF0Zm9ybS5oIGJ5IHJlcGxhY2luZworICAgICAgICB0aGVtIHdpdGggQ1BV
KFVOS05PV04pWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTI0MworCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKKzIwMTct
MTEtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAg
W1dURl0gUmVtb3ZlIENQVShIUFBBKSBpbiBTdGFja0JvdW5kcyBieSB1c2luZyBydW50aW1lIHN0
YWNrIGRpcmVjdGlvbiB0ZXN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk4NTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDE2NjkzOWViZDc5YTJlMjM2YTY2
MTU5YWUzYWZkZTgxNTdhMDUzYi4uNmQ1M2NlODRmZGYwYzBhN2E2ZDdmMjg4MjA4MGUzMTNlZTlh
MTFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC01OCw3ICs1OCw1MyBAQAogCiAvKiA9PT09IENQVSgpIC0g
dGhlIHRhcmdldCBDUFUgYXJjaGl0ZWN0dXJlID09PT0gKi8KIAotLyogVGhpcyBhbHNvIGRlZmlu
ZXMgQ1BVKEJJR19FTkRJQU4pIG9yIENQVShNSURETEVfRU5ESUFOKSBvciBuZWl0aGVyLCBhcyBh
cHByb3ByaWF0ZS4gKi8KKy8qIENQVShCSUdfRU5ESUFOKSBvciBDUFUoTUlERExFX0VORElBTikg
b3IgbmVpdGhlciwgYXMgYXBwcm9wcmlhdGUuICovCisKKyNpZiBDT01QSUxFUihHQ0NfT1JfQ0xB
TkcpCisjaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9CSUdfRU5ESUFOX18KKyNkZWZpbmUg
V1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbGlmIF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElU
VExFX0VORElBTl9fCisjZGVmaW5lIFdURl9DUFVfTElUVExFX0VORElBTiAxCisjZWxpZiBfX0JZ
VEVfT1JERVJfXyA9PSBfX09SREVSX1BEUF9FTkRJQU5fXworI2RlZmluZSBXVEZfQ1BVX01JRERM
RV9FTkRJQU4gMQorI2Vsc2UKKyNlcnJvciBVbmtub3duIGVuZGlhbgorI2VuZGlmCisjZWxzZQor
I2lmIE9TKFdJTkRPV1MpCisvKiBXaW5kb3dzIG9ubHkgaGF2ZSBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZS4gKi8KKyNkZWZpbmUgV1RGX0NQVV9MSVRUTEVfRU5ESUFOIDEKKyNlbHNlCisjaW5j
bHVkZSA8c3lzL3R5cGVzLmg+CisjaWYgX19oYXNfaW5jbHVkZSg8ZW5kaWFuLmg+KQorI2luY2x1
ZGUgPGVuZGlhbi5oPgorI2lmIF9fQllURV9PUkRFUiA9PSBfX0JJR19FTkRJQU4KKyNkZWZpbmUg
V1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbGlmIF9fQllURV9PUkRFUiA9PSBfX0xJVFRMRV9FTkRJ
QU4KKyNkZWZpbmUgV1RGX0NQVV9MSVRUTEVfRU5ESUFOIDEKKyNlbGlmIF9fQllURV9PUkRFUiA9
PSBfX1BEUF9FTkRJQU4KKyNkZWZpbmUgV1RGX0NQVV9NSURETEVfRU5ESUFOIDEKKyNlbHNlCisj
ZXJyb3IgVW5rbm93biBlbmRpYW4KKyNlbmRpZgorI2Vsc2UKKyNpZiBfX2hhc19pbmNsdWRlKDxt
YWNoaW5lL2VuZGlhbi5oPikKKyNpbmNsdWRlIDxtYWNoaW5lL2VuZGlhbi5oPgorI2Vsc2UKKyNp
bmNsdWRlIDxzeXMvZW5kaWFuLmg+CisjZW5kaWYKKyNpZiBCWVRFX09SREVSID09IEJJR19FTkRJ
QU4KKyNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKKyNlbGlmIEJZVEVfT1JERVIgPT0gTElU
VExFX0VORElBTgorI2RlZmluZSBXVEZfQ1BVX0xJVFRMRV9FTkRJQU4gMQorI2VsaWYgQllURV9P
UkRFUiA9PSBQRFBfRU5ESUFOCisjZGVmaW5lIFdURl9DUFVfTUlERExFX0VORElBTiAxCisjZWxz
ZQorI2Vycm9yIFVua25vd24gZW5kaWFuCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisjZW5kaWYK
IAogLyogQ1BVKEFMUEhBKSAtIERFQyBBbHBoYSAqLwogI2lmIGRlZmluZWQoX19hbHBoYV9fKQpA
QCAtNjgsNyArMTE0LDYgQEAKIC8qIENQVShIUFBBKSAtIEhQIFBBLVJJU0MgKi8KICNpZiBkZWZp
bmVkKF9faHBwYV9fKSB8fCBkZWZpbmVkKF9faHBwYTY0X18pCiAjZGVmaW5lIFdURl9DUFVfSFBQ
QSAxCi0jZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCiAjZW5kaWYKIAogLyogQ1BVKElBNjQp
IC0gSXRhbml1bSAvIElBLTY0ICovCkBAIC04OSw5ICsxMzQsNiBAQAogI2RlZmluZSBXVEZfQ1BV
X01JUFMgMQogI2RlZmluZSBXVEZfTUlQU19BUkNIIF9fbWlwcwogI2VuZGlmCi0jaWYgZGVmaW5l
ZChfX01JUFNFQl9fKQotI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQotI2VuZGlmCiAjZGVm
aW5lIFdURl9NSVBTX1BJQyAoZGVmaW5lZCBfX1BJQ19fKQogI2RlZmluZSBXVEZfTUlQU19JU0Eo
dikgKGRlZmluZWQgV1RGX01JUFNfQVJDSCAmJiBXVEZfTUlQU19BUkNIID09IHYpCiAjZGVmaW5l
IFdURl9NSVBTX0lTQV9BVF9MRUFTVCh2KSAoZGVmaW5lZCBXVEZfTUlQU19BUkNIICYmIFdURl9N
SVBTX0FSQ0ggPj0gdikKQEAgLTEwNiwxMCArMTQ4LDggQEAKIC8qIENQVShQUEM2NCkgLSBQb3dl
clBDIDY0LWJpdCBCaWcgRW5kaWFuICovCiAjaWYgKCAgZGVmaW5lZChfX3BwYzY0X18pICAgICAg
XAogICAgIHx8IGRlZmluZWQoX19QUEM2NF9fKSkgICAgIFwKLSAgICAmJiBkZWZpbmVkKF9fQllU
RV9PUkRFUl9fKSBcCi0gICAgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElB
Tl9fKQorICAgICYmIENQVShCSUdfRU5ESUFOKQogI2RlZmluZSBXVEZfQ1BVX1BQQzY0IDEKLSNk
ZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKICNlbmRpZgogCiAvKiBDUFUoUFBDNjQpIC0gUG93
ZXJQQyA2NC1iaXQgTGl0dGxlIEVuZGlhbiAqLwpAQCAtMTE3LDggKzE1Nyw3IEBACiAgICAgfHwg
ZGVmaW5lZChfX1BQQzY0X18pICAgICAgXAogICAgIHx8IGRlZmluZWQoX19wcGM2NGxlX18pICAg
IFwKICAgICB8fCBkZWZpbmVkKF9fUFBDNjRMRV9fKSkgICBcCi0gICAgJiYgZGVmaW5lZChfX0JZ
VEVfT1JERVJfXykgXAotICAgICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9F
TkRJQU5fXykKKyAgICAmJiBDUFUoTElUVExFX0VORElBTikKICNkZWZpbmUgV1RGX0NQVV9QUEM2
NExFIDEKICNlbmRpZgogCkBAIC0xMzEsMTAgKzE3MCw4IEBACiAgICAgfHwgZGVmaW5lZChfTV9Q
UEMpICAgICAgICAgXAogICAgIHx8IGRlZmluZWQoX19QUEMpKSAgICAgICAgIFwKICAgICAmJiAh
Q1BVKFBQQzY0KSAgICAgICAgICAgICBcCi0gICAgJiYgZGVmaW5lZChfX0JZVEVfT1JERVJfXykg
XAotICAgICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0JJR19FTkRJQU5fXykKKyAgICAm
JiBDUFUoQklHX0VORElBTikKICNkZWZpbmUgV1RGX0NQVV9QUEMgMQotI2RlZmluZSBXVEZfQ1BV
X0JJR19FTkRJQU4gMQogI2VuZGlmCiAKIC8qIENQVShTSDQpIC0gU3VwZXJIIFNILTQgKi8KQEAg
LTE0NSwxNCArMTgyLDEyIEBACiAvKiBDUFUoUzM5MFgpIC0gUzM5MCA2NC1iaXQgKi8KICNpZiBk
ZWZpbmVkKF9fczM5MHhfXykKICNkZWZpbmUgV1RGX0NQVV9TMzkwWCAxCi0jZGVmaW5lIFdURl9D
UFVfQklHX0VORElBTiAxCiAjZW5kaWYKIAogLyogQ1BVKFMzOTApIC0gUzM5MCAzMi1iaXQgKi8K
ICNpZiAoICBkZWZpbmVkKF9fczM5MF9fKSAgICAgICAgXAogICAgICYmICFDUFUoUzM5MFgpKQog
I2RlZmluZSBXVEZfQ1BVX1MzOTAgMQotI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQogI2Vu
ZGlmCiAKIC8qIENQVShYODYpIC0gaTM4NiAvIHg4NiAzMi1iaXQgKi8KQEAgLTE5OCwxNyArMjMz
LDYgQEAKICNkZWZpbmUgV1RGX0NQVV9BUk1fSEFSREZQIDEKICNlbmRpZgogCi0jaWYgZGVmaW5l
ZChfX0FSTUVCX18pCi0jZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCi0KLSNlbGlmICFkZWZp
bmVkKF9fQVJNX0VBQklfXykgXAotICAgICYmICFkZWZpbmVkKF9fRUFCSV9fKSBcCi0gICAgJiYg
IWRlZmluZWQoX19WRlBfRlBfXykgXAotICAgICYmICFkZWZpbmVkKF9XSU4zMl9XQ0UpCi0jZGVm
aW5lIFdURl9DUFVfTUlERExFX0VORElBTiAxCi0KLSNlbmRpZgotCiAvKiBTZXQgV1RGX0FSTV9B
UkNIX1ZFUlNJT04gKi8KICNpZiAgIGRlZmluZWQoX19BUk1fQVJDSF80X18pIFwKICAgICB8fCBk
ZWZpbmVkKF9fQVJNX0FSQ0hfNFRfXykgXAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327314</attachid>
            <date>2017-11-18 08:32:24 -0800</date>
            <delta_ts>2017-11-18 21:01:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179861-20171119013223.patch</filename>
            <type>text/plain</type>
            <size>4868</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY2NzFmNmY1ZGY2MWE4ZDVhOGE3MjI3
OWMxZGMyYWIzNWVjNTlhODkuLjQ3YTdhMGRlOTQwN2VhM2QxYWUwNzc5ZGQ1OGMzOGIwMzM4NGJj
ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTctMTEtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgW1dURl0gVXNlIHN5c3RlbSBlbmRpYW5lc3Mg
aW5mb3JtYXRpb24gaW5zdGVhZCBvZiByZWx5aW5nIENQVSBpbmZvcm1hdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5ODYxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCB3ZSB1c2Ug
a25vd24gQ1BVIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSBlbmRpYW5lc3Mgb2YgdGhlIGN1cnJl
bnQKKyAgICAgICAgYXJjaGl0ZWN0dXJlLiBCdXQgdGhpcyBtZWFucyB0aGF0IHVua25vd24gQ1BV
IGRvZXMgbm90IHdvcmsgd2VsbCBpbiBXZWJLaXQKKyAgICAgICAgd2l0aG91IG1vZGlmeWluZyBj
b2RlLiBJbnN0ZWFkLCB3ZSB1c2UgY29tcGlsZXIgb3Igc3lzdGVtJ3MgbWFjcm8gdG8gZGV0ZXJt
aW5lCisgICAgICAgIGVuZGlhbmVzcy4gVGhpcyBwYXZlcyB0aGUgd2F5IHRvIGRyb3BwaW5nIG1h
bnkgQ1BVcyBpbiBQbGF0Zm9ybS5oIGJ5IHJlcGxhY2luZworICAgICAgICB0aGVtIHdpdGggQ1BV
KFVOS05PV04pWzFdLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3OTI0MworCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKKzIwMTct
MTEtMTggIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAg
W1dURl0gUmVtb3ZlIENQVShIUFBBKSBpbiBTdGFja0JvdW5kcyBieSB1c2luZyBydW50aW1lIHN0
YWNrIGRpcmVjdGlvbiB0ZXN0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk4NTkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDE2NjkzOWViZDc5YTJlMjM2YTY2
MTU5YWUzYWZkZTgxNTdhMDUzYi4uZTI2ZDJmY2ZkMjdlZTk4MDZkZjE5YmYyYmI5MWEzZWRhMDg5
NWI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC01OCw4ICs1OCw2IEBACiAKIC8qID09PT0gQ1BVKCkgLSB0
aGUgdGFyZ2V0IENQVSBhcmNoaXRlY3R1cmUgPT09PSAqLwogCi0vKiBUaGlzIGFsc28gZGVmaW5l
cyBDUFUoQklHX0VORElBTikgb3IgQ1BVKE1JRERMRV9FTkRJQU4pIG9yIG5laXRoZXIsIGFzIGFw
cHJvcHJpYXRlLiAqLwotCiAvKiBDUFUoQUxQSEEpIC0gREVDIEFscGhhICovCiAjaWYgZGVmaW5l
ZChfX2FscGhhX18pCiAjZGVmaW5lIFdURl9DUFVfQUxQSEEgMQpAQCAtNjgsNyArNjYsNiBAQAog
LyogQ1BVKEhQUEEpIC0gSFAgUEEtUklTQyAqLwogI2lmIGRlZmluZWQoX19ocHBhX18pIHx8IGRl
ZmluZWQoX19ocHBhNjRfXykKICNkZWZpbmUgV1RGX0NQVV9IUFBBIDEKLSNkZWZpbmUgV1RGX0NQ
VV9CSUdfRU5ESUFOIDEKICNlbmRpZgogCiAvKiBDUFUoSUE2NCkgLSBJdGFuaXVtIC8gSUEtNjQg
Ki8KQEAgLTg5LDkgKzg2LDYgQEAKICNkZWZpbmUgV1RGX0NQVV9NSVBTIDEKICNkZWZpbmUgV1RG
X01JUFNfQVJDSCBfX21pcHMKICNlbmRpZgotI2lmIGRlZmluZWQoX19NSVBTRUJfXykKLSNkZWZp
bmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKLSNlbmRpZgogI2RlZmluZSBXVEZfTUlQU19QSUMgKGRl
ZmluZWQgX19QSUNfXykKICNkZWZpbmUgV1RGX01JUFNfSVNBKHYpIChkZWZpbmVkIFdURl9NSVBT
X0FSQ0ggJiYgV1RGX01JUFNfQVJDSCA9PSB2KQogI2RlZmluZSBXVEZfTUlQU19JU0FfQVRfTEVB
U1QodikgKGRlZmluZWQgV1RGX01JUFNfQVJDSCAmJiBXVEZfTUlQU19BUkNIID49IHYpCkBAIC0x
MDksNyArMTAzLDYgQEAKICAgICAmJiBkZWZpbmVkKF9fQllURV9PUkRFUl9fKSBcCiAgICAgJiYg
KF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfQklHX0VORElBTl9fKQogI2RlZmluZSBXVEZfQ1BV
X1BQQzY0IDEKLSNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKICNlbmRpZgogCiAvKiBDUFUo
UFBDNjQpIC0gUG93ZXJQQyA2NC1iaXQgTGl0dGxlIEVuZGlhbiAqLwpAQCAtMTMxLDEwICsxMjQs
OCBAQAogICAgIHx8IGRlZmluZWQoX01fUFBDKSAgICAgICAgIFwKICAgICB8fCBkZWZpbmVkKF9f
UFBDKSkgICAgICAgICBcCiAgICAgJiYgIUNQVShQUEM2NCkgICAgICAgICAgICAgXAotICAgICYm
IGRlZmluZWQoX19CWVRFX09SREVSX18pIFwKLSAgICAmJiAoX19CWVRFX09SREVSX18gPT0gX19P
UkRFUl9CSUdfRU5ESUFOX18pCisgICAgJiYgQ1BVKEJJR19FTkRJQU4pCiAjZGVmaW5lIFdURl9D
UFVfUFBDIDEKLSNkZWZpbmUgV1RGX0NQVV9CSUdfRU5ESUFOIDEKICNlbmRpZgogCiAvKiBDUFUo
U0g0KSAtIFN1cGVySCBTSC00ICovCkBAIC0xNDUsMTQgKzEzNiwxMiBAQAogLyogQ1BVKFMzOTBY
KSAtIFMzOTAgNjQtYml0ICovCiAjaWYgZGVmaW5lZChfX3MzOTB4X18pCiAjZGVmaW5lIFdURl9D
UFVfUzM5MFggMQotI2RlZmluZSBXVEZfQ1BVX0JJR19FTkRJQU4gMQogI2VuZGlmCiAKIC8qIENQ
VShTMzkwKSAtIFMzOTAgMzItYml0ICovCiAjaWYgKCAgZGVmaW5lZChfX3MzOTBfXykgICAgICAg
IFwKICAgICAmJiAhQ1BVKFMzOTBYKSkKICNkZWZpbmUgV1RGX0NQVV9TMzkwIDEKLSNkZWZpbmUg
V1RGX0NQVV9CSUdfRU5ESUFOIDEKICNlbmRpZgogCiAvKiBDUFUoWDg2KSAtIGkzODYgLyB4ODYg
MzItYml0ICovCkBAIC0xOTgsMTcgKzE4Nyw2IEBACiAjZGVmaW5lIFdURl9DUFVfQVJNX0hBUkRG
UCAxCiAjZW5kaWYKIAotI2lmIGRlZmluZWQoX19BUk1FQl9fKQotI2RlZmluZSBXVEZfQ1BVX0JJ
R19FTkRJQU4gMQotCi0jZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pIFwKLSAgICAmJiAhZGVm
aW5lZChfX0VBQklfXykgXAotICAgICYmICFkZWZpbmVkKF9fVkZQX0ZQX18pIFwKLSAgICAmJiAh
ZGVmaW5lZChfV0lOMzJfV0NFKQotI2RlZmluZSBXVEZfQ1BVX01JRERMRV9FTkRJQU4gMQotCi0j
ZW5kaWYKLQogLyogU2V0IFdURl9BUk1fQVJDSF9WRVJTSU9OICovCiAjaWYgICBkZWZpbmVkKF9f
QVJNX0FSQ0hfNF9fKSBcCiAgICAgfHwgZGVmaW5lZChfX0FSTV9BUkNIXzRUX18pIFwKQEAgLTQ0
Niw2ICs0MjQsNTQgQEAKIAogLyogT3BlcmF0aW5nIGVudmlyb25tZW50cyAqLwogCisvKiBDUFUo
QklHX0VORElBTikgb3IgQ1BVKE1JRERMRV9FTkRJQU4pIG9yIG5laXRoZXIsIGFzIGFwcHJvcHJp
YXRlLiAqLworCisjaWYgQ09NUElMRVIoR0NDX09SX0NMQU5HKQorI2lmIF9fQllURV9PUkRFUl9f
ID09IF9fT1JERVJfQklHX0VORElBTl9fCisjZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCisj
ZWxpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXworI2RlZmluZSBX
VEZfQ1BVX0xJVFRMRV9FTkRJQU4gMQorI2VsaWYgX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9Q
RFBfRU5ESUFOX18KKyNkZWZpbmUgV1RGX0NQVV9NSURETEVfRU5ESUFOIDEKKyNlbHNlCisjZXJy
b3IgVW5rbm93biBlbmRpYW4KKyNlbmRpZgorI2Vsc2UKKyNpZiBPUyhXSU5ET1dTKQorLyogV2lu
ZG93cyBvbmx5IGhhdmUgbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmUuICovCisjZGVmaW5lIFdU
Rl9DUFVfTElUVExFX0VORElBTiAxCisjZWxzZQorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lm
IF9faGFzX2luY2x1ZGUoPGVuZGlhbi5oPikKKyNpbmNsdWRlIDxlbmRpYW4uaD4KKyNpZiBfX0JZ
VEVfT1JERVIgPT0gX19CSUdfRU5ESUFOCisjZGVmaW5lIFdURl9DUFVfQklHX0VORElBTiAxCisj
ZWxpZiBfX0JZVEVfT1JERVIgPT0gX19MSVRUTEVfRU5ESUFOCisjZGVmaW5lIFdURl9DUFVfTElU
VExFX0VORElBTiAxCisjZWxpZiBfX0JZVEVfT1JERVIgPT0gX19QRFBfRU5ESUFOCisjZGVmaW5l
IFdURl9DUFVfTUlERExFX0VORElBTiAxCisjZWxzZQorI2Vycm9yIFVua25vd24gZW5kaWFuCisj
ZW5kaWYKKyNlbHNlCisjaWYgX19oYXNfaW5jbHVkZSg8bWFjaGluZS9lbmRpYW4uaD4pCisjaW5j
bHVkZSA8bWFjaGluZS9lbmRpYW4uaD4KKyNlbHNlCisjaW5jbHVkZSA8c3lzL2VuZGlhbi5oPgor
I2VuZGlmCisjaWYgQllURV9PUkRFUiA9PSBCSUdfRU5ESUFOCisjZGVmaW5lIFdURl9DUFVfQklH
X0VORElBTiAxCisjZWxpZiBCWVRFX09SREVSID09IExJVFRMRV9FTkRJQU4KKyNkZWZpbmUgV1RG
X0NQVV9MSVRUTEVfRU5ESUFOIDEKKyNlbGlmIEJZVEVfT1JERVIgPT0gUERQX0VORElBTgorI2Rl
ZmluZSBXVEZfQ1BVX01JRERMRV9FTkRJQU4gMQorI2Vsc2UKKyNlcnJvciBVbmtub3duIGVuZGlh
bgorI2VuZGlmCisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKIC8qIEV4cG9ydCBtYWNybyBzdXBw
b3J0LiBEZXRlY3RzIHRoZSBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBmb3Igc2hhcmVkIGxpYnJhcnkg
c3ltYm9sIGV4cG9ydAogICAgZGVjb3JhdGlvbnMuICovCiAjaWYgT1MoV0lORE9XUykgfHwgKENP
TVBJTEVSX0hBU19DTEFOR19ERUNMU1BFQyhkbGxpbXBvcnQpICYmIENPTVBJTEVSX0hBU19DTEFO
R19ERUNMU1BFQyhkbGxleHBvcnQpKQo=
</data>
<flag name="review"
          id="346549"
          type_id="1"
          status="+"
          setter="jfbastien"
    />
          </attachment>
      

    </bug>

</bugzilla>