<?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>29076</bug_id>
          
          <creation_ts>2009-09-09 01:05:24 -0700</creation_ts>
          <short_desc>Detect VFP at runtime in generic ARM port on Linux</short_desc>
          <delta_ts>2009-09-15 04:30:33 -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="Gabor Loki">loki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145679</commentid>
    <comment_count>0</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-09-09 01:05:24 -0700</bug_when>
    <thetext>We should detect that the VFP is present at runtime instead of at build
time for ARM architectures. On Linux there is a possible solution to do
this. The /proc/self/auxv contains some architecture specific flags.
One of them is responsible for the VFP. I am going to attach a patch
which solves this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145680</commentid>
    <comment_count>1</comment_count>
      <attachid>39252</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-09-09 01:08:16 -0700</bug_when>
    <thetext>Created attachment 39252
Detect VFP at runtime for arm-linux</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145684</commentid>
    <comment_count>2</comment_count>
      <attachid>39252</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-09-09 01:21:07 -0700</bug_when>
    <thetext>Comment on attachment 39252
Detect VFP at runtime for arm-linux

Does this code all need to live in the .h file?  It doesn&apos;t seem as though it needs to be inlined and given the fact that it&apos;s likely to become more #if&apos;d in the future it would seem better placed in a .cpp file.

&gt; diff --git a/JavaScriptCore/assembler/MacroAssemblerARM.h b/JavaScriptCore/assembler/MacroAssemblerARM.h
&gt; index 1a4290d..36cee92 100644
&gt; --- a/JavaScriptCore/assembler/MacroAssemblerARM.h
&gt; +++ b/JavaScriptCore/assembler/MacroAssemblerARM.h
&gt; @@ -35,10 +35,23 @@
&gt;  #include &quot;ARMAssembler.h&quot;
&gt;  #include &quot;AbstractMacroAssembler.h&quot;
&gt;  
&gt; +#if PLATFORM(LINUX)
&gt; +#include &lt;sys/types.h&gt;
&gt; +#include &lt;sys/stat.h&gt;
&gt; +#include &lt;fcntl.h&gt;
&gt; +#include &lt;unistd.h&gt;
&gt; +#include &lt;elf.h&gt;
&gt; +#endif
&gt; +
&gt;  namespace JSC {
&gt;  
&gt;  class MacroAssemblerARM : public AbstractMacroAssembler&lt;ARMAssembler&gt; {
&gt;  public:
&gt; +    MacroAssemblerARM()
&gt; +        : m_isVFPPresent(isVFPPresent())
&gt; +    {
&gt; +    }
&gt; +
&gt;      enum Condition {
&gt;          Equal = ARMAssembler::EQ,
&gt;          NotEqual = ARMAssembler::NE,
&gt; @@ -637,8 +650,7 @@ public:
&gt;      // Floating point operators
&gt;      bool supportsFloatingPoint() const
&gt;      {
&gt; -        // FIXME: should be a dynamic test: VFP, FPA, or nothing
&gt; -        return false;
&gt; +        return m_isVFPPresent;
&gt;      }
&gt;  
&gt;      bool supportsFloatingPointTruncate() const
&gt; @@ -793,6 +805,29 @@ private:
&gt;          ARMAssembler::relinkCall(call.dataLocation(), destination.executableAddress());
&gt;      }
&gt;  
&gt; +    bool isVFPPresent()
&gt; +    {
&gt; +#if PLATFORM(LINUX)
&gt; +        bool has_VFP = false;
&gt; +        int fd = open(&quot;/proc/self/auxv&quot;, O_RDONLY);
&gt; +        if (fd &gt; 0) {
&gt; +            Elf32_auxv_t aux;
&gt; +            while(read(fd, &amp;aux, sizeof(Elf32_auxv_t))) {
&gt; +                if (aux.a_type == AT_HWCAP) {
&gt; +                    has_VFP = (aux.a_un.a_val &amp; 64) != 0;
&gt; +                    break;
&gt; +                }
&gt; +            }
&gt; +            close(fd);
&gt; +        }
&gt; +        return has_VFP;


This will open /proc/self/auxv and perform this check again each time a MacroAssemblerARM instance is created.  Since the presence of VFP isn&apos;t something that will change during the lifetime of a process it seems that we should calculate this just the once.

&gt; +#else
&gt; +        /* Disable by default.  */
&gt; +        return false;
&gt; +#endif
&gt; +    }
&gt; +
&gt; +    const bool m_isVFPPresent;

It seems a bit odd to store this in a member variable given that the value cannot differ between instances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145685</commentid>
    <comment_count>3</comment_count>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-09-09 01:30:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
The MacroAssemblerX86 works in the same way.

Unfortunately, we cannot provide an ARM instruction specific solution to
detect VFP without getting illegal instruction error (as x86 cpuid). So
we have to use a kernel specific support for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145701</commentid>
    <comment_count>4</comment_count>
      <attachid>39261</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-09-09 04:08:13 -0700</bug_when>
    <thetext>Created attachment 39261
Detect VFP at runtime for arm-linux (v2)

I changed the patch according to bdash and gbarra suggestions.
- Add MacroAssemblerARM.cpp which contains the VFP check.
- Declare a static const variable to hold the results of isVFPPresent function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145895</commentid>
    <comment_count>5</comment_count>
      <attachid>39261</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-09-09 12:47:50 -0700</bug_when>
    <thetext>Comment on attachment 39261
Detect VFP at runtime for arm-linux (v2)

A few minor tweaks.

isVFPPresent() should be marked static since it is not used outside this file.

&gt; return (aux.a_un.a_val &amp; HWCAP_VFP);

We try to skip unnecessary parentheses, these should be removed.

The #if should probably also be !PLATFORM_ARM_ARCH(7)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146097</commentid>
    <comment_count>6</comment_count>
      <attachid>39326</attachid>
    <who name="Gabor Loki">loki</who>
    <bug_when>2009-09-10 00:18:24 -0700</bug_when>
    <thetext>Created attachment 39326
Detect VFP at runtime for arm-linux (v3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147270</commentid>
    <comment_count>7</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2009-09-15 04:30:33 -0700</bug_when>
    <thetext>Landed in @48389.  http://trac.webkit.org/changeset/48389</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39252</attachid>
            <date>2009-09-09 01:08:16 -0700</date>
            <delta_ts>2009-09-09 04:08:13 -0700</delta_ts>
            <desc>Detect VFP at runtime for arm-linux</desc>
            <filename>0001-Detect-VFP-at-runtime-in-generic-ARM-port-on-Linux.patch</filename>
            <type>text/plain</type>
            <size>2904</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBiMGQ2NGRiM2E5ZmRlZTNlMDUzYjIzMTZkMmRmZmZkNzhmZGJiNjk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogV2VkLCA5IFNlcCAyMDA5IDA5OjU1OjE2ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRGV0ZWN0
IFZGUCBhdCBydW50aW1lIGluIGdlbmVyaWMgQVJNIHBvcnQgb24gTGludXgKClNpZ25lZC1vZmYt
Ynk6IEdhYm9yIExva2kgPGxva2lAaW5mLnUtc3plZ2VkLmh1PgotLS0KIEphdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKwogSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggfCAgIDM5ICsrKysrKysrKysrKysr
KysrKysrKysrKy0KIDIgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKaW5kZXggMjAyMGI4Yy4uMDAwZDFlNyAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDA5LTA5LTA5ICBHYWJvciBMb2tpICA8bG9raUBpbmYudS1zemVnZWQuaHU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGV0ZWN0
IFZGUCBhdCBydW50aW1lIGluIGdlbmVyaWMgQVJNIHBvcnQgb24gTGludXguCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA3NgorCisgICAgICAgICog
YXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNOjpNYWNyb0Fzc2VtYmxlckFSTSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnQpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
ckFSTTo6aXNWRlBQcmVzZW50KToKKwogMjAwOS0wOS0wOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAppbmRleCAxYTQyOTBk
Li4zNmNlZTkyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaAorKysgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk0uaApAQCAtMzUsMTAgKzM1LDIzIEBACiAjaW5jbHVkZSAiQVJNQXNzZW1ibGVyLmgiCiAjaW5j
bHVkZSAiQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oIgogCisjaWYgUExBVEZPUk0oTElOVVgpCisj
aW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDxm
Y250bC5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPGVsZi5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBKU0MgewogCiBjbGFzcyBNYWNyb0Fzc2VtYmxlckFSTSA6IHB1YmxpYyBBYnN0
cmFjdE1hY3JvQXNzZW1ibGVyPEFSTUFzc2VtYmxlcj4gewogcHVibGljOgorICAgIE1hY3JvQXNz
ZW1ibGVyQVJNKCkKKyAgICAgICAgOiBtX2lzVkZQUHJlc2VudChpc1ZGUFByZXNlbnQoKSkKKyAg
ICB7CisgICAgfQorCiAgICAgZW51bSBDb25kaXRpb24gewogICAgICAgICBFcXVhbCA9IEFSTUFz
c2VtYmxlcjo6RVEsCiAgICAgICAgIE5vdEVxdWFsID0gQVJNQXNzZW1ibGVyOjpORSwKQEAgLTYz
Nyw4ICs2NTAsNyBAQCBwdWJsaWM6CiAgICAgLy8gRmxvYXRpbmcgcG9pbnQgb3BlcmF0b3JzCiAg
ICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgLy8g
RklYTUU6IHNob3VsZCBiZSBhIGR5bmFtaWMgdGVzdDogVkZQLCBGUEEsIG9yIG5vdGhpbmcKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gbV9pc1ZGUFByZXNlbnQ7CiAgICAg
fQogCiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0CkBAIC03
OTMsNiArODA1LDI5IEBAIHByaXZhdGU6CiAgICAgICAgIEFSTUFzc2VtYmxlcjo6cmVsaW5rQ2Fs
bChjYWxsLmRhdGFMb2NhdGlvbigpLCBkZXN0aW5hdGlvbi5leGVjdXRhYmxlQWRkcmVzcygpKTsK
ICAgICB9CiAKKyAgICBib29sIGlzVkZQUHJlc2VudCgpCisgICAgeworI2lmIFBMQVRGT1JNKExJ
TlVYKQorICAgICAgICBib29sIGhhc19WRlAgPSBmYWxzZTsKKyAgICAgICAgaW50IGZkID0gb3Bl
bigiL3Byb2Mvc2VsZi9hdXh2IiwgT19SRE9OTFkpOworICAgICAgICBpZiAoZmQgPiAwKSB7Cisg
ICAgICAgICAgICBFbGYzMl9hdXh2X3QgYXV4OworICAgICAgICAgICAgd2hpbGUocmVhZChmZCwg
JmF1eCwgc2l6ZW9mKEVsZjMyX2F1eHZfdCkpKSB7CisgICAgICAgICAgICAgICAgaWYgKGF1eC5h
X3R5cGUgPT0gQVRfSFdDQVApIHsKKyAgICAgICAgICAgICAgICAgICAgaGFzX1ZGUCA9IChhdXgu
YV91bi5hX3ZhbCAmIDY0KSAhPSAwOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGhhc19WRlA7CisjZWxzZQorICAgICAgICAvKiBEaXNhYmxl
IGJ5IGRlZmF1bHQuICAqLworICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKKyAgICB9CisK
KyAgICBjb25zdCBib29sIG1faXNWRlBQcmVzZW50OwogfTsKIAogfQotLSAKMS41LjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39261</attachid>
            <date>2009-09-09 04:08:13 -0700</date>
            <delta_ts>2009-09-10 00:18:24 -0700</delta_ts>
            <desc>Detect VFP at runtime for arm-linux (v2)</desc>
            <filename>0001-Detect-VFP-at-runtime-in-generic-ARM-port-on-Linux.patch</filename>
            <type>text/plain</type>
            <size>4917</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBiZmIxYTc1MDg0NGIwZmU3MTA3YzlkNjhmYzg0ZjM5NmE0YTU5MjI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogV2VkLCA5IFNlcCAyMDA5IDEyOjU2OjQ3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gRGV0ZWN0
IFZGUCBhdCBydW50aW1lIGluIGdlbmVyaWMgQVJNIHBvcnQgb24gTGludXgKClNpZ25lZC1vZmYt
Ynk6IEdhYm9yIExva2kgPGxva2lAaW5mLnUtc3plZ2VkLmh1PgotLS0KIEphdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrCiBKYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkgICAgICAgICAgICAgIHwgICAgMSArCiBKYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uY3BwIHwgICA2NyArKysrKysrKysrKysr
KysrKysrKysrKysKIEphdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5o
ICAgfCAgICA0ICstCiA0IGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDIgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyQVJNLmNwcAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyMDIwYjhjLi41YWQzNTA1IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDktMDkgIEdhYm9yIExva2kgIDxsb2tpQGluZi51
LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEZXRlY3QgVkZQIGF0IHJ1bnRpbWUgaW4gZ2VuZXJpYyBBUk0gcG9ydCBvbiBMaW51eCBw
bGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI5MDc2CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6CisgICAgICAgICogYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcDogQWRkZWQuCisgICAgICAgIChKU0M6OmlzVkZQUHJl
c2VudCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnQpOgorCiAyMDA5
LTA5LTA4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5wcmkgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKaW5kZXgg
MGYzZjkwOS4uZDQ0NTkwMSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUucHJpCisrKyBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQpAQCAtMTA0LDYg
KzEwNCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNw
cCBcCiAgICAgYnl0ZWNvZGUvSnVtcFRhYmxlLmNwcCBcCiAgICAgYXNzZW1ibGVyL0FSTUFzc2Vt
Ymxlci5jcHAgXAorICAgIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAgXAogICAgIGpp
dC9KSVQuY3BwIFwKICAgICBqaXQvSklUQ2FsbC5jcHAgXAogICAgIGppdC9KSVRBcml0aG1ldGlj
LmNwcCBcCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk0uY3BwIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTFhZTIwCi0tLSAvZGV2L251
bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IFVuaXZlcnNpdHkgb2Yg
U3plZ2VkCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShBU1NFTUJMRVIpICYmIFBMQVRGT1JNKEFSTSkKKworI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyQVJNLmgiCisKKyNpZiBQTEFURk9STShMSU5VWCkKKyNpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+Cisj
aW5jbHVkZSA8dW5pc3RkLmg+CisjaW5jbHVkZSA8ZWxmLmg+CisjaW5jbHVkZSA8YXNtL2h3Y2Fw
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIEpTQyB7CisKK2Jvb2wgaXNWRlBQcmVzZW50KCkKK3sK
KyNpZiBQTEFURk9STShMSU5VWCkKKyAgICBpbnQgZmQgPSBvcGVuKCIvcHJvYy9zZWxmL2F1eHYi
LCBPX1JET05MWSk7CisgICAgaWYgKGZkID4gMCkgeworICAgICAgICBFbGYzMl9hdXh2X3QgYXV4
OworICAgICAgICB3aGlsZSAocmVhZChmZCwgJmF1eCwgc2l6ZW9mKEVsZjMyX2F1eHZfdCkpKSB7
CisgICAgICAgICAgICBpZiAoYXV4LmFfdHlwZSA9PSBBVF9IV0NBUCkgeworICAgICAgICAgICAg
ICAgIGNsb3NlKGZkKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKGF1eC5hX3VuLmFfdmFsICYg
SFdDQVBfVkZQKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBjbG9zZShmZCk7
CisgICAgfQorI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2NvbnN0IGJvb2wgTWFj
cm9Bc3NlbWJsZXJBUk06OnNfaXNWRlBQcmVzZW50ID0gaXNWRlBQcmVzZW50KCk7CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpICYmIFBMQVRGT1JNKEFSTSkKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oIGIvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXggMWE0MjkwZC4uZTE1ZmI4
MiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKQEAg
LTYzNyw4ICs2MzcsNyBAQCBwdWJsaWM6CiAgICAgLy8gRmxvYXRpbmcgcG9pbnQgb3BlcmF0b3Jz
CiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnQoKSBjb25zdAogICAgIHsKLSAgICAgICAg
Ly8gRklYTUU6IHNob3VsZCBiZSBhIGR5bmFtaWMgdGVzdDogVkZQLCBGUEEsIG9yIG5vdGhpbmcK
LSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gc19pc1ZGUFByZXNlbnQ7CiAg
ICAgfQogCiAgICAgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIGNvbnN0CkBA
IC03OTMsNiArNzkyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgQVJNQXNzZW1ibGVyOjpyZWxpbmtD
YWxsKGNhbGwuZGF0YUxvY2F0aW9uKCksIGRlc3RpbmF0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCkp
OwogICAgIH0KIAorICAgIHN0YXRpYyBjb25zdCBib29sIHNfaXNWRlBQcmVzZW50OwogfTsKIAog
fQotLSAKMS41LjYuNQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39326</attachid>
            <date>2009-09-10 00:18:24 -0700</date>
            <delta_ts>2009-09-14 13:23:37 -0700</delta_ts>
            <desc>Detect VFP at runtime for arm-linux (v3)</desc>
            <filename>0001-Detect-VFP-at-runtime-in-generic-ARM-port-on-Linux-p.patch</filename>
            <type>text/plain</type>
            <size>5325</size>
            <attacher name="Gabor Loki">loki</attacher>
            
              <data encoding="base64">RnJvbSBlMDg4NGQ0NWFmYWU3N2NlNzVhZDQ5NjkyYWM4NGE5MGI5Nzk3MmEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KRGF0
ZTogVGh1LCAxMCBTZXAgMjAwOSAwOTowMjoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIERldGVj
dCBWRlAgYXQgcnVudGltZSBpbiBnZW5lcmljIEFSTSBwb3J0IG9uIExpbnV4IHBsYXRmb3JtCgpT
aWduZWQtb2ZmLWJ5OiBHYWJvciBMb2tpIDxsb2tpQGluZi51LXN6ZWdlZC5odT4KLS0tCiBKYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysrKwog
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpICAgICAgICAgICAgICB8ICAgIDEgKwog
SmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcCB8ICAgNjcgKysr
KysrKysrKysrKysrKysrKysrKysrCiBKYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaCAgIHwgICAgOCArKy0tCiA0IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAoKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4MjQ1YTdjLi5iZThj
NjQ5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDktMTAgIEdhYm9yIExva2kg
IDxsb2tpQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBEZXRlY3QgVkZQIGF0IHJ1bnRpbWUgaW4gZ2VuZXJpYyBBUk0gcG9y
dCBvbiBMaW51eCBwbGF0Zm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI5MDc2CisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6CisgICAg
ICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcDogQWRkZWQuCisgICAgICAgIChK
U0M6OmlzVkZQUHJlc2VudCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdXBwb3J0c0Zsb2F0aW5nUG9p
bnQpOgorCiAyMDA5LTA5LTA5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaSBiL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnByaQppbmRleCAwZjNmOTA5Li5kNDQ1OTAxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUucHJpCkBAIC0xMDQsNiArMTA0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgYnl0ZWNvZGUvU3Ry
dWN0dXJlU3R1YkluZm8uY3BwIFwKICAgICBieXRlY29kZS9KdW1wVGFibGUuY3BwIFwKICAgICBh
c3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcCBcCisgICAgYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNLmNwcCBcCiAgICAgaml0L0pJVC5jcHAgXAogICAgIGppdC9KSVRDYWxsLmNwcCBcCiAgICAg
aml0L0pJVEFyaXRobWV0aWMuY3BwIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk0uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMz
ZmFjNjQKLS0tIC9kZXYvbnVsbAorKysgYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9B
c3NlbWJsZXJBUk0uY3BwCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklWRVJTSVRZIE9GIFNaRUdF
RCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZFUlNJVFkgT0YgU1pFR0VE
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0o
QVJNKSAmJiAhUExBVEZPUk1fQVJNX0FSQ0goNykKKworI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVy
QVJNLmgiCisKKyNpZiBQTEFURk9STShMSU5VWCkKKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNp
bmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3Rk
Lmg+CisjaW5jbHVkZSA8ZWxmLmg+CisjaW5jbHVkZSA8YXNtL2h3Y2FwLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBib29sIGlzVkZQUHJlc2VudCgpCit7CisjaWYgUExB
VEZPUk0oTElOVVgpCisgICAgaW50IGZkID0gb3BlbigiL3Byb2Mvc2VsZi9hdXh2IiwgT19SRE9O
TFkpOworICAgIGlmIChmZCA+IDApIHsKKyAgICAgICAgRWxmMzJfYXV4dl90IGF1eDsKKyAgICAg
ICAgd2hpbGUgKHJlYWQoZmQsICZhdXgsIHNpemVvZihFbGYzMl9hdXh2X3QpKSkgeworICAgICAg
ICAgICAgaWYgKGF1eC5hX3R5cGUgPT0gQVRfSFdDQVApIHsKKyAgICAgICAgICAgICAgICBjbG9z
ZShmZCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGF1eC5hX3VuLmFfdmFsICYgSFdDQVBfVkZQ
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNsb3NlKGZkKTsKKyAgICB9Cisj
ZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKworY29uc3QgYm9vbCBNYWNyb0Fzc2VtYmxl
ckFSTTo6c19pc1ZGUFByZXNlbnQgPSBpc1ZGUFByZXNlbnQoKTsKKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0oQVJNKSAmJiAhUExBVEZPUk1fQVJNX0FSQ0go
NykKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFS
TS5oIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXgg
MWE0MjkwZC4uNGE3YzEwYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyQVJNLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyQVJNLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5o
PgogCi0jaWYgRU5BQkxFKEFTU0VNQkxFUikgJiYgUExBVEZPUk0oQVJNKQorI2lmIEVOQUJMRShB
U1NFTUJMRVIpICYmIFBMQVRGT1JNKEFSTSkgJiYgIVBMQVRGT1JNX0FSTV9BUkNIKDcpCiAKICNp
bmNsdWRlICJBUk1Bc3NlbWJsZXIuaCIKICNpbmNsdWRlICJBYnN0cmFjdE1hY3JvQXNzZW1ibGVy
LmgiCkBAIC02MzcsOCArNjM3LDcgQEAgcHVibGljOgogICAgIC8vIEZsb2F0aW5nIHBvaW50IG9w
ZXJhdG9ycwogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBzaG91bGQgYmUgYSBkeW5hbWljIHRlc3Q6IFZGUCwgRlBBLCBvciBu
b3RoaW5nCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHNfaXNWRlBQcmVz
ZW50OwogICAgIH0KIAogICAgIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50VHJ1bmNhdGUoKSBj
b25zdApAQCAtNzkzLDEwICs3OTIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgQVJNQXNzZW1ibGVy
OjpyZWxpbmtDYWxsKGNhbGwuZGF0YUxvY2F0aW9uKCksIGRlc3RpbmF0aW9uLmV4ZWN1dGFibGVB
ZGRyZXNzKCkpOwogICAgIH0KIAorICAgIHN0YXRpYyBjb25zdCBib29sIHNfaXNWRlBQcmVzZW50
OwogfTsKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUoQVNTRU1CTEVSKSAmJiBQTEFU
Rk9STShBUk0pICYmICFQTEFURk9STV9BUk1fQVJDSCg3KQogCiAjZW5kaWYgLy8gTWFjcm9Bc3Nl
bWJsZXJBUk1faAotLSAKMS42LjAuNAoK
</data>
<flag name="review"
          id="20413"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>