<?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>169886</bug_id>
          
          <creation_ts>2017-03-20 12:59:15 -0700</creation_ts>
          <short_desc>[Linux] determineArchitecture is not cross-compile aware</short_desc>
          <delta_ts>2017-03-22 12:10:46 -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>Tools / Tests</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>guijemont</cc>
    
    <cc>lforschler</cc>
    
    <cc>loic.yhuel</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ossy</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1289548</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-20 12:59:15 -0700</bug_when>
    <thetext>The  determineArchitecture() subroutine determines the architecture of the build host rather than the target arch (at least on Linux).

This causes that isX86_64() return true if the host build is an amd64 machine, ignoring if the build host is cross-building.

So when using build-webkit or build-jsc the tooling may end passing options to the build that shouldn&apos;t be enabled, like enabling FTL_JIT because it defaults to true on x86_64, and the tooling confuses build_host=x86_64 with target_arch=armv7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289596</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-03-20 15:24:22 -0700</bug_when>
    <thetext>Does build-webkit have any options to set separate host/target architectures for cross compiling?

I have not investigated it, but I would be surprised if build-webkit (or build-jsc) was intended for use in cross-compiling. I would have instructed users to use CMake directly instead. If you&apos;re cross-compiling you most likely want a production build rather than a development build, after all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289604</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-20 15:51:24 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Does build-webkit have any options to set separate host/target architectures
&gt; for cross compiling?
&gt; 
&gt; I have not investigated it, but I would be surprised if build-webkit (or
&gt; build-jsc) was intended for use in cross-compiling. I would have instructed
&gt; users to use CMake directly instead. If you&apos;re cross-compiling you most
&gt; likely want a production build rather than a development build, after all.

The intent is to run buildbots that cross-build. All WebKit buildbots build webkit with the script build-webkit (or build-jsc if they only build JSC).

And some architectures are not really powerful, having to build webkit natively on those its beyond reasonable. So the only solution that remains is cross-build.

The current JSCOnly ARM bots http://build.webkit.org/waterfall?category=misc are currently cross-building, and we are setting up a MIPS bot for JSCOnly also (initially).  I&apos;m not sure if they are not hitting this issue (ENABLE_FTL_JIT=ON is passed in the cmakeargs because hostOS==amd64) because the hostOS is a 32-bit one (i686) in their case, or for some other workaround that I missed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289610</commentid>
    <comment_count>3</comment_count>
      <attachid>304962</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-20 16:10:40 -0700</bug_when>
    <thetext>Created attachment 304962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289742</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-03-21 03:22:48 -0700</bug_when>
    <thetext>(In reply to comment #2)

&gt; The current JSCOnly ARM bots http://build.webkit.org/waterfall?category=misc
&gt; are currently cross-building, and we are setting up a MIPS bot for JSCOnly
&gt; also (initially).  I&apos;m not sure if they are not hitting this issue
&gt; (ENABLE_FTL_JIT=ON is passed in the cmakeargs because hostOS==amd64) because
&gt; the hostOS is a 32-bit one (i686) in their case, or for some other
&gt; workaround that I missed.

The current JSCOnly ARMv7 and ARMv8 bots run on X86_64 servers inside
ARM chroots and almost everything is emulated with qemu. But we have
some tricks to speedup the build, we use some statically linked X86_64
binaries inside the chroots, for example: cross-gcc (with icecc),
pkg-config, bash, svn, cmake, ninja, ...

Otherwise it would be great if build-jsc could support cross-compiling
out of the box.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1289743</commentid>
    <comment_count>5</comment_count>
      <attachid>304962</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-03-21 03:29:57 -0700</bug_when>
    <thetext>Comment on attachment 304962
Patch

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

&gt; Tools/Scripts/webkitdirs.pm:-1191
&gt; -sub isARM()
&gt; -{
&gt; -    return ($Config{archname} =~ /^arm[v\-]/) || ($Config{archname} =~ /^aarch64[v\-]/);
&gt; -}

You are right, it is dead code now. But maybe we would need isARMv7() and isARMv8() 
in the future in build-jsc and/or FeatureList.pm similar to isX86_64().

But they can be added easily later, simple copy/paste of the actual isX86_64().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290043</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-22 05:22:40 -0700</bug_when>
    <thetext>(In reply to Csaba Osztrogonác from comment #4)
&gt; (In reply to comment #2)
&gt; 
&gt; &gt; The current JSCOnly ARM bots http://build.webkit.org/waterfall?category=misc
&gt; &gt; are currently cross-building, and we are setting up a MIPS bot for JSCOnly
&gt; &gt; also (initially).  I&apos;m not sure if they are not hitting this issue
&gt; &gt; (ENABLE_FTL_JIT=ON is passed in the cmakeargs because hostOS==amd64) because
&gt; &gt; the hostOS is a 32-bit one (i686) in their case, or for some other
&gt; &gt; workaround that I missed.
&gt; 
&gt; The current JSCOnly ARMv7 and ARMv8 bots run on X86_64 servers inside
&gt; ARM chroots and almost everything is emulated with qemu. But we have
&gt; some tricks to speedup the build, we use some statically linked X86_64
&gt; binaries inside the chroots, for example: cross-gcc (with icecc),
&gt; pkg-config, bash, svn, cmake, ninja, ...
&gt; 
&gt; Otherwise it would be great if build-jsc could support cross-compiling
&gt; out of the box.

Thats an interesting approach to the problem, it also solves the ldd problem, as run-jsc-stress-tests runs ldd over the binary to get the list of libraries it should copy to the test target machine. And having ldd working otherwise its more tricky. Thanks for the info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290047</commentid>
    <comment_count>7</comment_count>
      <attachid>304962</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-22 07:36:39 -0700</bug_when>
    <thetext>Comment on attachment 304962
Patch

Clearing flags on attachment: 304962

Committed r214250: &lt;http://trac.webkit.org/changeset/214250&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290048</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-22 07:36:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290060</commentid>
    <comment_count>9</comment_count>
    <who name="Loïc Yhuel">loic.yhuel</who>
    <bug_when>2017-03-22 09:01:57 -0700</bug_when>
    <thetext>Note that isCrossCompilation would return 0 for :
 - clang (which can even be multi target)
 - x86_64 multiarch, ie CC=&quot;gcc -m32&quot; (in this case &quot;gcc -m32 -dumpmachine&quot; would return the wrong value anyway)

With cmake, it is recommended to use a toolchain file when cross-compiling, ie --cmakeargs=&quot;-DCMAKE_TOOLCHAIN_FILE=xxxx&quot;.
The toolchain file can then set CMAKE_SYSTEM_PROCESSOR (but --system-information mode doesn&apos;t accept arguments, so it cannot be tested without generating a normal project).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290131</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-22 11:11:51 -0700</bug_when>
    <thetext>(In reply to Loïc Yhuel from comment #9)
&gt; Note that isCrossCompilation would return 0 for :
&gt;  - clang (which can even be multi target)
&gt;  - x86_64 multiarch, ie CC=&quot;gcc -m32&quot; (in this case &quot;gcc -m32 -dumpmachine&quot;
&gt; would return the wrong value anyway)
&gt; 
&gt; With cmake, it is recommended to use a toolchain file when cross-compiling,
&gt; ie --cmakeargs=&quot;-DCMAKE_TOOLCHAIN_FILE=xxxx&quot;.
&gt; The toolchain file can then set CMAKE_SYSTEM_PROCESSOR (but
&gt; --system-information mode doesn&apos;t accept arguments, so it cannot be tested
&gt; without generating a normal project).

That&apos;s right.

What I have committed is not perfect, but is the best thing I could come with. And it will work for the use case I was trying to support (cross-build for mips32el on an amd64 machine with the toolchain generated by buildroot)

If you know about a better way of detecting if we are cross-compiling or detecting the target architecture please submit a patch and put me in the CC list. 

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290149</commentid>
    <comment_count>11</comment_count>
    <who name="Loïc Yhuel">loic.yhuel</who>
    <bug_when>2017-03-22 11:57:24 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #10)&gt; 
&gt; If you know about a better way of detecting if we are cross-compiling or
&gt; detecting the target architecture please submit a patch and put me in the CC
&gt; list. 
I didn&apos;t find anything simple which would work in all cases (perhaps creating a cmake project would work, but it would by tricky and IHMO overkill).
In my case, since build-webkit is called from an external build system, it was easier to add a --architecture argument, which bypasses the autodetection (and saves on few seconds on incremental builds by avoiding the cmake --system-information, even when I&apos;m not cross-compiling).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1290154</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-03-22 12:10:46 -0700</bug_when>
    <thetext>(In reply to Loïc Yhuel from comment #11)
&gt; (In reply to Carlos Alberto Lopez Perez from comment #10)&gt; 
&gt; &gt; If you know about a better way of detecting if we are cross-compiling or
&gt; &gt; detecting the target architecture please submit a patch and put me in the CC
&gt; &gt; list. 
&gt; I didn&apos;t find anything simple which would work in all cases (perhaps
&gt; creating a cmake project would work, but it would by tricky and IHMO
&gt; overkill).
&gt; In my case, since build-webkit is called from an external build system, it
&gt; was easier to add a --architecture argument, which bypasses the
&gt; autodetection (and saves on few seconds on incremental builds by avoiding
&gt; the cmake --system-information, even when I&apos;m not cross-compiling).

Adding an --architecture argument is another option, and maybe the most sane one.

It would require some changes in the buildbot configuration. Each bot has defined the architecture name in Tools/BuildSlaveSupport/build.webkit.org-config/config.json -- we could pass that value as an argument to the build-webkit and build-jsc scripts. That way the perl tooling would use the passed value instead of trying to auto-detect it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304962</attachid>
            <date>2017-03-20 16:10:40 -0700</date>
            <delta_ts>2017-03-22 07:36:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169886-20170321001037.patch</filename>
            <type>text/plain</type>
            <size>5657</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MTkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDNjNDRkMzc3NDhiMGZhOTE2Y2FiNzc1MGU4YTkyN2Jj
OWUwYzAzOC4uYzhhNjQ3MjJiMTQ5NDM1YWRhNjFiZDU4MTUxMTFhZjI3Yjg1Y2NhNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE3LTAzLTIwICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtMaW51eF0gZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIGlzIG5vdCBj
cm9zcy1jb21waWxlIGF3YXJlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjk4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUcnkgdG8gZGV0ZWN0IHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlIG5hbWUgZnJv
bSB0aGUgR0NDIHRyaXBsZXQKKyAgICAgICAgd2hlbiBjcm9zcy1idWlsZGluZy4KKworICAgICAg
ICBUaGUgYWFyY2g2NCBhcmNoaXRlY3R1cmUgaXMgcmVuYW1lZCB0byBhcm02NCAodGhpcyBpcyBj
b2hlcmVudCB3aXRoCisgICAgICAgIHRoZSByZXN0IG9mIHRoZSBwZXJsIHRvb2xpbmcgdGhhdCBj
b25zdWx0cyB0aGUgYXJjaGl0ZWN0dXJlIGRldGVybWluZWQKKyAgICAgICAgaW4gZGV0ZXJtaW5l
QXJjaGl0ZWN0dXJlKCksIHRoZSBjaGVjayBmb3IgdGhpcyBhcmNoIGlzIGFsd2F5cyBkb25lCisg
ICAgICAgIHdpdGggdGhlIGFybTY0IG5hbWUpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRk
aXJzLnBtOiBSZW1vdmUgdGhlIGlzQVJNKCkgZnVuY3Rpb246IGl0cyBkZWFkIGNvZGUKKyAgICAg
ICAgYW5kIG5vdCBjcm9zcy1idWlsZCBhd2FyZS4KKyAgICAgICAgKGRldGVybWluZUFyY2hpdGVj
dHVyZSk6IFdoZW4gY3Jvc3NidWlsZGluZywgdHJ5IHRvIGRldGVjdCB0aGUgdGFyZ2V0CisgICAg
ICAgIGFyY2hpdGVjdHVyZSBuYW1lIGZyb20gdGhlIEdDQyB0cmlwbGV0LgorICAgICAgICBSZW1v
dmUgYWxzbyB0aGUgZmFsbGJhY2sgb3B0aW9uIHRvIHJ1biB0aGUgYXJjaCBjb21tYW5kLCBiZWNh
dXNlIHRoaXMKKyAgICAgICAgY29tbWFuZCBkb2Vzbid0IHByaW50IHRoZSBleHBlY3RlZCBvbiBN
YWMvQlNELCBhbmQgb24gTGludXggaXMgdGhlCisgICAgICAgIHNhbWUgdGhhbiB1bmFtZSAtbS4g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTI5NTgjYzYKKyAg
ICAgICAgKGlzQ3Jvc3NDb21waWxhdGlvbik6IFNvbWUgY3Jvc3MtY29tcGlsZXJzIChidWlsZHJv
b3Qgb25lIGZvciBleGFtcGxlKQorICAgICAgICBkb24ndCBkZWZpbmUgdGhlIC0taG9zdCBvcHRp
b24uIEFkZCBhbm90aGVyIG9wdGlvbiB0byBkZXRlY3QgdGhhdAorICAgICAgICB3ZSBhcmUgY3Jv
c3MtYnVpbGRpbmcgYnkgYnVpbGRpbmcgYSBkdW1teSBwcm9ncmFtIGFuZCBjaGVja2luZyBpZgor
ICAgICAgICB3ZSBjYW4gcnVuIGl0LgorCiAyMDE3LTAzLTIwICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICB3ZWJraXRweTogV29yayBhcm91bmQgc2ltY3Rs
IGxhdW5jaCByZXR1cm5pbmcgZGVhZCBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBlZWMy
OGI5YjMyNjZlNjYyMTRkOTcyYmQ1YjI4ZTVlODExODhlZmY5Li41NWY3NjE3ZGMzMjZhNTQ0ZTNl
NjA3OGI2ZTJlYWIzOTY3YWFlYTUyIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRp
cnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC00MCw2ICs0MCw3IEBA
IHVzZSBGaWxlOjpCYXNlbmFtZTsKIHVzZSBGaWxlOjpGaW5kOwogdXNlIEZpbGU6OlBhdGggcXco
bWFrZV9wYXRoIG1rcGF0aCBybXRyZWUpOwogdXNlIEZpbGU6OlNwZWM7Cit1c2UgRmlsZTo6VGVt
cCBxdyh0ZW1wZGlyKTsKIHVzZSBGaWxlOjpzdGF0OwogdXNlIExpc3Q6OlV0aWw7CiB1c2UgUE9T
SVg7CkBAIC0zNDMsMTIgKzM0NCwxNiBAQCBzdWIgZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2lmIChpc0NNYWtlQnVpbGQoKSkgewotICAg
ICAgICBpZiAob3BlbiBteSAkY21ha2Vfc3lzaW5mbywgImNtYWtlIC0tc3lzdGVtLWluZm9ybWF0
aW9uIHwiKSB7CisgICAgICAgIGlmIChpc0Nyb3NzQ29tcGlsYXRpb24oKSkgeworICAgICAgICAg
ICAgbXkgJGNvbXBpbGVyID0gImdjYyI7CisgICAgICAgICAgICAkY29tcGlsZXIgPSAkRU5WeydD
Qyd9IGlmIChkZWZpbmVkKCRFTlZ7J0NDJ30pKTsKKyAgICAgICAgICAgIG15IEBjb21waWxlcl9t
YWNoaW5lID0gc3BsaXQoJy0nLCBgJGNvbXBpbGVyIC1kdW1wbWFjaGluZWApOworICAgICAgICAg
ICAgJGFyY2hpdGVjdHVyZSA9ICRjb21waWxlcl9tYWNoaW5lWzBdOworICAgICAgICB9IGVsc2lm
IChvcGVuIG15ICRjbWFrZV9zeXNpbmZvLCAiY21ha2UgLS1zeXN0ZW0taW5mb3JtYXRpb24gfCIp
IHsKICAgICAgICAgICAgIHdoaWxlICg8JGNtYWtlX3N5c2luZm8+KSB7CiAgICAgICAgICAgICAg
ICAgbmV4dCB1bmxlc3MgaW5kZXgoJF8sICdDTUFLRV9TWVNURU1fUFJPQ0VTU09SJykgPT0gMDsK
ICAgICAgICAgICAgICAgICBpZiAoL15DTUFLRV9TWVNURU1fUFJPQ0VTU09SIFwiKFteIl0rKVwi
LykgewogICAgICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJDE7Ci0gICAgICAgICAg
ICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSAneDg2XzY0JyBpZiAkYXJjaGl0ZWN0dXJlIGVxICdh
bWQ2NCc7CiAgICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQpAQCAtMzU4LDE5ICszNjMsMTQgQEAgc3ViIGRldGVybWluZUFyY2hpdGVjdHVy
ZQogCiAgICAgaWYgKCFpc0FueVdpbmRvd3MoKSkgewogICAgICAgICBpZiAoISRhcmNoaXRlY3R1
cmUpIHsKLSAgICAgICAgICAgICMgRmFsbCBiYWNrIHRvIG91dHB1dCBvZiBgYXJjaCcsIGlmIGl0
IGlzIHByZXNlbnQuCi0gICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYGFyY2hgOwotICAgICAg
ICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghJGFy
Y2hpdGVjdHVyZSkgewogICAgICAgICAgICAgIyBGYWxsIGJhY2sgdG8gb3V0cHV0IG9mIGB1bmFt
ZSAtbScsIGlmIGl0IGlzIHByZXNlbnQuCiAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gYHVu
YW1lIC1tYDsKICAgICAgICAgICAgIGNob21wICRhcmNoaXRlY3R1cmU7CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCcgaWYgKCRhcmNoaXRlY3R1cmUgPX4g
L2FtZDY0LyAmJiBpc0JTRCgpKTsKKyAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCcgaWYgJGFy
Y2hpdGVjdHVyZSA9fiAvYW1kNjQvaTsKKyAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybTY0JyBpZiAk
YXJjaGl0ZWN0dXJlID1+IC9hYXJjaDY0L2k7CiB9CiAKIHN1YiBkZXRlcm1pbmVBU2FuSXNFbmFi
bGVkCkBAIC0xMTg1LDExICsxMTg1LDYgQEAgc3ViIGlzQlNEKCkKICAgICByZXR1cm4gKCReTyBl
cSAiZnJlZWJzZCIpIHx8ICgkXk8gZXEgIm9wZW5ic2QiKSB8fCAoJF5PIGVxICJuZXRic2QiKSB8
fCAwOwogfQogCi1zdWIgaXNBUk0oKQotewotICAgIHJldHVybiAoJENvbmZpZ3thcmNobmFtZX0g
PX4gL15hcm1bdlwtXS8pIHx8ICgkQ29uZmlne2FyY2huYW1lfSA9fiAvXmFhcmNoNjRbdlwtXS8p
OwotfQotCiBzdWIgaXNYODZfNjQoKQogewogICAgIHJldHVybiAoYXJjaGl0ZWN0dXJlKCkgZXEg
Ing4Nl82NCIpIHx8IDA7CkBAIC0xMTk3LDE2ICsxMTkyLDI4IEBAIHN1YiBpc1g4Nl82NCgpCiAK
IHN1YiBpc0Nyb3NzQ29tcGlsYXRpb24oKQogewotICBteSAkY29tcGlsZXIgPSAiIjsKLSAgJGNv
bXBpbGVyID0gJEVOVnsnQ0MnfSBpZiAoZGVmaW5lZCgkRU5WeydDQyd9KSk7Ci0gIGlmICgkY29t
cGlsZXIgPX4gL2djYy8pIHsKLSAgICAgIG15ICRjb21waWxlcl9vcHRpb25zID0gYCRjb21waWxl
ciAtdiAyPiYxYDsKLSAgICAgIG15IEBob3N0ID0gJGNvbXBpbGVyX29wdGlvbnMgPX4gbS8tLWhv
c3Q9KC4qPylccy87Ci0gICAgICBteSBAdGFyZ2V0ID0gJGNvbXBpbGVyX29wdGlvbnMgPX4gbS8t
LXRhcmdldD0oLio/KVxzLzsKLQotICAgICAgcmV0dXJuICgkaG9zdFswXSBuZSAiIiAmJiAkdGFy
Z2V0WzBdIG5lICIiICYmICRob3N0WzBdIG5lICR0YXJnZXRbMF0pOwotICB9Ci0gIHJldHVybiAw
OworICAgIG15ICRjb21waWxlciA9ICIiOworICAgICRjb21waWxlciA9ICRFTlZ7J0NDJ30gaWYg
KGRlZmluZWQoJEVOVnsnQ0MnfSkpOworICAgIGlmICgkY29tcGlsZXIgPX4gL2djYy8pIHsKKyAg
ICAgICAgbXkgJGNvbXBpbGVyT3B0aW9ucyA9IGAkY29tcGlsZXIgLXYgMj4mMWA7CisgICAgICAg
IG15IEBob3N0ID0gJGNvbXBpbGVyT3B0aW9ucyA9fiBtLy0taG9zdD0oLio/KVxzLzsKKyAgICAg
ICAgbXkgQHRhcmdldCA9ICRjb21waWxlck9wdGlvbnMgPX4gbS8tLXRhcmdldD0oLio/KVxzLzsK
KyAgICAgICAgaWYgKCR0YXJnZXRbMF0gbmUgIiIgJiYgJGhvc3RbMF0gbmUgIiIpIHsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gKCRob3N0WzBdIG5lICR0YXJnZXRbMF0pOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICMgJHRlbXBEaXIgZ2V0cyBhdXRvbWF0aWNhbGx5IGRlbGV0
ZWQgd2hlbiBnb2VzIG91dCBvZiBzY29wZQorICAgICAgICAgICAgICAgIG15ICR0ZW1wRGlyID0g
RmlsZTo6VGVtcC0+bmV3ZGlyKCk7CisgICAgICAgICAgICAgICAgbXkgJHRlc3RQcm9ncmFtU291
cmNlUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRlbXBEaXIsICJ0ZXN0Y3Jvc3MuYyIpOwor
ICAgICAgICAgICAgICAgIG15ICR0ZXN0UHJvZ3JhbUJpbmFyeVBhdGggPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCR0ZW1wRGlyLCAidGVzdGNyb3NzIik7CisgICAgICAgICAgICAgICAgb3BlbihteSAk
dGVzdFByb2dyYW1Tb3VyY2VIYW5kbGVyLCAiPiIsICR0ZXN0UHJvZ3JhbVNvdXJjZVBhdGgpOwor
ICAgICAgICAgICAgICAgIHByaW50ICR0ZXN0UHJvZ3JhbVNvdXJjZUhhbmRsZXIgImludCBtYWlu
KCkgeyByZXR1cm4gMDsgfVxuIjsKKyAgICAgICAgICAgICAgICBzeXN0ZW0oIiRjb21waWxlciAk
dGVzdFByb2dyYW1Tb3VyY2VQYXRoIC1vICR0ZXN0UHJvZ3JhbUJpbmFyeVBhdGggPiAvZGV2L251
bGwgMj4mMSIpID09IDAgb3IgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgIyBDcm9zc2NvbXBp
bGluZyBpZiB0aGUgcHJvZ3JhbSBmYWlscyB0byBydW4gKGJlY2F1c2UgaXQgd2FzIGJ1aWx0IGZv
ciBvdGhlciBhcmNoKQorICAgICAgICAgICAgICAgIHN5c3RlbSgiJHRlc3RQcm9ncmFtQmluYXJ5
UGF0aCA+IC9kZXYvbnVsbCAyPiYxIikgPT0gMCBvciByZXR1cm4gMTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKIH0KIAogc3ViIGlz
QXBwbGVXZWJLaXQoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>