<?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>155371</bug_id>
          
          <creation_ts>2016-03-11 10:41:34 -0800</creation_ts>
          <short_desc>build fails with memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’</short_desc>
          <delta_ts>2016-10-01 17:19:52 -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>Web Template Framework</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>buchner.johannes</reporter>
          <assigned_to name="JF Bastien">jfbastien</assigned_to>
          <cc>achristensen</cc>
    
    <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gnome</cc>
    
    <cc>guijemont</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>saurik</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1173785</commentid>
    <comment_count>0</comment_count>
    <who name="">buchner.johannes</who>
    <bug_when>2016-03-11 10:41:34 -0800</bug_when>
    <thetext>When compiling webkit-gtk with the -Os flag, gcc fails with:

FAILED: /usr/bin/x86_64-pc-linux-gnu-g++  -DBUILDING_GTK__=1 -DBUILDING_WITH_CMAKE=1 -DBUILDING_WTF -DDATA_DIR=\&quot;share\&quot; -DGETTEXT_PACKAGE=\&quot;WebKit2GTK-4.0\&quot; -DHAVE_CONFIG_H=1 -DUSER_AGENT_GTK_MAJOR_VERSION=602 -DUSER_AGENT_GTK_MINOR_VERSION=1 -DWEBKITGTK_API_VERSION_STRING=\&quot;4.0\&quot;   -DENABLE_JIT=0 -DENABLE_YARR_JIT=0 -DENABLE_ASSEMBLER=0 -DNDEBUG -march=native -O2 -pipe -fno-strict-aliasing  -std=c++11 -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/bmalloc -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/dtoa -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/text -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/threads -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/unicode -I/var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/ThirdParty -I. -IDerivedSources -isystem /usr/include/glib-2.0 -isystem /usr/lib64/glib-2.0/include    -Wall -Wextra -Wcast-align -Wformat-security -Wmissing-format-attribute -Wpointer-arith -Wundef -Wwrite-strings -fPIC -MMD -MT Source/WTF/wtf/CMakeFiles/WTF.dir/ParkingLot.cpp.o -MF Source/WTF/wtf/CMakeFiles/WTF.dir/ParkingLot.cpp.o.d -o Source/WTF/wtf/CMakeFiles/WTF.dir/ParkingLot.cpp.o -c /var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/ParkingLot.cpp
In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/atomic:41:0,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/Atomics.h:29,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/ParkingLot.h:31,
                 from /var/tmp/portage/net-libs/webkit-gtk-2.10.7/work/webkitgtk-2.10.7/Source/WTF/wtf/ParkingLot.cpp:27:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/bits/atomic_base.h: In member function ‘void WTF::WordLock::lock()’:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/bits/atomic_base.h:538:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
  return __atomic_compare_exchange_n(&amp;_M_i, &amp;__i1, __i2, 1, __m1, __m2);
                                                                      ^
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/bits/atomic_base.h: In member function ‘void WTF::WordLock::unlock()’:
/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4/bits/atomic_base.h:538:70: error: failure memory model cannot be stronger than success memory model for ‘__atomic_compare_exchange’
  return __atomic_compare_exchange_n(&amp;_M_i, &amp;__i1, __i2, 1, __m1, __m2);
                                                                      ^
ninja: build stopped: subcommand failed.

I can reproduce the bug for webkit-gtk-2.10.4-r1. 

The build with -Os succeeded for webkit-gtk-2.8.5.

This bug has been reported in Gentoo at https://bugs.gentoo.org/show_bug.cgi?id=575388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1173817</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-03-11 12:15:11 -0800</bug_when>
    <thetext>From the downstream bug, it seems this is affected by the GCC optimization level as it works fine with -O2. All our distributors use -O2 but there&apos;s probably value in supporting -OS due to our insane installed size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1205297</commentid>
    <comment_count>2</comment_count>
      <attachid>282039</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-06-24 17:57:05 -0700</bug_when>
    <thetext>Created attachment 282039
Safe workaround, but probably suboptimal.

After a quick inquiry, it seems to me that there is an issue with gcc and/or libstdc++. The relevan code in libstdc++ doesn&apos;t look suspicious though, so I&apos;d lean towards an issue with gcc&apos;s -Os under some specific conditions that we meet, though I could be wrong. I have tried to make a simple test case that reproduces that to understand better what&apos;s up but have not succeeded so far. In the meantime, this seems to work as a workaround (it compiles and looks safe, though locks might get slower than they could because of this).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207081</commentid>
    <comment_count>3</comment_count>
      <attachid>282542</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-01 05:46:39 -0700</bug_when>
    <thetext>Created attachment 282542
Test case

I&apos;ve worked from ParkingLot.cpp, simplifying things as much as possible while still reproducing the bug.
The resulting code probably makes little sense, but I think it should compile. It shows the same error message when compiling with -Os.
The test is only 37 lines of code without dependency on any webkit code. I guess it&apos;s starting to look like a gcc or libstdc++ bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207084</commentid>
    <comment_count>4</comment_count>
    <who name="">buchner.johannes</who>
    <bug_when>2016-07-01 05:56:56 -0700</bug_when>
    <thetext>I think the error is trying to tell you that you are doing something dangerous that you are not supposed to do. 

But do check with the latest gcc, because people reported webkit-gtk builds with gcc-5.3.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1207101</commentid>
    <comment_count>5</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-01 07:15:36 -0700</bug_when>
    <thetext>the error message is not consistent with what the code is doing though (it does not specify a failure memory model, that one is selected internally by libstdc++). I will try with gcc 5.3 when I find the time, likely in over a week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210069</commentid>
    <comment_count>6</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-12 10:09:35 -0700</bug_when>
    <thetext>I just tried with gcc 5.4, and it has no problem compiling the test file in -Os.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210528</commentid>
    <comment_count>7</comment_count>
      <attachid>283545</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-13 10:46:56 -0700</bug_when>
    <thetext>Created attachment 283545
Patch

Proposed patch to work around the issue on gcc &lt;5. Not sure if I should leave the #warning or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210941</commentid>
    <comment_count>8</comment_count>
      <attachid>283630</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-14 02:58:05 -0700</bug_when>
    <thetext>Created attachment 283630
Patch

New version that removes the warning and tries to make clang happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1210944</commentid>
    <comment_count>9</comment_count>
      <attachid>283631</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2016-07-14 03:19:45 -0700</bug_when>
    <thetext>Created attachment 283631
Patch

Ooops, should have used defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1214207</commentid>
    <comment_count>10</comment_count>
      <attachid>283631</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-07-25 09:22:58 -0700</bug_when>
    <thetext>Comment on attachment 283631
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=283631&amp;action=review

&gt; Source/WTF/wtf/Atomics.h:75
&gt; +#if defined(ATOMICS_ALWAYS_USE_SEQ_CST)

This should use the USE(SOMETHING) macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1228038</commentid>
    <comment_count>11</comment_count>
      <attachid>283631</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-09-08 20:49:59 -0700</bug_when>
    <thetext>Comment on attachment 283631
Patch

Can you respond to Alex&apos;s comment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229451</commentid>
    <comment_count>12</comment_count>
      <attachid>288772</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2016-09-13 22:13:59 -0700</bug_when>
    <thetext>Created attachment 288772
patch which inlines all atomics instead

I don&apos;t think this is the right fix. I&apos;ve attached a different one. TL;DR the quick fix is to make these wrapper function ALWASY_INLINE.

Details:

I tested with a few GCC versions, and the problem is specific to pre-5 revisions of GCC at Os only. The reason is that libstdc++ tries to be clever about enforcing the C++ standard&apos;s clause [atomics.types.operations.req] ¶21 which states:

    Requires: The failure argument shall not be `memory_order_release` nor
    `memory_order_acq_rel`. The failure argument shall be no stronger than the
    success argument.

It fails at doing this because its inlining heuristics are modified by Os, and they&apos;re not quite as dumb as O0 but not smart enough to get to the good code at O1. Adding ALWAYS_INLINE fixes the silliness at Os, leaves O1 great, and makes O0 slightly less bad but still pretty bad.

Try it out here: https://godbolt.org/g/8FPxWt


The other good news is that I&apos;m going to get this particular problem fixed in the version of C++ which will come after C++17:
https://github.com/jfbastien/papers/blob/master/source/P0418r1.bs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229572</commentid>
    <comment_count>13</comment_count>
      <attachid>288772</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-09-14 08:59:10 -0700</bug_when>
    <thetext>Comment on attachment 288772
patch which inlines all atomics instead

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229616</commentid>
    <comment_count>14</comment_count>
      <attachid>288772</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-14 10:14:04 -0700</bug_when>
    <thetext>Comment on attachment 288772
patch which inlines all atomics instead

Clearing flags on attachment: 288772

Committed r205914: &lt;http://trac.webkit.org/changeset/205914&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229617</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-14 10:14:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235664</commentid>
    <comment_count>16</comment_count>
      <attachid>290451</attachid>
    <who name="Jay Freeman (saurik)">saurik</who>
    <bug_when>2016-10-01 17:18:58 -0700</bug_when>
    <thetext>Created attachment 290451
test case for gcc 4.9 -Os of Atomic&lt;&gt;::compareExchange{Weak,Strong}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235665</commentid>
    <comment_count>17</comment_count>
    <who name="Jay Freeman (saurik)">saurik</who>
    <bug_when>2016-10-01 17:19:52 -0700</bug_when>
    <thetext>Did you actually test compiling WebKit using this patch, or did you just use that website to verify against the limited test case? I ask, because I was just compiling WebKit using -Os on gcc 4.9, this patch is already included in the code I&apos;m using, and it still doesn&apos;t compile with the same error message. I have whittled down a slightly longer test case that demonstrates that using ALWAYS_INLINE on the WTF atomics is not sufficient.

Essentially, with more callers with different arguments (including multiple instantiations with different template arguments), and using both the strong and weak variants in the same translation unit, gcc decides the code for __cmpexch_failure_order (which is constexpr but not even marked inline much less _GLIBCXX_ALWAYS_INLINE) has been duplicated too many times and it decides to stop inlining it, leading to the usage error.

https://godbolt.org/g/X3mWxp

(Sorry, btw: this is the first time I have attached a file to this bug tracker and I didn&apos;t realize quite how to get the comment and the test case to be included together, so the attachment was already sent separately.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>282039</attachid>
            <date>2016-06-24 17:57:05 -0700</date>
            <delta_ts>2016-07-13 10:46:50 -0700</delta_ts>
            <desc>Safe workaround, but probably suboptimal.</desc>
            <filename>Os-workaround.diff</filename>
            <type>text/plain</type>
            <size>582</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuaCBiL1NvdXJjZS9XVEYvd3RmL0F0
b21pY3MuaAppbmRleCBjZTRkNWRhLi4xN2QyMWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9BdG9taWNzLmgKKysrIGIvU291cmNlL1dURi93dGYvQXRvbWljcy5oCkBAIC01OCw3ICs1OCw3
IEBAIHN0cnVjdCBBdG9taWMgewogCiAgICAgYm9vbCBjb21wYXJlRXhjaGFuZ2VXZWFrKFQgZXhw
ZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9v
cmRlcl9zZXFfY3N0KQogICAgIHsKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8
IChDT01QSUxFUihHQ0MpICYmIGRlZmluZWQgX19PUFRJTUlaRV9TSVpFX18pCiAgICAgICAgIC8v
IFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3NlcnRpb25zIGFib3V0IHRoZSBhcmd1bWVudCB0byBj
b21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBhbnl3YXksCiAgICAgICAgIC8vIFdpbmRvd3MgaXMg
WDg2IHNvIHNlcV9jc3QgaXMgY2hlYXAuCiAgICAgICAgIG9yZGVyID0gc3RkOjptZW1vcnlfb3Jk
ZXJfc2VxX2NzdDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>282542</attachid>
            <date>2016-07-01 05:46:39 -0700</date>
            <delta_ts>2016-07-01 05:46:39 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>test.cpp</filename>
            <type>text/x-c++src</type>
            <size>848</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">LyoKICogZysrIC1PcyAtc3RkPWMrKzExIC1jIHRlc3QuY3BwCiAqLwojaW5jbHVkZSA8YXRvbWlj
PgoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kc3RydWN0IEF0b21pYyB7CiAgICBib29sIGNvbXBhcmVF
eGNoYW5nZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRl
ciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICB7CiAgICAgICAgVCBleHBlY3RlZE9y
QWN0dWFsID0gZXhwZWN0ZWQ7CiAgICAgICAgcmV0dXJuIHZhbHVlLmNvbXBhcmVfZXhjaGFuZ2Vf
d2VhayhleHBlY3RlZE9yQWN0dWFsLCBkZXNpcmVkLCBvcmRlcik7CiAgICB9CiAgICBzdGQ6OmF0
b21pYzxUPiB2YWx1ZTsKfTsKCgp2b2lkIGZvbygpCnsKICAgIEF0b21pYzx2b2lkICo+IHNvbWVB
dG9taWM7CiAgICBzb21lQXRvbWljLmNvbXBhcmVFeGNoYW5nZVdlYWsobnVsbHB0ciwgbnVsbHB0
cik7CiAgICBzb21lQXRvbWljLmNvbXBhcmVFeGNoYW5nZVdlYWsobnVsbHB0ciwgbnVsbHB0cik7
CiAgICBzb21lQXRvbWljLmNvbXBhcmVFeGNoYW5nZVdlYWsobnVsbHB0ciwgbnVsbHB0cik7Cn0K
CnZvaWQgYmFyKCkKewogICAgQXRvbWljPHVpbnRwdHJfdD4gc29tZUF0b21pYzsKICAgIGlmIChz
b21lQXRvbWljLmNvbXBhcmVFeGNoYW5nZVdlYWsoMCwgMSwgc3RkOjptZW1vcnlfb3JkZXJfYWNx
dWlyZSkpCiAgICAgICAgcmV0dXJuOwp9Cgp2b2lkIG1vbygpCnsKICAgIEF0b21pYzx1aW50cHRy
X3Q+IHNvbWVBdG9taWM7CiAgICBpZiAoc29tZUF0b21pYy5jb21wYXJlRXhjaGFuZ2VXZWFrKDEs
IDAsIHN0ZDo6bWVtb3J5X29yZGVyX3JlbGVhc2UpKQogICAgICAgIHJldHVybjsKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283545</attachid>
            <date>2016-07-13 10:46:56 -0700</date>
            <delta_ts>2016-07-14 02:57:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155371-20160713124611.patch</filename>
            <type>text/plain</type>
            <size>3150</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY3NjU3ZmFkNGYyMzQ5YjM3ZWVlYjU4
ODdkMjZkNGM4Mzc2MGUwZDEuLjU3MGJlYzYyN2Q2MGJmNmUwNGZlZjY4YzEwOGNiZWZiZGJiNTVk
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDctMTMgIEd1aWxsYXVtZSBFbW9udCAgPGd1
aWplbW9udEBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCB3b3JrYXJvdW5kIGZvciBnY2MgPDUg
d2hlbiBjb21waWxpbmcgaW4gLU9zCisKKyAgICAgICAgYnVpbGQgZmFpbHMgd2l0aCBtZW1vcnkg
bW9kZWwgY2Fubm90IGJlIHN0cm9uZ2VyIHRoYW4gc3VjY2VzcyBtZW1vcnkgbW9kZWwgZm9yIOKA
mF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2XigJkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0F0b21pY3MuaDoKKyAgICAgICAgKFdURjo6QXRv
bWljOjpjb21wYXJlRXhjaGFuZ2VXZWFrKToKKyAgICAgICAgKFdURjo6QXRvbWljOjpjb21wYXJl
RXhjaGFuZ2VTdHJvbmcpOgorICAgICAgICAoV1RGOjpBdG9taWM6OmV4Y2hhbmdlQW5kQWRkKToK
KyAgICAgICAgKFdURjo6QXRvbWljOjpleGNoYW5nZSk6CisKIDIwMTYtMDctMTMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktp
dEd0aysgdXNlcyB0b28gbWFueSBmaWxlIGRlc2NyaXB0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9BdG9taWNzLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgKaW5kZXggY2U0ZDVk
YWE1ZTRkMzcyNmE5ZTlhNTcwYzJiNmIxOTQ1MWE4N2ExNC4uM2NkOWM5YWNiMGUwODAzYzUzZGQ1
Mjg1NjA5MDIyMzg0NWQzZWFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXRvbWljcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuaApAQCAtMzcsNiArMzcsMTcgQEAgZXh0ZXJu
ICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
ICNlbmRpZgogCisjaWYgT1MoV0lORE9XUykKKy8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3Nl
cnRpb25zIGFib3V0IHRoZSBhcmd1bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBh
bnl3YXksCisvLyBXaW5kb3dzIGlzIFg4NiBzbyBzZXFfY3N0IGlzIGNoZWFwLgorI2RlZmluZSBB
VE9NSUNTX0FMV0FZU19VU0VfU0VRX0NTVCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVSKEdDQykg
JiYgIUdDQ19WRVJTSU9OX0FUX0xFQVNUKDUsMCwwKSAmJiBkZWZpbmVkIF9fT1BUSU1JWkVfU0la
RV9fCisjd2FybmluZyAiR2NjIDwgNSBoYXMgaXNzdWVzIHdpdGggc3RkOjphdG9taWMgaW4gLU9z
LiBSZXNvcnRpbmcgdG8gYSB3b3JrYXJvdW5kIHRoYXQgd2lsbCBtYWtlIHRoaW5ncyBzbG93IG9u
IHNvbWUgcGxhdGZvcm1zLiIKKyNkZWZpbmUgQVRPTUlDU19BTFdBWVNfVVNFX1NFUV9DU1QgMQor
I2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiAvLyBBdG9taWMgd3JhcHMgYXJvdW5kIHN0ZDo6
YXRvbWljIHdpdGggdGhlIHNvbGUgcHVycG9zZSBvZiBtYWtpbmcgdGhlIGNvbXBhcmVfZXhjaGFu
Z2UKQEAgLTU4LDkgKzY5LDcgQEAgc3RydWN0IEF0b21pYyB7CiAKICAgICBib29sIGNvbXBhcmVF
eGNoYW5nZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRl
ciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewotI2lmIE9TKFdJTkRPV1MpCi0g
ICAgICAgIC8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3NlcnRpb25zIGFib3V0IHRoZSBhcmd1
bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBhbnl3YXksCi0gICAgICAgIC8vIFdp
bmRvd3MgaXMgWDg2IHNvIHNlcV9jc3QgaXMgY2hlYXAuCisjaWYgQVRPTUlDU19BTFdBWVNfVVNF
X1NFUV9DU1QKICAgICAgICAgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0OwogI2Vu
ZGlmCiAgICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwpAQCAtNjksOCArNzgs
NyBAQCBzdHJ1Y3QgQXRvbWljIHsKIAogICAgIGJvb2wgY29tcGFyZUV4Y2hhbmdlU3Ryb25nKFQg
ZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9y
eV9vcmRlcl9zZXFfY3N0KQogICAgIHsKLSNpZiBPUyhXSU5ET1dTKQotICAgICAgICAvLyBTZWUg
YWJvdmUuCisjaWYgQVRPTUlDU19BTFdBWVNfVVNFX1NFUV9DU1QKICAgICAgICAgb3JkZXIgPSBz
dGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0OwogI2VuZGlmCiAgICAgICAgIFQgZXhwZWN0ZWRPckFj
dHVhbCA9IGV4cGVjdGVkOwpAQCAtODAsOCArODgsNyBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPgogICAgIFQgZXhjaGFuZ2VBbmRBZGQoVSBhZGRlbmQsIHN0ZDo6
bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkKICAgICB7Ci0j
aWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gU2VlIGFib3ZlLgorI2lmIEFUT01JQ1NfQUxXQVlT
X1VTRV9TRVFfQ1NUCiAgICAgICAgIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdDsK
ICNlbmRpZgogICAgICAgICByZXR1cm4gdmFsdWUuZmV0Y2hfYWRkKGFkZGVuZCwgb3JkZXIpOwpA
QCAtODksOCArOTYsNyBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICAKICAgICBUIGV4Y2hhbmdlKFQg
bmV3VmFsdWUsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2Vx
X2NzdCkKICAgICB7Ci0jaWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gU2VlIGFib3ZlLgorI2lm
IEFUT01JQ1NfQUxXQVlTX1VTRV9TRVFfQ1NUCiAgICAgICAgIG9yZGVyID0gc3RkOjptZW1vcnlf
b3JkZXJfc2VxX2NzdDsKICNlbmRpZgogICAgICAgICByZXR1cm4gdmFsdWUuZXhjaGFuZ2UobmV3
VmFsdWUsIG9yZGVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283630</attachid>
            <date>2016-07-14 02:58:05 -0700</date>
            <delta_ts>2016-07-14 03:19:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155371-20160714045718.patch</filename>
            <type>text/plain</type>
            <size>3159</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY3NjU3ZmFkNGYyMzQ5YjM3ZWVlYjU4
ODdkMjZkNGM4Mzc2MGUwZDEuLjU3MGJlYzYyN2Q2MGJmNmUwNGZlZjY4YzEwOGNiZWZiZGJiNTVk
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDctMTMgIEd1aWxsYXVtZSBFbW9udCAgPGd1
aWplbW9udEBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCB3b3JrYXJvdW5kIGZvciBnY2MgPDUg
d2hlbiBjb21waWxpbmcgaW4gLU9zCisKKyAgICAgICAgYnVpbGQgZmFpbHMgd2l0aCBtZW1vcnkg
bW9kZWwgY2Fubm90IGJlIHN0cm9uZ2VyIHRoYW4gc3VjY2VzcyBtZW1vcnkgbW9kZWwgZm9yIOKA
mF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2XigJkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0F0b21pY3MuaDoKKyAgICAgICAgKFdURjo6QXRv
bWljOjpjb21wYXJlRXhjaGFuZ2VXZWFrKToKKyAgICAgICAgKFdURjo6QXRvbWljOjpjb21wYXJl
RXhjaGFuZ2VTdHJvbmcpOgorICAgICAgICAoV1RGOjpBdG9taWM6OmV4Y2hhbmdlQW5kQWRkKToK
KyAgICAgICAgKFdURjo6QXRvbWljOjpleGNoYW5nZSk6CisKIDIwMTYtMDctMTMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktp
dEd0aysgdXNlcyB0b28gbWFueSBmaWxlIGRlc2NyaXB0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9BdG9taWNzLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgKaW5kZXggY2U0ZDVk
YWE1ZTRkMzcyNmE5ZTlhNTcwYzJiNmIxOTQ1MWE4N2ExNC4uZDdlNWI1M2I5ZmMzYjMzY2Y4ZGE4
ZmIyZmUxYTQ3ODgxYWU0NjI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXRvbWljcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuaApAQCAtMzcsNiArMzcsMjAgQEAgZXh0ZXJu
ICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
ICNlbmRpZgogCisjaWYgT1MoV0lORE9XUykKKy8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3Nl
cnRpb25zIGFib3V0IHRoZSBhcmd1bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBh
bnl3YXksCisvLyBXaW5kb3dzIGlzIFg4NiBzbyBzZXFfY3N0IGlzIGNoZWFwLgorI2RlZmluZSBB
VE9NSUNTX0FMV0FZU19VU0VfU0VRX0NTVCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVSKEdDQykg
JiYgZGVmaW5lZCBfX09QVElNSVpFX1NJWkVfXworI2lmICFHQ0NfVkVSU0lPTl9BVF9MRUFTVCg1
LDAsMCkKKy8qIEdjYyA8IDUgaGFzIGlzc3VlcyB3aXRoIHN0ZDo6YXRvbWljIGluIC1Pcy4gUmVz
b3J0aW5nIHRvIGEgd29ya2Fyb3VuZCB0aGF0CisgKiB3aWxsIG1ha2UgdGhpbmdzIHNsb3cgb24g
c29tZSBwbGF0Zm9ybXMuICovCisjZGVmaW5lIEFUT01JQ1NfQUxXQVlTX1VTRV9TRVFfQ1NUIDEK
KyNlbmRpZgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiAvLyBBdG9taWMgd3JhcHMgYXJv
dW5kIHN0ZDo6YXRvbWljIHdpdGggdGhlIHNvbGUgcHVycG9zZSBvZiBtYWtpbmcgdGhlIGNvbXBh
cmVfZXhjaGFuZ2UKQEAgLTU4LDkgKzcyLDcgQEAgc3RydWN0IEF0b21pYyB7CiAKICAgICBib29s
IGNvbXBhcmVFeGNoYW5nZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9v
cmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgICAgIC8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3NlcnRpb25zIGFib3V0
IHRoZSBhcmd1bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBhbnl3YXksCi0gICAg
ICAgIC8vIFdpbmRvd3MgaXMgWDg2IHNvIHNlcV9jc3QgaXMgY2hlYXAuCisjaWYgQVRPTUlDU19B
TFdBWVNfVVNFX1NFUV9DU1QKICAgICAgICAgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFf
Y3N0OwogI2VuZGlmCiAgICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwpAQCAt
NjksOCArODEsNyBAQCBzdHJ1Y3QgQXRvbWljIHsKIAogICAgIGJvb2wgY29tcGFyZUV4Y2hhbmdl
U3Ryb25nKFQgZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBz
dGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0KQogICAgIHsKLSNpZiBPUyhXSU5ET1dTKQotICAgICAg
ICAvLyBTZWUgYWJvdmUuCisjaWYgQVRPTUlDU19BTFdBWVNfVVNFX1NFUV9DU1QKICAgICAgICAg
b3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0OwogI2VuZGlmCiAgICAgICAgIFQgZXhw
ZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwpAQCAtODAsOCArOTEsNyBAQCBzdHJ1Y3QgQXRvbWlj
IHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgogICAgIFQgZXhjaGFuZ2VBbmRBZGQoVSBhZGRl
bmQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkK
ICAgICB7Ci0jaWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gU2VlIGFib3ZlLgorI2lmIEFUT01J
Q1NfQUxXQVlTX1VTRV9TRVFfQ1NUCiAgICAgICAgIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJf
c2VxX2NzdDsKICNlbmRpZgogICAgICAgICByZXR1cm4gdmFsdWUuZmV0Y2hfYWRkKGFkZGVuZCwg
b3JkZXIpOwpAQCAtODksOCArOTksNyBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICAKICAgICBUIGV4
Y2hhbmdlKFQgbmV3VmFsdWUsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlf
b3JkZXJfc2VxX2NzdCkKICAgICB7Ci0jaWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gU2VlIGFi
b3ZlLgorI2lmIEFUT01JQ1NfQUxXQVlTX1VTRV9TRVFfQ1NUCiAgICAgICAgIG9yZGVyID0gc3Rk
OjptZW1vcnlfb3JkZXJfc2VxX2NzdDsKICNlbmRpZgogICAgICAgICByZXR1cm4gdmFsdWUuZXhj
aGFuZ2UobmV3VmFsdWUsIG9yZGVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283631</attachid>
            <date>2016-07-14 03:19:45 -0700</date>
            <delta_ts>2016-09-13 22:13:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155371-20160714051859.patch</filename>
            <type>text/plain</type>
            <size>3195</size>
            <attacher name="Guillaume Emont">guijemont</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzMTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY3NjU3ZmFkNGYyMzQ5YjM3ZWVlYjU4
ODdkMjZkNGM4Mzc2MGUwZDEuLjU3MGJlYzYyN2Q2MGJmNmUwNGZlZjY4YzEwOGNiZWZiZGJiNTVk
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTYtMDctMTMgIEd1aWxsYXVtZSBFbW9udCAgPGd1
aWplbW9udEBpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCB3b3JrYXJvdW5kIGZvciBnY2MgPDUg
d2hlbiBjb21waWxpbmcgaW4gLU9zCisKKyAgICAgICAgYnVpbGQgZmFpbHMgd2l0aCBtZW1vcnkg
bW9kZWwgY2Fubm90IGJlIHN0cm9uZ2VyIHRoYW4gc3VjY2VzcyBtZW1vcnkgbW9kZWwgZm9yIOKA
mF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2XigJkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTM3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0F0b21pY3MuaDoKKyAgICAgICAgKFdURjo6QXRv
bWljOjpjb21wYXJlRXhjaGFuZ2VXZWFrKToKKyAgICAgICAgKFdURjo6QXRvbWljOjpjb21wYXJl
RXhjaGFuZ2VTdHJvbmcpOgorICAgICAgICAoV1RGOjpBdG9taWM6OmV4Y2hhbmdlQW5kQWRkKToK
KyAgICAgICAgKFdURjo6QXRvbWljOjpleGNoYW5nZSk6CisKIDIwMTYtMDctMTMgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktp
dEd0aysgdXNlcyB0b28gbWFueSBmaWxlIGRlc2NyaXB0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9BdG9taWNzLmggYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgKaW5kZXggY2U0ZDVk
YWE1ZTRkMzcyNmE5ZTlhNTcwYzJiNmIxOTQ1MWE4N2ExNC4uNWUzYzE4MTE2OTFkM2U0NTA2NDA3
YWRlZGMwNGFjZmY4M2U2Zjc5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQXRvbWljcy5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0F0b21pY3MuaApAQCAtMzcsNiArMzcsMjAgQEAgZXh0ZXJu
ICJDIiB2b2lkIF9SZWFkV3JpdGVCYXJyaWVyKHZvaWQpOwogI2luY2x1ZGUgPHdpbmRvd3MuaD4K
ICNlbmRpZgogCisjaWYgT1MoV0lORE9XUykKKy8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3Nl
cnRpb25zIGFib3V0IHRoZSBhcmd1bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBh
bnl3YXksCisvLyBXaW5kb3dzIGlzIFg4NiBzbyBzZXFfY3N0IGlzIGNoZWFwLgorI2RlZmluZSBB
VE9NSUNTX0FMV0FZU19VU0VfU0VRX0NTVCAxCisjZW5kaWYKKworI2lmIENPTVBJTEVSKEdDQykg
JiYgZGVmaW5lZCBfX09QVElNSVpFX1NJWkVfXworI2lmICFHQ0NfVkVSU0lPTl9BVF9MRUFTVCg1
LDAsMCkKKy8qIEdjYyA8IDUgaGFzIGlzc3VlcyB3aXRoIHN0ZDo6YXRvbWljIGluIC1Pcy4gUmVz
b3J0aW5nIHRvIGEgd29ya2Fyb3VuZCB0aGF0CisgKiB3aWxsIG1ha2UgdGhpbmdzIHNsb3cgb24g
c29tZSBwbGF0Zm9ybXMuICovCisjZGVmaW5lIEFUT01JQ1NfQUxXQVlTX1VTRV9TRVFfQ1NUIDEK
KyNlbmRpZgorI2VuZGlmCisKIG5hbWVzcGFjZSBXVEYgewogCiAvLyBBdG9taWMgd3JhcHMgYXJv
dW5kIHN0ZDo6YXRvbWljIHdpdGggdGhlIHNvbGUgcHVycG9zZSBvZiBtYWtpbmcgdGhlIGNvbXBh
cmVfZXhjaGFuZ2UKQEAgLTU4LDkgKzcyLDcgQEAgc3RydWN0IEF0b21pYyB7CiAKICAgICBib29s
IGNvbXBhcmVFeGNoYW5nZVdlYWsoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9v
cmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgICAgIC8vIFdpbmRvd3MgbWFrZXMgc3RyYW5nZSBhc3NlcnRpb25zIGFib3V0
IHRoZSBhcmd1bWVudCB0byBjb21wYXJlX2V4Y2hhbmdlX3dlYWssIGFuZCBhbnl3YXksCi0gICAg
ICAgIC8vIFdpbmRvd3MgaXMgWDg2IHNvIHNlcV9jc3QgaXMgY2hlYXAuCisjaWYgZGVmaW5lZChB
VE9NSUNTX0FMV0FZU19VU0VfU0VRX0NTVCkKICAgICAgICAgb3JkZXIgPSBzdGQ6Om1lbW9yeV9v
cmRlcl9zZXFfY3N0OwogI2VuZGlmCiAgICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVj
dGVkOwpAQCAtNjksOCArODEsNyBAQCBzdHJ1Y3QgQXRvbWljIHsKIAogICAgIGJvb2wgY29tcGFy
ZUV4Y2hhbmdlU3Ryb25nKFQgZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIg
b3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0KQogICAgIHsKLSNpZiBPUyhXSU5ET1dT
KQotICAgICAgICAvLyBTZWUgYWJvdmUuCisjaWYgZGVmaW5lZChBVE9NSUNTX0FMV0FZU19VU0Vf
U0VRX0NTVCkKICAgICAgICAgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0OwogI2Vu
ZGlmCiAgICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwpAQCAtODAsOCArOTEs
NyBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgogICAgIFQgZXhj
aGFuZ2VBbmRBZGQoVSBhZGRlbmQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1v
cnlfb3JkZXJfc2VxX2NzdCkKICAgICB7Ci0jaWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gU2Vl
IGFib3ZlLgorI2lmIGRlZmluZWQoQVRPTUlDU19BTFdBWVNfVVNFX1NFUV9DU1QpCiAgICAgICAg
IG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdDsKICNlbmRpZgogICAgICAgICByZXR1
cm4gdmFsdWUuZmV0Y2hfYWRkKGFkZGVuZCwgb3JkZXIpOwpAQCAtODksOCArOTksNyBAQCBzdHJ1
Y3QgQXRvbWljIHsKICAgICAKICAgICBUIGV4Y2hhbmdlKFQgbmV3VmFsdWUsIHN0ZDo6bWVtb3J5
X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkKICAgICB7Ci0jaWYgT1Mo
V0lORE9XUykKLSAgICAgICAgLy8gU2VlIGFib3ZlLgorI2lmIGRlZmluZWQoQVRPTUlDU19BTFdB
WVNfVVNFX1NFUV9DU1QpCiAgICAgICAgIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2Nz
dDsKICNlbmRpZgogICAgICAgICByZXR1cm4gdmFsdWUuZXhjaGFuZ2UobmV3VmFsdWUsIG9yZGVy
KTsK
</data>
<flag name="review"
          id="307293"
          type_id="1"
          status="-"
          setter="mcatanzaro"
    />
    <flag name="commit-queue"
          id="307294"
          type_id="3"
          status="-"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>288772</attachid>
            <date>2016-09-13 22:13:59 -0700</date>
            <delta_ts>2016-09-14 10:14:04 -0700</delta_ts>
            <desc>patch which inlines all atomics instead</desc>
            <filename>0001-Inline-all-atomics.patch</filename>
            <type>text/plain</type>
            <size>4638</size>
            <attacher name="JF Bastien">jfbastien</attacher>
            
              <data encoding="base64">RnJvbSA1NDA0MTliN2NkNTYwOTUyMDYzOGFmNGU5ZjE4YWQwYTgwYTFjYWY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKRiBCYXN0aWVuIDxqZmJhc3RpZW5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDEzIFNlcCAyMDE2IDIyOjA5OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gSW5saW5l
ICphbGwqIGF0b21pY3MKCi0tLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgIHwgNDIgKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV1RGL3d0Zi9BdG9t
aWNzLmggfCAxMiArKysrKystLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygr
KSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlNDczMzYuLjRiNzAzOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDUgQEAKKzIwMTYtMDktMTMgIEpGIEJhc3RpZW4gIDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIEFsd2FzeXMgaW5saW5lIGF0b21pYyBvcGVyYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUzNzEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXhlcyAiYnVpbGQgZmFpbHMgd2l0aCBt
ZW1vcnkgbW9kZWwgY2Fubm90IGJlIHN0cm9uZ2VyIHRoYW4KKyAgICAgICAgc3VjY2VzcyBtZW1v
cnkgbW9kZWwgZm9yIOKAmF9fYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2XigJkiLgorCisgICAgICAg
IFByZS01IHJldmlzaW9ucyBvZiBHQ0MgYXQgT3Mgb25seSBnZW5lcmF0ZWQgYW4gZXJyb3IgbWVz
c2FnZQorICAgICAgICByZWxhdGVkIHRvIGludmFsaWQgZmFpbHVyZSBtZW1vcnkgb3JkZXJpbmcu
IFRoZSByZWFzb24gaXMgdGhhdAorICAgICAgICBsaWJzdGRjKysgdHJpZXMgdG8gYmUgY2xldmVy
IGFib3V0IGVuZm9yY2luZyB0aGUgQysrIHN0YW5kYXJkJ3MKKyAgICAgICAgY2xhdXNlIFthdG9t
aWNzLnR5cGVzLm9wZXJhdGlvbnMucmVxXSDCtjIxIHdoaWNoIHN0YXRlczoKKworICAgICAgICAg
ICAgUmVxdWlyZXM6IFRoZSBmYWlsdXJlIGFyZ3VtZW50IHNoYWxsIG5vdCBiZQorICAgICAgICAg
ICAgYG1lbW9yeV9vcmRlcl9yZWxlYXNlYCBub3IgYG1lbW9yeV9vcmRlcl9hY3FfcmVsYC4gVGhl
IGZhaWx1cmUKKyAgICAgICAgICAgIGFyZ3VtZW50IHNoYWxsIGJlIG5vIHN0cm9uZ2VyIHRoYW4g
dGhlIHN1Y2Nlc3MgYXJndW1lbnQuCisKKyAgICAgICAgSXQgZmFpbHMgYXQgZG9pbmcgdGhpcyBi
ZWNhdXNlIGl0cyBpbmxpbmluZyBoZXVyaXN0aWNzIGFyZQorICAgICAgICBtb2RpZmllZCBieSBP
cywgYW5kIHRoZXkncmUgbm90IHF1aXRlIGFzIGR1bWIgYXMgTzAgYnV0IG5vdCBzbWFydAorICAg
ICAgICBlbm91Z2ggdG8gZ2V0IHRvIHRoZSBnb29kIGNvZGUgYXQgTzEuIEFkZGluZyBBTFdBWVNf
SU5MSU5FIGZpeGVzCisgICAgICAgIHRoZSBzaWxsaW5lc3MgYXQgT3MsIGxlYXZlcyBPMSBncmVh
dCwgYW5kIG1ha2VzIE8wIHNsaWdodGx5IGxlc3MKKyAgICAgICAgYmFkIGJ1dCBzdGlsbCBwcmV0
dHkgYmFkLgorCisgICAgICAgIFRoZSBvdGhlciBnb29kIG5ld3MgaXMgdGhhdCBJJ20gZ29pbmcg
dG8gZ2V0IHRoaXMgcGFydGljdWxhcgorICAgICAgICBwcm9ibGVtIGZpeGVkIGluIHRoZSB2ZXJz
aW9uIG9mIEMrKyB3aGljaCB3aWxsIGNvbWUgYWZ0ZXIgQysrMTc6CisKKyAgICAgICAgaHR0cHM6
Ly9naXRodWIuY29tL2pmYmFzdGllbi9wYXBlcnMvYmxvYi9tYXN0ZXIvc291cmNlL1AwNDE4cjEu
YnMKKworICAgICAgICBXaGlsZSB3ZSdyZSBhdCBpdCB3ZSBzaG91bGQgYWx3YXlzIGlubGluZSBh
bGwgb2YgdGhlc2Ugd3JhcHBlZAorICAgICAgICBmdW5jdGlvbnMgYmVjYXVzZSB0aGUgZ2VuZXJh
dGVkIGNvZGUgaXMgaG9ycmVuZG91cyBpZiB0aGUgbWVtb3J5CisgICAgICAgIG9yZGVyIGlzbid0
IGtub3duIGF0IGNvbXBpbGUgdGltZS4KKworICAgICAgICAqIHd0Zi9BdG9taWNzLmg6CisgICAg
ICAgIChXVEY6OkF0b21pYzo6bG9hZCk6CisgICAgICAgIChXVEY6OkF0b21pYzo6c3RvcmUpOgor
ICAgICAgICAoV1RGOjpBdG9taWM6OmNvbXBhcmVFeGNoYW5nZVdlYWspOgorICAgICAgICAoV1RG
OjpBdG9taWM6OmNvbXBhcmVFeGNoYW5nZVN0cm9uZyk6CisgICAgICAgIChXVEY6OkF0b21pYzo6
ZXhjaGFuZ2VBbmRBZGQpOgorICAgICAgICAoV1RGOjpBdG9taWM6OmV4Y2hhbmdlKToKKwogMjAx
Ni0wOS0xMyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBQ
cm9taXNlcyBhcmVuJ3QgcmVzb2x2ZWQgcHJvcGVybHkgd2hlbiBtYWtpbmcgYSBPYmpDIEFQSSBj
YWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQXRvbWljcy5oIGIvU291cmNlL1dU
Ri93dGYvQXRvbWljcy5oCmluZGV4IGNlNGQ1ZGEuLjdmNzZiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL0F0b21pY3MuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9BdG9taWNzLmgKQEAgLTUy
LDExICs1MiwxMSBAQCBzdHJ1Y3QgQXRvbWljIHsKICAgICAvLyB3aGF0IHlvdSBhcmUgZG9pbmcg
YW5kIGhhdmUgdGhvdWdodCBhYm91dCBpdCB2ZXJ5IGhhcmQuIFRoZSBjb3N0IG9mIHNlcV9jc3QK
ICAgICAvLyBpcyB1c3VhbGx5IG5vdCBoaWdoIGVub3VnaCB0byBqdXN0aWZ5IHRoZSByaXNrLgog
Ci0gICAgVCBsb2FkKHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJf
c2VxX2NzdCkgY29uc3QgeyByZXR1cm4gdmFsdWUubG9hZChvcmRlcik7IH0KKyAgICBBTFdBWVNf
SU5MSU5FIFQgbG9hZChzdGQ6Om1lbW9yeV9vcmRlciBvcmRlciA9IHN0ZDo6bWVtb3J5X29yZGVy
X3NlcV9jc3QpIGNvbnN0IHsgcmV0dXJuIHZhbHVlLmxvYWQob3JkZXIpOyB9CiAKLSAgICB2b2lk
IHN0b3JlKFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9v
cmRlcl9zZXFfY3N0KSB7IHZhbHVlLnN0b3JlKGRlc2lyZWQsIG9yZGVyKTsgfQorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzdG9yZShUIGRlc2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0g
c3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkgeyB2YWx1ZS5zdG9yZShkZXNpcmVkLCBvcmRlcik7
IH0KIAotICAgIGJvb2wgY29tcGFyZUV4Y2hhbmdlV2VhayhUIGV4cGVjdGVkLCBUIGRlc2lyZWQs
IHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkKKyAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgY29tcGFyZUV4Y2hhbmdlV2VhayhUIGV4cGVjdGVkLCBUIGRl
c2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2Nz
dCkKICAgICB7CiAjaWYgT1MoV0lORE9XUykKICAgICAgICAgLy8gV2luZG93cyBtYWtlcyBzdHJh
bmdlIGFzc2VydGlvbnMgYWJvdXQgdGhlIGFyZ3VtZW50IHRvIGNvbXBhcmVfZXhjaGFuZ2Vfd2Vh
aywgYW5kIGFueXdheSwKQEAgLTY3LDcgKzY3LDcgQEAgc3RydWN0IEF0b21pYyB7CiAgICAgICAg
IHJldHVybiB2YWx1ZS5jb21wYXJlX2V4Y2hhbmdlX3dlYWsoZXhwZWN0ZWRPckFjdHVhbCwgZGVz
aXJlZCwgb3JkZXIpOwogICAgIH0KIAotICAgIGJvb2wgY29tcGFyZUV4Y2hhbmdlU3Ryb25nKFQg
ZXhwZWN0ZWQsIFQgZGVzaXJlZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9y
eV9vcmRlcl9zZXFfY3N0KQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBjb21wYXJlRXhjaGFuZ2VT
dHJvbmcoVCBleHBlY3RlZCwgVCBkZXNpcmVkLCBzdGQ6Om1lbW9yeV9vcmRlciBvcmRlciA9IHN0
ZDo6bWVtb3J5X29yZGVyX3NlcV9jc3QpCiAgICAgewogI2lmIE9TKFdJTkRPV1MpCiAgICAgICAg
IC8vIFNlZSBhYm92ZS4KQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IEF0b21pYyB7CiAgICAgfQog
ICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci0gICAgVCBleGNoYW5nZUFuZEFkZChVIGFk
ZGVuZCwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0
KQorICAgIEFMV0FZU19JTkxJTkUgVCBleGNoYW5nZUFuZEFkZChVIGFkZGVuZCwgc3RkOjptZW1v
cnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1lbW9yeV9vcmRlcl9zZXFfY3N0KQogICAgIHsKICNpZiBP
UyhXSU5ET1dTKQogICAgICAgICAvLyBTZWUgYWJvdmUuCkBAIC04Nyw3ICs4Nyw3IEBAIHN0cnVj
dCBBdG9taWMgewogICAgICAgICByZXR1cm4gdmFsdWUuZmV0Y2hfYWRkKGFkZGVuZCwgb3JkZXIp
OwogICAgIH0KICAgICAKLSAgICBUIGV4Y2hhbmdlKFQgbmV3VmFsdWUsIHN0ZDo6bWVtb3J5X29y
ZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkKKyAgICBBTFdBWVNfSU5MSU5F
IFQgZXhjaGFuZ2UoVCBuZXdWYWx1ZSwgc3RkOjptZW1vcnlfb3JkZXIgb3JkZXIgPSBzdGQ6Om1l
bW9yeV9vcmRlcl9zZXFfY3N0KQogICAgIHsKICNpZiBPUyhXSU5ET1dTKQogICAgICAgICAvLyBT
ZWUgYWJvdmUuCi0tIAoyLjkuMwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>290451</attachid>
            <date>2016-10-01 17:18:58 -0700</date>
            <delta_ts>2016-10-01 17:18:58 -0700</delta_ts>
            <desc>test case for gcc 4.9 -Os of Atomic&lt;&gt;::compareExchange{Weak,Strong}</desc>
            <filename>AtomicOsTest.cpp</filename>
            <type>application/octet-stream</type>
            <size>1175</size>
            <attacher name="Jay Freeman (saurik)">saurik</attacher>
            
              <data encoding="base64">I2luY2x1ZGUgPGF0b21pYz4KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBBdG9taWMgewog
ICAgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIGJvb2wgY29tcGFyZUV4Y2hhbmdlV2Vh
ayhUIGV4cGVjdGVkLCBUIGRlc2lyZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjpt
ZW1vcnlfb3JkZXJfc2VxX2NzdCkgewogICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVj
dGVkOwogICAgICAgIHJldHVybiB2YWx1ZS5jb21wYXJlX2V4Y2hhbmdlX3dlYWsoZXhwZWN0ZWRP
ckFjdHVhbCwgZGVzaXJlZCwgb3JkZXIpOwogICAgfQoKICAgIF9fYXR0cmlidXRlX18oKGFsd2F5
c19pbmxpbmUpKSBib29sIGNvbXBhcmVFeGNoYW5nZVN0cm9uZyhUIGV4cGVjdGVkLCBUIGRlc2ly
ZWQsIHN0ZDo6bWVtb3J5X29yZGVyIG9yZGVyID0gc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdCkg
ewogICAgICAgIFQgZXhwZWN0ZWRPckFjdHVhbCA9IGV4cGVjdGVkOwogICAgICAgIHJldHVybiB2
YWx1ZS5jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhleHBlY3RlZE9yQWN0dWFsLCBkZXNpcmVkLCBv
cmRlcik7CiAgICB9CgogICAgc3RkOjphdG9taWM8VD4gdmFsdWU7Cn07CgpBdG9taWM8dm9pZCAq
PiBwb2ludGVyOwoKdm9pZCBlbnN1cmVIYXNodGFibGUoKSB7CiAgICBwb2ludGVyLmNvbXBhcmVF
eGNoYW5nZVdlYWsobnVsbHB0ciwgbnVsbHB0cik7Cn0KCnZvaWQgYmF6KCkgewogICAgcG9pbnRl
ci5jb21wYXJlRXhjaGFuZ2VTdHJvbmcobnVsbHB0ciwgbnVsbHB0cik7Cn0KCnZvaWQgbG9ja0hh
c2h0YWJsZSgpIHsKICAgIEF0b21pYzx2b2lkICo+IHRoaW5nOwogICAgdGhpbmcuY29tcGFyZUV4
Y2hhbmdlV2VhayhudWxscHRyLCBudWxscHRyKTsKCiAgICBBdG9taWM8dW5zaWduZWQ+IHdvcmQ7
CiAgICB3b3JkLmNvbXBhcmVFeGNoYW5nZVdlYWsoMCwgMCwgc3RkOjptZW1vcnlfb3JkZXJfYWNx
dWlyZSk7CiAgICB3b3JkLmNvbXBhcmVFeGNoYW5nZVdlYWsoMCwgMCwgc3RkOjptZW1vcnlfb3Jk
ZXJfcmVsZWFzZSk7Cn0KCkF0b21pYzx1bnNpZ25lZD4gbnVtYmVyOwoKdm9pZCBmb28oKSB7CiAg
ICBudW1iZXIuY29tcGFyZUV4Y2hhbmdlV2VhaygwLCAwKTsKfQoKdm9pZCBiYXIoKSB7CiAgICBu
dW1iZXIuY29tcGFyZUV4Y2hhbmdlV2VhaygwLCAwKTsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>