<?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>19775</bug_id>
          
          <creation_ts>2008-06-25 22:43:06 -0700</creation_ts>
          <short_desc>Alignment problems on Sparc</short_desc>
          <delta_ts>2012-02-21 08:42:22 -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>Platform</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>
          
          <blocked>20662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike Hommey">mh+webkit</reporter>
          <assigned_to name="Mike Hommey">mh+webkit</assigned_to>
          <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>gnome</cc>
    
    <cc>gustavo</cc>
    
    <cc>landry</cc>
    
    <cc>levin</cc>
    
    <cc>lkcl</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
    
    <cc>pachoramos1</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>84451</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-06-25 22:43:06 -0700</bug_when>
    <thetext>This was first reported on Debian BTS.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487745

The main issue is that Sparc processors require 64-bit alignment in some cases.

We could already fix 2 issues but still have another SIGBUS with the following stacktrace:
#0  0xf7bfa76c in WebCore::ValueList::addValue (this=0xf423ac40, v=@0xffb2bec0) at ../JavaScriptCore/wtf/Vector.h:727
#1  0xf7bf8ae4 in cssyyparse (parser=0xffb2d3d8) at ../WebCore/css/CSSGrammar.y:1022
#2  0xf76c9e88 in WebCore::CSSParser::parseSheet (this=0xffb2d3d8, sheet=0xf4226740, string=@0xffb2d504) at ../WebCore/css/CSSParser.cpp:230
#3  0xf7702400 in WebCore::CSSStyleSheet::parseString (this=0xf4226740, string=@0xffb2d504, strict=&lt;value optimized out&gt;) at ../WebCore/css/CSSStyleSheet.cpp:158
#4  0xf76e7b88 in parseUASheet (characters=0xf7de0868 &quot;@namespace \&quot;http://www.w3.org/1999/xhtml\&quot;; html { display: block } head { display: none } meta { display: none } title { display: none } link { display: none } style { display: none } script { display&quot;..., size=9484)
    at ../WebCore/css/CSSStyleSelector.cpp:395
#5  0xf76e81c4 in loadDefaultStyle () at ../WebCore/css/CSSStyleSelector.cpp:401
#6  0xf76fa014 in CSSStyleSelector (this=0xf4241dc0, doc=0xf4234700, userStyleSheet=@0xffb2d68c, styleSheets=0xf421f168, mappedElementSheet=0x0, strictParsing=false, matchAuthorAndUserStyles=&lt;value optimized out&gt;) at ../WebCore/css/CSSStyleSelector.cpp:323
#7  0xf771a2d4 in WebCore::Document::attach (this=0xf4234700) at ../WebCore/dom/Document.cpp:1250
#8  0xf78ddcb0 in WebCore::Frame::setDocument (this=0xf42131b0, newDoc={m_ptr = 0xffb2d7d4}) at ../WebCore/page/Frame.cpp:259
#9  0xf787a71c in WebCore::FrameLoader::begin (this=0xf421a6a8, url=&lt;value optimized out&gt;, dispatch=&lt;value optimized out&gt;, origin=0x0) at ../WebCore/loader/FrameLoader.cpp:924
#10 0xf7885e24 in WebCore::FrameLoader::receivedFirstData (this=0xf421a6a8) at ../WebCore/loader/FrameLoader.cpp:853
#11 0xf788621c in WebCore::FrameLoader::setEncoding (this=0xf421a6a8, name=@0xffb2d9b4, userChosen=false) at ../WebCore/loader/FrameLoader.cpp:1820
#12 0xf763c0b4 in WebKit::FrameLoaderClient::finishedLoading (this=0xf4217f80, documentLoader=0xf4230a00) at ../WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:597
#13 0xf78883a0 in WebCore::FrameLoader::finishedLoadingDocument (this=0xf421a6a8, loader=0xf4230a00) at ../WebCore/loader/FrameLoader.cpp:2934
#14 0xf786ca28 in WebCore::DocumentLoader::finishedLoading (this=0xf4230a00) at ../WebCore/loader/DocumentLoader.cpp:334
#15 0xf7884f38 in WebCore::FrameLoader::init (this=0xf421a6a8) at ../WebCore/loader/FrameLoader.cpp:292
#16 0xf762e2b0 in webkit_web_frame_new (webView=&lt;value optimized out&gt;) at ../WebKit/gtk/webkit/webkitwebframe.cpp:224
#17 0xf763561c in webkit_web_view_init (webView=0x4269e0) at ../WebKit/gtk/webkit/webkitwebview.cpp:1317
#18 0xf62e7a10 in g_type_create_instance () from /usr/lib/libgobject-2.0.so.0
#19 0xf62c9254 in ?? () from /usr/lib/libgobject-2.0.so.0
#20 0xf62c9254 in ?? () from /usr/lib/libgobject-2.0.so.0

The line where the SIGBUS occurs reads:
   new (end()) T(*ptr);

We still have a rather old revision in Debian (r32442) but I haven&apos;t had time to package a newer one. There is no reason this shouldn&apos;t occur with current trunk, though.

While I could deal with the first 2 alignment problems, I&apos;m not C++-fluent enough to know how to fix this 3rd one. Any help would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84464</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-06-26 05:20:57 -0700</bug_when>
    <thetext>This problem may have to do with this FIXME: in Vector.h: &quot;Nothing guarantees this buffer is appropriately aligned to hold objects of type T&quot;. You could use non-standard gcc extension __align__ to make vector inline buffer aligned. Alternatively, you could make the buffer an array of elements that have suitable alignment requirements for a cross-compiler solution (patches are welcome!)

What are the cases where Sparc requires 64-bit alignment? Would an array of size32_t elements without padding be problematic, for example? Apple&apos;s sources for iPhone have some alignment fixes for ARM, which you can look up at Apple&apos;s open source site, if you are OK with agreeing to the Apple Public Source License, but I don&apos;t know if Sparc requirements are the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84486</commentid>
    <comment_count>2</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-06-26 10:50:30 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; This problem may have to do with this FIXME: in Vector.h: &quot;Nothing guarantees
&gt; this buffer is appropriately aligned to hold objects of type T&quot;. You could use
&gt; non-standard gcc extension __align__ to make vector inline buffer aligned.
&gt; Alternatively, you could make the buffer an array of elements that have
&gt; suitable alignment requirements for a cross-compiler solution (patches are
&gt; welcome!)

I&apos;ll try to try these, but will have to do some research first... Or maybe do you have good pointers already?

&gt; What are the cases where Sparc requires 64-bit alignment? Would an array of
&gt; size32_t elements without padding be problematic, for example?

Basically, any 32-bit access must be 32-bit aligned, as with ARM, and any 64-bit access must be 64-bit aligned. Some assignments end up doing 64-bit accesses.

&gt; Apple&apos;s sources
&gt; for iPhone have some alignment fixes for ARM, which you can look up at Apple&apos;s
&gt; open source site, if you are OK with agreeing to the Apple Public Source
&gt; License, but I don&apos;t know if Sparc requirements are the same.

AFAIK, ARM only requires 32-bit alignment, not 64-bit alignment. ARM alignment requirements are already fulfilled by webkit code, apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84496</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-06-26 11:25:02 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;ll try to try these, but will have to do some research first... Or maybe do
&gt; you have good pointers already?

You can look up __align__ usage in iPhone sources. For a compiler-neutral technique, I was thinking about something like
-char m_inlineBuffer[m_inlineBufferSize];
+uint32_t m_inlineBuffer[(m_inlineBufferSize + 3) / 4];

&gt; AFAIK, ARM only requires 32-bit alignment, not 64-bit alignment. ARM alignment
&gt; requirements are already fulfilled by webkit code, apparently.

Not for Vector inline buffer though, which is not aligned at all. I don&apos;t know if that&apos;s the only case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84506</commentid>
    <comment_count>4</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-06-26 11:49:37 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; You can look up __align__ usage in iPhone sources. For a compiler-neutral
&gt; technique, I was thinking about something like
&gt; -char m_inlineBuffer[m_inlineBufferSize];
&gt; +uint32_t m_inlineBuffer[(m_inlineBufferSize + 3) / 4];

This looks just like what we already have for FastMalloc&apos;s pageheap_memory. I&apos;ll try that.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84522</commentid>
    <comment_count>5</comment_count>
      <attachid>21963</attachid>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-06-26 15:23:42 -0700</bug_when>
    <thetext>Created attachment 21963
beginnings of a patch

This patch allows GtkLauncher to start and display the google homepage.

I still have to parse the build logs to look for &quot;increases required alignment of target type&quot; warnings, that should all be problematic on sparc.

Note I also added, in this patch, a generic thing for &quot;unknown&quot; platforms, to avoid to assume little endianness.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84524</commentid>
    <comment_count>6</comment_count>
      <attachid>21963</attachid>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-06-26 15:26:54 -0700</bug_when>
    <thetext>Comment on attachment 21963
beginnings of a patch

&gt;-        // FIXME: Nothing guarantees this buffer is appropriately aligned to hold objects of type T.
&gt;-        char m_inlineBuffer[m_inlineBufferSize];
&gt;+        uuint64_t m_inlineBuffer[(m_inlineBufferSize + sizeof(uint64_t) - 1) / sizeof(uint64_t)];

This should read uint64_t, not uuint64_t...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85251</commentid>
    <comment_count>7</comment_count>
      <attachid>22105</attachid>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-07-06 05:09:45 -0700</bug_when>
    <thetext>Created attachment 22105
Patch I&apos;m applying to the debian package

This is the patch I came up with for debian. It is not fully tested yet: I know it doesn&apos;t break the build on amd64, and it seems to be okay on sparc. I&apos;ll obviously know better when the upload will have been done and our buildds will have tried it.

There should still be alignment warnings during the build on sparc, but most should just be fine, and I don&apos;t know for some other few. I invite you to take a look at the buildlogs on http://buildd.debian.org/webkit.

Note I added an aligment hack for arm, too, because I see no reason why this wouldn&apos;t be required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85456</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-07-08 08:44:37 -0700</bug_when>
    <thetext>See also: bug 16925 (the suggested change for Vector uses GCC and MSVC extensions instead of the uint64_t trick).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85459</commentid>
    <comment_count>9</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2008-07-08 09:14:23 -0700</bug_when>
    <thetext>On XScale/ARM, this I faced another alignment issue. #19946 might be relevant for alignment on Sparc, too. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85460</commentid>
    <comment_count>10</comment_count>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2008-07-08 09:16:51 -0700</bug_when>
    <thetext>Sorry, here&apos;s the link: https://bugs.webkit.org/show_bug.cgi?id=19946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85485</commentid>
    <comment_count>11</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-08 14:01:23 -0700</bug_when>
    <thetext>I don&apos;t want to hijack this report, but i think i have the same problem on OpenBSD/sparc64 -current with webkit-1.0.1.
It works fine on amd64 and i386 archs though.
Will try a rebuild (12 hours..) will all the patches provided (the debian one, and #19946 #16925) and will let you know how it goes on my Ultra60.

My trace seems to match the one on http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg535386.html

Program received signal SIGBUS, Bus error.
0x0000000051b00614 in WTF::HashSet&lt;WebCore::StringImpl*, WebCore::StringHash,WTF::HashTraits&lt;WebCore::StringImpl*&gt; &gt;::add&lt;WebCore::UCharBuffer,WebCore::UCharBufferTranslator&gt; () from /usr/local/lib/libwebkit-1.0.so.0.0
(gdb) bt
#0  0x0000000051b00614 in WTF::HashSet&lt;WebCore::StringImpl*, WebCore::StringHash,WTF::HashTraits&lt;WebCore::StringImpl*&gt; &gt;::add&lt;WebCore::UCharBuffer,WebCore::UCharBufferTranslator&gt; () from /usr/local/lib/libwebkit-1.0.so.0.0
#1  0x0000000051aff4a4 in WebCore::AtomicString::add () from /usr/local/lib/libwebkit-1.0.so.0.0
#2  0x0000000051da7734 in cssyyparse () from /usr/local/lib/libwebkit-1.0.so.0.0
#3  0x00000000518b2a20 in WebCore::CSSParser::parseSheet () from /usr/local/lib/libwebkit-1.0.so.0.0
#4  0x00000000518f8ecc in WebCore::CSSStyleSheet::parseString () from /usr/local/lib/libwebkit-1.0.so.0.0
#5  0x00000000518d3368 in WebCore::parseUASheet () from /usr/local/lib/libwebkit-1.0.so.0.0
#6  0x00000000518d348c in WebCore::loadDefaultStyle () from /usr/local/lib/libwebkit-1.0.so.0.0
#7  0x00000000518f5688 in WebCore::CSSStyleSelector::CSSStyleSelector () from /usr/local/lib/libwebkit-1.0.so.0.0
#8  0x0000000051910d44 in WebCore::Document::attach () from /usr/local/lib/libwebkit-1.0.so.0.0
#9  0x0000000051ad3e7c in WebCore::Frame::setDocument () from /usr/local/lib/libwebkit-1.0.so.0.0
#10 0x0000000051a67858 in WebCore::FrameLoader::begin () from /usr/local/lib/libwebkit-1.0.so.0.0
#11 0x0000000051a75344 in WebCore::FrameLoader::receivedFirstData () from /usr/local/lib/libwebkit-1.0.so.0.0
#12 0x0000000051a757a4 in WebCore::FrameLoader::setEncoding () from /usr/local/lib/libwebkit-1.0.so.0.0
#13 0x00000000518546e0 in WebKit::FrameLoaderClient::committedLoad () from /usr/local/lib/libwebkit-1.0.so.0.0
#14 0x0000000051853280 in WebKit::FrameLoaderClient::finishedLoading () from /usr/local/lib/libwebkit-1.0.so.0.0
#15 0x0000000051a78934 in WebCore::FrameLoader::finishedLoadingDocument () from /usr/local/lib/libwebkit-1.0.so.0.0
#16 0x0000000051a59850 in WebCore::DocumentLoader::finishedLoading () from /usr/local/lib/libwebkit-1.0.so.0.0
#17 0x0000000051a7929c in WebCore::FrameLoader::init () from /usr/local/lib/libwebkit-1.0.so.0.0
#18 0x0000000051844be4 in webkit_web_frame_new () from /usr/local/lib/libwebkit-1.0.so.0.0
#19 0x000000005184d33c in webkit_web_view_init () from /usr/local/lib/libwebkit-1.0.so.0.0
#20 0x0000000056ae1548 in g_type_create_instance () from /usr/local/lib/libgobject-2.0.so.1600.0
#21 0x0000000056aca178 in g_object_new_valist () from /usr/local/lib/libgobject-2.0.so.1600.0
#22 0x0000000056ac9924 in g_object_newv () from /usr/local/lib/libgobject-2.0.so.1600.0
#23 0x0000000056aca11c in g_object_new_valist () from /usr/local/lib/libgobject-2.0.so.1600.0
#24 0x0000000056ac9658 in g_object_new () from /usr/local/lib/libgobject-2.0.so.1600.0
#25 0x0000000051848594 in webkit_web_view_new () from /usr/local/lib/libwebkit-1.0.so.0.0
#26 0x00000000001021e8 in main ()

Landry, OpenBSD porter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85548</commentid>
    <comment_count>12</comment_count>
      <attachid>22185</attachid>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-09 11:04:17 -0700</bug_when>
    <thetext>Created attachment 22185
patches applied on openbsd

Patches currently applied against webkit 1.0.1 on OpenBSD : 
- signbit and isfinite are being added to our libm, in the meantime they&apos;re implemented in source/#defined
- JavaScriptCore/kjs/collector.cpp is patched to work with our pthread
- The other patches are backported from the debian patch (but in Platform.h we have __sparc64__ instead of __sparc__ which is for sparc32 architecture (sun4, sun4c and sun4m processors, cf http://openbsd.org/sparc.html#hardware)
- JavaScriptCore/wtf/Threading.h : atomicIncrement/atomicDecrement are patched to use the fallback code instead of libestdc++ 4.2.
- WebKitTools/DumpRenderTree/DumpRenderTree.h : we don&apos;t have support for wchars.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85549</commentid>
    <comment_count>13</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-09 11:07:30 -0700</bug_when>
    <thetext>With the attached patches against webkit 1.0.1, GtkLauncher and midori builds &amp; works fine on OpenBSD/i386/amd64/macppc. On sparc64 (Ultra60), i get a &apos;new&apos; SIGBUS when launching GtkLauncher (window shows though, with midori it doesn&apos;t even show up), trace follows :

(i know it&apos;s pretty useless without line numbers, will try to build a debug version. Hope this helps anyway, i&apos;m open to all suggestion/patches to test)

Program received signal SIGBUS, Bus error.
0x0000000049c61864 in KJS::PropertyMap::insert () from /usr/local/lib/libwebkit-1.0.so.0.0
(gdb) bt
#0  0x0000000049c61864 in KJS::PropertyMap::insert () from /usr/local/lib/libwebkit-1.0.so.0.0
#1  0x0000000049c6e884 in KJS::PropertyMap::createTable () from /usr/local/lib/libwebkit-1.0.so.0.0
#2  0x0000000049c6e914 in KJS::PropertyMap::put () from /usr/local/lib/libwebkit-1.0.so.0.0
#3  0x0000000049c82fd8 in KJS::FunctionPrototype::FunctionPrototype () from /usr/local/lib/libwebkit-1.0.so.0.0
#4  0x0000000049c3d228 in KJS::JSGlobalObject::reset () from /usr/local/lib/libwebkit-1.0.so.0.0
#5  0x00000000495cd318 in WebCore::JSDOMWindowBase::JSDOMWindowBase () from /usr/local/lib/libwebkit-1.0.so.0.0
#6  0x0000000049b2e84c in WebCore::JSDOMWindow::JSDOMWindow () from /usr/local/lib/libwebkit-1.0.so.0.0
#7  0x00000000495d71c0 in WebCore::JSDOMWindowShell::JSDOMWindowShell () from /usr/local/lib/libwebkit-1.0.so.0.0
#8  0x00000000495edb08 in WebCore::ScriptController::initScript () from /usr/local/lib/libwebkit-1.0.so.0.0
#9  0x00000000495edda8 in WebCore::ScriptController::evaluate () from /usr/local/lib/libwebkit-1.0.so.0.0
#10 0x00000000497e0578 in WebCore::FrameLoader::executeScript () from /usr/local/lib/libwebkit-1.0.so.0.0
#11 0x00000000497a2234 in WebCore::HTMLTokenizer::scriptExecution () from /usr/local/lib/libwebkit-1.0.so.0.0
#12 0x00000000497a3158 in WebCore::HTMLTokenizer::scriptHandler () from /usr/local/lib/libwebkit-1.0.so.0.0
#13 0x00000000497a3bf4 in WebCore::HTMLTokenizer::parseSpecial () from /usr/local/lib/libwebkit-1.0.so.0.0
#14 0x00000000497a62b8 in WebCore::HTMLTokenizer::parseTag () from /usr/local/lib/libwebkit-1.0.so.0.0
#15 0x00000000497a70d0 in WebCore::HTMLTokenizer::write () from /usr/local/lib/libwebkit-1.0.so.0.0
#16 0x00000000497cb518 in WebCore::FrameLoader::write () from /usr/local/lib/libwebkit-1.0.so.0.0
#17 0x00000000495c14b4 in WebKit::FrameLoaderClient::committedLoad () from /usr/local/lib/libwebkit-1.0.so.0.0
#18 0x00000000497c7398 in WebCore::FrameLoader::committedLoad () from /usr/local/lib/libwebkit-1.0.so.0.0
#19 0x00000000497beafc in WebCore::DocumentLoader::commitLoad () from /usr/local/lib/libwebkit-1.0.so.0.0
#20 0x00000000497f8010 in WebCore::ResourceLoader::didReceiveData () from /usr/local/lib/libwebkit-1.0.so.0.0
#21 0x00000000497f1ccc in WebCore::MainResourceLoader::didReceiveData () from /usr/local/lib/libwebkit-1.0.so.0.0
#22 0x00000000497f7944 in WebCore::ResourceLoader::didReceiveData () from /usr/local/lib/libwebkit-1.0.so.0.0
#23 0x0000000049967568 in WebCore::writeCallback () from /usr/local/lib/libwebkit-1.0.so.0.0
#24 0x0000000055888e68 in Curl_client_write () from /usr/local/lib/libcurl.so.10.0
#25 0x00000000558a3734 in inflate_stream () from /usr/local/lib/libcurl.so.10.0
#26 0x00000000558a3b34 in Curl_unencode_gzip_write () from /usr/local/lib/libcurl.so.10.0
#27 0x000000005589c2b8 in Curl_readwrite () from /usr/local/lib/libcurl.so.10.0
#28 0x00000000558a21e4 in multi_runsingle () from /usr/local/lib/libcurl.so.10.0
#29 0x00000000558a24e4 in curl_multi_perform () from /usr/local/lib/libcurl.so.10.0
#30 0x0000000049968250 in WebCore::ResourceHandleManager::downloadTimerCallback () from /usr/local/lib/libwebkit-1.0.so.0.0
#31 0x0000000049969228 in WebCore::Timer&lt;WebCore::ResourceHandleManager&gt;::fired () from /usr/local/lib/libwebkit-1.0.so.0.0
#32 0x0000000049894ee0 in WebCore::TimerBase::fireTimers () from /usr/local/lib/libwebkit-1.0.so.0.0
#33 0x0000000049894f7c in WebCore::TimerBase::sharedTimerFired () from /usr/local/lib/libwebkit-1.0.so.0.0
#34 0x0000000049aeb830 in WebCore::timeout_cb () from /usr/local/lib/libwebkit-1.0.so.0.0
#35 0x0000000056b4c098 in g_main_context_is_owner () from /usr/local/lib/libglib-2.0.so.1600.0
#36 0x0000000056b48798 in g_source_is_destroyed () from /usr/local/lib/libglib-2.0.so.1600.0
#37 0x0000000056b48798 in g_source_is_destroyed () from /usr/local/lib/libglib-2.0.so.1600.0
Previous frame identical to this frame (corrupt stack?)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85554</commentid>
    <comment_count>14</comment_count>
      <attachid>22185</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-07-09 11:38:24 -0700</bug_when>
    <thetext>Comment on attachment 22185
patches applied on openbsd

Thanks for submitting this patch for review, Landry!

In order for this patch to be integrated upstream into WebKit, you will need to define a new PLATFORM(OPENBSD) macro in JavaScriptCore/wtf/Platform.h and use that instead of removing/changing existing code.

I would also suggest filing a separate bug for the OpenBSD fixes that aren&apos;t covered by this bug, although that&apos;s up to you.

You may also want to consider setting up an OpenBSD buildbot that could be added to &lt;http://build.webkit.org/&gt; to make sure the build doesn&apos;t break on OpenBSD.  Please chat with &quot;bdash&quot; on the #webkit IRC channel on irc.freenode.net if you&apos;d like more information about this.

&gt;--- JavaScriptCore/kjs/JSImmediate.h.orig	Sat Jun 28 15:28:13 2008
&gt;+++ JavaScriptCore/kjs/JSImmediate.h	Sat Jun 28 15:38:46 2008
&gt;@@ -31,6 +31,22 @@
&gt; #include &lt;stdint.h&gt;
&gt; #include &lt;stdlib.h&gt;
&gt; 
&gt;+typedef union {
&gt;+    double value;
&gt;+    int64_t bits;
&gt;+} ieee_double_union;
&gt;+
&gt;+static __inline int signbit(double x)
&gt;+{
&gt;+    ieee_double_union mask;
&gt;+    mask.value = -0.0;
&gt;+    int64_t sign_bit = mask.bits;
&gt;+
&gt;+    ieee_double_union number;
&gt;+    number.value = x;
&gt;+    return (number.bits &amp; sign_bit) != 0;
&gt;+}
&gt;+
&gt; namespace KJS {
&gt; 
&gt; class ExecState;

Probably needs #if PLATFORM(OPENBSD)/#endif around this addition.

&gt;--- JavaScriptCore/kjs/collector.cpp.orig	Mon Jun 16 01:40:06 2008
&gt;+++ JavaScriptCore/kjs/collector.cpp	Sun Jul  6 22:54:31 2008
&gt;@@ -33,9 +33,7 @@
&gt; #include &lt;wtf/HashCountedSet.h&gt;
&gt; #include &lt;wtf/UnusedParam.h&gt;
&gt; 
&gt;-#if USE(MULTIPLE_THREADS)
&gt; #include &lt;pthread.h&gt;
&gt;-#endif
&gt; 
&gt; #if PLATFORM(DARWIN)
&gt; 
&gt;@@ -61,11 +59,7 @@
&gt; #include &lt;thread.h&gt;
&gt; #endif
&gt; 
&gt;-#if HAVE(PTHREAD_NP_H)
&gt; #include &lt;pthread_np.h&gt;
&gt;-#else
&gt;-#include &lt;pthread.h&gt;
&gt;-#endif
&gt; 
&gt; #endif
&gt; 

Instead of removing code here, you probably should define USE(MULTIPLE_THREADS) and HAVE(PTHREAD_NP_H) for PLATFORM(OPENBSD) in Platform.h.

&gt;@@ -332,27 +326,10 @@ static inline void* currentThreadStackBase()
&gt;     thr_stksegment(&amp;s);
&gt;     return s.ss_sp;
&gt; #elif PLATFORM(UNIX)
&gt;-    static void* stackBase = 0;
&gt;-    static size_t stackSize = 0;
&gt;-    static pthread_t stackThread;
&gt;     pthread_t thread = pthread_self();
&gt;-    if (stackBase == 0 || thread != stackThread) {
&gt;-        pthread_attr_t sattr;
&gt;-        pthread_attr_init(&amp;sattr);
&gt;-#if HAVE(PTHREAD_NP_H)
&gt;-        // e.g. on FreeBSD 5.4, neundorf@kde.org
&gt;-        pthread_attr_get_np(thread, &amp;sattr);
&gt;-#else
&gt;-        // FIXME: this function is non-portable; other POSIX systems may have different np alternatives
&gt;-        pthread_getattr_np(thread, &amp;sattr);
&gt;-#endif
&gt;-        int rc = pthread_attr_getstack(&amp;sattr, &amp;stackBase, &amp;stackSize);
&gt;-        (void)rc; // FIXME: Deal with error code somehow? Seems fatal.
&gt;-        ASSERT(stackBase);
&gt;-        pthread_attr_destroy(&amp;sattr);
&gt;-        stackThread = thread;
&gt;-    }
&gt;-    return static_cast&lt;char*&gt;(stackBase) + stackSize;
&gt;+    stack_t stack;
&gt;+    pthread_stackseg_np(thread, &amp;stack);
&gt;+    return stack.ss_sp;	
&gt; #else
&gt; #error Need a way to get the stack base on this platform
&gt; #endif

The OpenBSD code should be in its own #elif PLATFORM(OPENBSD) section before #elif PLATFORM(UNIX) rather than removing this code.

&gt;--- JavaScriptCore/kjs/date_object.cpp.orig	Mon Jun 16 01:40:06 2008
&gt;+++ JavaScriptCore/kjs/date_object.cpp	Sun Jul  6 19:00:35 2008
&gt;@@ -63,6 +63,8 @@
&gt;     #include &lt;CoreFoundation/CoreFoundation.h&gt;
&gt; #endif
&gt; 
&gt;+#define isfinite(x) finite(x)
&gt;+
&gt; using namespace WTF;
&gt; 
&gt; namespace KJS {

Needs #if PLATFORM(OPENBSD)/#endif wrapper.  (Or you may want to consider add this to a header file; perhaps config.h.)

&gt;--- JavaScriptCore/wtf/FastMalloc.cpp.orig	Tue Jul  8 23:21:56 2008
&gt;+++ JavaScriptCore/wtf/FastMalloc.cpp	Tue Jul  8 23:22:46 2008
&gt;@@ -1824,13 +1824,13 @@ static TCMalloc_Central_FreeListPadded central_cache[k
&gt; 
&gt; // Page-level allocator
&gt; static SpinLock pageheap_lock = SPINLOCK_INITIALIZER;
&gt;-static void* pageheap_memory[(sizeof(TCMalloc_PageHeap) + sizeof(void*) - 1) / sizeof(void*)];
&gt;+static uint64_t pageheap_memory[(sizeof(TCMalloc_PageHeap) + sizeof(uint64_t) - 1) / sizeof(uint64_t)];
&gt; static bool phinited = false;
&gt; 
&gt; // Avoid extra level of indirection by making &quot;pageheap&quot; be just an alias
&gt; // of pageheap_memory.
&gt; typedef union {
&gt;-    void* m_memory;
&gt;+    uint64_t* m_memory;
&gt;     TCMalloc_PageHeap* m_pageHeap;
&gt; } PageHeapUnion;
&gt; 
&gt;$OpenBSD$
&gt;--- JavaScriptCore/wtf/ListHashSet.h.orig	Tue Jul  8 23:23:01 2008
&gt;+++ JavaScriptCore/wtf/ListHashSet.h	Tue Jul  8 23:24:03 2008
&gt;@@ -122,7 +122,7 @@ namespace WTF {
&gt;             : m_freeList(pool())
&gt;             , m_isDoneWithInitialFreeList(false)
&gt;         { 
&gt;-            memset(m_pool.pool, 0, sizeof(m_pool.pool));
&gt;+            memset(m_pool, 0, sizeof(m_pool));
&gt;         }
&gt; 
&gt;         Node* allocate()
&gt;@@ -166,7 +166,7 @@ namespace WTF {
&gt;         }
&gt; 
&gt;     private:
&gt;-        Node* pool() { return reinterpret_cast&lt;Node*&gt;(m_pool.pool); }
&gt;+        Node* pool() { return reinterpret_cast&lt;Node*&gt;(m_pool); }
&gt;         Node* pastPool() { return pool() + m_poolSize; }
&gt; 
&gt;         bool inPool(Node* node)
&gt;@@ -177,10 +177,7 @@ namespace WTF {
&gt;         Node* m_freeList;
&gt;         bool m_isDoneWithInitialFreeList;
&gt;         static const size_t m_poolSize = 256;
&gt;-        union {
&gt;-            char pool[sizeof(Node) * m_poolSize];
&gt;-            double forAlignment;
&gt;-        } m_pool;
&gt;+        uint32_t m_pool[(sizeof(Node) * m_poolSize + sizeof(uint32_t) - 1) / sizeof(uint32_t)];
&gt;     };
&gt; 
&gt;     template&lt;typename ValueArg&gt; struct ListHashSetNode {

I think these changes should be reviewed in Mike&apos;s patch separately.

&gt;--- JavaScriptCore/wtf/Platform.h.orig	Tue Jul  8 23:24:28 2008
&gt;+++ JavaScriptCore/wtf/Platform.h	Tue Jul  8 23:25:54 2008
&gt;@@ -172,6 +172,12 @@
&gt; #define WTF_PLATFORM_X86_64 1
&gt; #endif
&gt; 
&gt;+/* PLATFORM(SPARC64) */
&gt;+#if defined(__sparc64__)
&gt;+#define WTF_PLATFORM_SPARC64 1
&gt;+#define WTF_PLATFORM_BIG_ENDIAN 1
&gt;+#endif
&gt;+
&gt; /* Compiler */
&gt; 
&gt; /* COMPILER(MSVC) */

This looks good!

&gt;--- JavaScriptCore/wtf/Threading.h.orig	Sun Jul  6 19:10:20 2008
&gt;+++ JavaScriptCore/wtf/Threading.h	Sun Jul  6 19:10:49 2008
&gt;@@ -168,26 +168,6 @@ class ThreadCondition : Noncopyable { (private)
&gt;     PlatformCondition m_condition;
&gt; };
&gt; 
&gt;-#if PLATFORM(WIN_OS) &amp;&amp; !COMPILER(MSVC7)
&gt;-#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
&gt;-
&gt;-inline void atomicIncrement(int volatile* addend) { InterlockedIncrement(reinterpret_cast&lt;long volatile*&gt;(addend)); }
&gt;-inline int atomicDecrement(int volatile* addend) { return InterlockedDecrement(reinterpret_cast&lt;long volatile*&gt;(addend)); }
&gt;-
&gt;-#elif PLATFORM(DARWIN)
&gt;-#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
&gt;-
&gt;-inline void atomicIncrement(int volatile* addend) { OSAtomicIncrement32Barrier(const_cast&lt;int*&gt;(addend)); }
&gt;-inline int atomicDecrement(int volatile* addend) { return OSAtomicDecrement32Barrier(const_cast&lt;int*&gt;(addend)); }
&gt;-
&gt;-#elif COMPILER(GCC)
&gt;-#define WTF_USE_LOCKFREE_THREADSAFESHARED 1
&gt;-
&gt;-inline void atomicIncrement(int volatile* addend) { __gnu_cxx::__atomic_add(addend, 1); }
&gt;-inline int atomicDecrement(int volatile* addend) { return __gnu_cxx::__exchange_and_add(addend, -1) - 1; }
&gt;-
&gt;-#endif
&gt;-
&gt; template&lt;class T&gt; class ThreadSafeShared : Noncopyable {
&gt; public:
&gt;     ThreadSafeShared(int initialRefCount = 1)

Should probably change #elif COMPILER(GCC) to:

#elif COMPILER(GCC) &amp;&amp; !PLATFORM(OPENBSD)

&gt;@@ -197,25 +177,17 @@ template&lt;class T&gt; class ThreadSafeShared : Noncopyable
&gt; 
&gt;     void ref()
&gt;     {
&gt;-#if USE(LOCKFREE_THREADSAFESHARED)
&gt;-        atomicIncrement(&amp;m_refCount);
&gt;-#else
&gt;         MutexLocker locker(m_mutex);
&gt;         ++m_refCount;
&gt;-#endif
&gt;     }
&gt; 
&gt;     void deref()
&gt;     {
&gt;-#if USE(LOCKFREE_THREADSAFESHARED)
&gt;-        if (atomicDecrement(&amp;m_refCount) &lt;= 0)
&gt;-#else
&gt;         {
&gt;             MutexLocker locker(m_mutex);
&gt;             --m_refCount;
&gt;         }
&gt;         if (m_refCount &lt;= 0)
&gt;-#endif
&gt;             delete static_cast&lt;T*&gt;(this);
&gt;     }
&gt; 
&gt;@@ -226,17 +198,13 @@ template&lt;class T&gt; class ThreadSafeShared : Noncopyable
&gt; 
&gt;     int refCount() const
&gt;     {
&gt;-#if !USE(LOCKFREE_THREADSAFESHARED)
&gt;         MutexLocker locker(m_mutex);
&gt;-#endif
&gt;         return static_cast&lt;int const volatile &amp;&gt;(m_refCount);
&gt;     }
&gt; 
&gt; private:
&gt;     int m_refCount;
&gt;-#if !USE(LOCKFREE_THREADSAFESHARED)
&gt;     mutable Mutex m_mutex;
&gt;-#endif
&gt; };
&gt; 
&gt; // This function must be called from the main thread. It is safe to call it repeatedly.

These changes aren&apos;t needed if you change the #eilf COMPILER(GCC) above.

&gt;--- JavaScriptCore/wtf/Vector.h.orig	Tue Jul  8 23:26:12 2008
&gt;+++ JavaScriptCore/wtf/Vector.h	Tue Jul  8 23:26:41 2008
&gt;@@ -386,8 +386,7 @@ namespace WTF {
&gt;         static const size_t m_inlineBufferSize = inlineCapacity * sizeof(T);
&gt;         T* inlineBuffer() { return reinterpret_cast&lt;T*&gt;(&amp;m_inlineBuffer); }
&gt; 
&gt;-        // FIXME: Nothing guarantees this buffer is appropriately aligned to hold objects of type T.
&gt;-        char m_inlineBuffer[m_inlineBufferSize];
&gt;+        uint64_t m_inlineBuffer[(m_inlineBufferSize + sizeof(uint64_t) - 1) / sizeof(uint64_t)];
&gt;     };
&gt; 
&gt;     template&lt;typename T, size_t inlineCapacity = 0&gt;

I think these changes should be reviewed in Mike&apos;s patch separately.

&gt;--- WebCore/html/CanvasRenderingContext2D.cpp.orig	Sat Jun 28 15:31:53 2008
&gt;+++ WebCore/html/CanvasRenderingContext2D.cpp	Sat Jun 28 15:33:07 2008
&gt;@@ -64,6 +64,8 @@
&gt; #include &lt;cairo.h&gt;
&gt; #endif
&gt; 
&gt;+#define isfinite(x) finite(x)
&gt;+
&gt; namespace WebCore {
&gt; 
&gt; using namespace HTMLNames;
&gt;$OpenBSD$
&gt;--- WebCore/platform/graphics/cairo/PathCairo.cpp.orig	Sat Jun 28 15:32:43 2008
&gt;+++ WebCore/platform/graphics/cairo/PathCairo.cpp	Sat Jun 28 15:32:55 2008
&gt;@@ -34,6 +34,8 @@
&gt; #include &lt;math.h&gt;
&gt; #include &lt;wtf/MathExtras.h&gt;
&gt; 
&gt;+#define isfinite(x) finite(x)
&gt;+
&gt; namespace WebCore {
&gt; 
&gt; Path::Path()
&gt;$OpenBSD$

Again, defining this in config.h means you don&apos;t have to define it everywhere.

&gt;--- WebCore/platform/text/AtomicString.cpp.orig	Tue Jul  8 23:27:07 2008
&gt;+++ WebCore/platform/text/AtomicString.cpp	Tue Jul  8 23:27:35 2008
&gt;@@ -94,7 +94,7 @@ static inline bool equal(StringImpl* string, const UCh
&gt;     if (string-&gt;length() != length)
&gt;         return false;
&gt; 
&gt;-#if PLATFORM(ARM)
&gt;+#if PLATFORM(ARM) || PLATFORM(SPARC64)
&gt;     const UChar* stringCharacters = string-&gt;characters();
&gt;     for (unsigned i = 0; i != length; ++i) {
&gt;         if (*stringCharacters++ != *characters++)

Looks good.

&gt;--- WebCore/platform/text/StringHash.h.orig	Tue Jul  8 23:27:50 2008
&gt;+++ WebCore/platform/text/StringHash.h	Tue Jul  8 23:29:14 2008
&gt;@@ -46,6 +46,15 @@ namespace WebCore {
&gt;             if (aLength != bLength)
&gt;                 return false;
&gt; 
&gt;+#if PLATFORM(ARM) || PLATFORM(SPARC64)
&gt;+            const UChar* aChars = a-&gt;characters();
&gt;+            const UChar* bChars = b-&gt;characters();
&gt;+            for (unsigned i = 0; i != aLength; ++i)
&gt;+                if (*aChars++ != *bChars++)
&gt;+                    return false;
&gt;+
&gt;+            return true;
&gt;+#else
&gt;             const uint32_t* aChars = reinterpret_cast&lt;const uint32_t*&gt;(a-&gt;characters());
&gt;             const uint32_t* bChars = reinterpret_cast&lt;const uint32_t*&gt;(b-&gt;characters());
&gt; 
&gt;@@ -58,6 +67,7 @@ namespace WebCore {
&gt;                 return false;
&gt; 
&gt;             return true;
&gt;+#endif
&gt;         }
&gt; 
&gt;         static unsigned hash(const RefPtr&lt;StringImpl&gt;&amp; key) { return key-&gt;hash(); }

It would be nice if this change were relative to Mike&apos;s patch.  If Mike doesn&apos;t mind, though, maybe these changes could be combined (if you&apos;re willing to resubmit the patch).

&gt;--- WebKitTools/DumpRenderTree/DumpRenderTree.h.orig	Sat Jun 28 15:34:07 2008
&gt;+++ WebKitTools/DumpRenderTree/DumpRenderTree.h	Sat Jun 28 15:34:15 2008
&gt;@@ -46,8 +46,6 @@ extern CFRunLoopTimerRef waitToDumpWatchdog;
&gt; 
&gt; #include &lt;string&gt;
&gt; 
&gt;-std::wstring urlSuitableForTestResult(const std::wstring&amp; url);
&gt;-
&gt; class LayoutTestController;
&gt; 
&gt; extern volatile bool done;

Needs #if !PLATFORM(OPENBSD)/#endif around the code (unless there is another macro that&apos;s used to ignore wide strings).

&gt;--- autogen.sh.orig	Tue Jul  1 18:02:03 2008
&gt;+++ autogen.sh	Tue Jul  1 18:02:25 2008
&gt;@@ -42,8 +42,6 @@ if test &quot;$DIE&quot; -eq 1; then
&gt;     exit 1
&gt; fi
&gt; 
&gt;-rm -rf $top_srcdir/autom4te.cache
&gt;-
&gt; touch README INSTALL
&gt; 
&gt; aclocal || exit $?
&gt;@@ -51,7 +49,3 @@ $LIBTOOLIZE --force || exit $?
&gt; autoheader || exit $?
&gt; automake --foreign --add-missing || exit $?
&gt; autoconf || exit $?
&gt;-
&gt;-cd $ORIGDIR || exit 1
&gt;-
&gt;-$srcdir/configure $AUTOGEN_CONFIGURE_ARGS &quot;$@&quot; || exit $?

You should probably confer with the Gtk porters to make sure these changes are okay (to the point where it may be beneficial to have a separate bug just for these autogen.sh changes).

Thanks again for the patch, Landry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85555</commentid>
    <comment_count>15</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-07-09 11:39:25 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 22185 [edit])
&gt; Thanks for submitting this patch for review, Landry!
&gt; 
&gt; In order for this patch to be integrated upstream into WebKit, you will need to
&gt; define a new PLATFORM(OPENBSD) macro in JavaScriptCore/wtf/Platform.h and use
&gt; that instead of removing/changing existing code.
&gt; 
&gt; I would also suggest filing a separate bug for the OpenBSD fixes that aren&apos;t
&gt; covered by this bug, although that&apos;s up to you.

I forget:  r- since we need a PLATFORM(OPENBSD) macro that will let you ignore code when compiling without removing it.  Thanks!
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85557</commentid>
    <comment_count>16</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-07-09 11:52:28 -0700</bug_when>
    <thetext>&gt; &gt;--- WebCore/platform/text/StringHash.h.orig	Tue Jul  8 23:27:50 2008
&gt; &gt;+++ WebCore/platform/text/StringHash.h	Tue Jul  8 23:29:14 2008
&gt; &gt;@@ -46,6 +46,15 @@ namespace WebCore {
&gt; &gt;             if (aLength != bLength)
&gt; &gt;                 return false;
&gt; &gt; 
&gt; &gt;+#if PLATFORM(ARM) || PLATFORM(SPARC64)
&gt; &gt;+            const UChar* aChars = a-&gt;characters();
&gt; &gt;+            const UChar* bChars = b-&gt;characters();
&gt; &gt;+            for (unsigned i = 0; i != aLength; ++i)
&gt; &gt;+                if (*aChars++ != *bChars++)
&gt; &gt;+                    return false;
&gt; &gt;+
&gt; &gt;+            return true;
&gt; &gt;+#else
&gt; &gt;             const uint32_t* aChars = reinterpret_cast&lt;const uint32_t*&gt;(a-&gt;characters());
&gt; &gt;             const uint32_t* bChars = reinterpret_cast&lt;const uint32_t*&gt;(b-&gt;characters());
&gt; &gt; 
&gt; &gt;@@ -58,6 +67,7 @@ namespace WebCore {
&gt; &gt;                 return false;
&gt; &gt; 
&gt; &gt;             return true;
&gt; &gt;+#endif
&gt; &gt;         }
&gt; &gt; 
&gt; &gt;         static unsigned hash(const RefPtr&lt;StringImpl&gt;&amp; key) { return key-&gt;hash(); }
&gt; 
&gt; It would be nice if this change were relative to Mike&apos;s patch.  If Mike doesn&apos;t
&gt; mind, though, maybe these changes could be combined (if you&apos;re willing to
&gt; resubmit the patch).

This one is in my patch, already ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85562</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-07-09 12:13:58 -0700</bug_when>
    <thetext>It might be better to split the patch into logical parts for review - some parts seem to be better understood than others, and there is no reason to keep sending it all back and forth for substantial discussion about its parts or coding style nitpicks (which we care about a lot).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85563</commentid>
    <comment_count>18</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-09 12:19:24 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; &gt;--- WebCore/platform/text/StringHash.h.orig	Tue Jul  8 23:27:50 2008
&gt; &gt; &gt;+++ WebCore/platform/text/StringHash.h	Tue Jul  8 23:29:14 2008
&gt; &gt; &gt;@@ -46,6 +46,15 @@ namespace WebCore {
&gt; &gt; &gt;             if (aLength != bLength)
&gt; &gt; &gt;                 return false;
&gt; &gt; &gt; 
&gt; &gt; &gt;+#if PLATFORM(ARM) || PLATFORM(SPARC64)
&gt; &gt; &gt;+            const UChar* aChars = a-&gt;characters();
&gt; &gt; &gt;+            const UChar* bChars = b-&gt;characters();
&gt; &gt; &gt;+            for (unsigned i = 0; i != aLength; ++i)
&gt; &gt; &gt;+                if (*aChars++ != *bChars++)
&gt; &gt; &gt;+                    return false;
&gt; &gt; &gt;+
&gt; &gt; &gt;+            return true;
&gt; &gt; &gt;+#else
&gt; &gt; &gt;             const uint32_t* aChars = reinterpret_cast&lt;const uint32_t*&gt;(a-&gt;characters());
&gt; &gt; &gt;             const uint32_t* bChars = reinterpret_cast&lt;const uint32_t*&gt;(b-&gt;characters());
&gt; &gt; &gt; 
&gt; &gt; &gt;@@ -58,6 +67,7 @@ namespace WebCore {
&gt; &gt; &gt;                 return false;
&gt; &gt; &gt; 
&gt; &gt; &gt;             return true;
&gt; &gt; &gt;+#endif
&gt; &gt; &gt;         }
&gt; &gt; &gt; 
&gt; &gt; &gt;         static unsigned hash(const RefPtr&lt;StringImpl&gt;&amp; key) { return key-&gt;hash(); }
&gt; &gt; 
&gt; &gt; It would be nice if this change were relative to Mike&apos;s patch.  If Mike doesn&apos;t
&gt; &gt; mind, though, maybe these changes could be combined (if you&apos;re willing to
&gt; &gt; resubmit the patch).
&gt; 
&gt; This one is in my patch, already ;)
&gt; 

Well, yours has SPARC not SPARC64. Maybe we want to differentiate those cases, dunno what&apos;s defined on debian/linux, but on OpenBSD __sparc__ and __sparc64__ are different architectures and don&apos;t share the same obligations. sparc64 is stricter (64-bits alignment, __sparc__ is for 32-bits cpus).

Btw, thanks david for your comments, my patches were a first shot to get webkit working fine, in then end i was clearly planning to have PLATFORM(OPENBSD) to get all the patches integrated. Beign able to compile webkit without patches would be awesome.

The autogen.sh patch is here for two things:
- $top_srcdir is not defined, hence systrace (used in the ports infrastructure) complains about it trying to erase a file in /
- generally, autogen.sh scripts only runs auto*hell (i even personally prefer if possible using autoreconf and avoid hand-rolled scripts), and configure is called afterwards. This way it fits better in the ports-tree infrastructure. (autogen is called in post-patch, the configure is called separately)

I&apos;ll open a separate bug for all OpenBSD-specific changes. But btw my &apos;new&apos; SIGBUS remains, i&apos;ll get more info with my --enable-debug next build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85564</commentid>
    <comment_count>19</comment_count>
    <who name="Mike Hommey">mh+webkit</who>
    <bug_when>2008-07-09 12:22:53 -0700</bug_when>
    <thetext>&gt; Well, yours has SPARC not SPARC64. Maybe we want to differentiate those cases,
&gt; dunno what&apos;s defined on debian/linux, but on OpenBSD __sparc__ and __sparc64__
&gt; are different architectures and don&apos;t share the same obligations. sparc64 is
&gt; stricter (64-bits alignment, __sparc__ is for 32-bits cpus).

For this specific case, that changes nothing. adding || PLATFORM(SPARC64) to my patch would be enough
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85566</commentid>
    <comment_count>20</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-09 12:52:54 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt;--- JavaScriptCore/kjs/JSImmediate.h.orig	Sat Jun 28 15:28:13 2008
&gt; &gt;+++ JavaScriptCore/kjs/JSImmediate.h	Sat Jun 28 15:38:46 2008
&gt; &gt;@@ -31,6 +31,22 @@
&gt; &gt; #include &lt;stdint.h&gt;
&gt; &gt; #include &lt;stdlib.h&gt;
&gt; &gt; 
&gt; &gt;+typedef union {
&gt; &gt;+    double value;
&gt; &gt;+    int64_t bits;
&gt; &gt;+} ieee_double_union;
&gt; &gt;+
&gt; &gt;+static __inline int signbit(double x)
&gt; &gt;+{
&gt; &gt;+    ieee_double_union mask;
&gt; &gt;+    mask.value = -0.0;
&gt; &gt;+    int64_t sign_bit = mask.bits;
&gt; &gt;+
&gt; &gt;+    ieee_double_union number;
&gt; &gt;+    number.value = x;
&gt; &gt;+    return (number.bits &amp; sign_bit) != 0;
&gt; &gt;+}
&gt; &gt;+
&gt; &gt; namespace KJS {
&gt; &gt; 
&gt; &gt; class ExecState;
&gt; 
&gt; Probably needs #if PLATFORM(OPENBSD)/#endif around this addition.

Last note on this patch (and #define isfinite) : a diff is floating around to add soon signbit and isfinite to libm in -CURRENT, so i don&apos;t think it&apos;s worth adding those things in webkit svn.
More to follow in the other bug report to come, sorry for hijacking with non-fully-related patches :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85639</commentid>
    <comment_count>21</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2008-07-10 14:01:07 -0700</bug_when>
    <thetext>Done, https://bugs.webkit.org/show_bug.cgi?id=19977 deals with the autogen.sh, and  https://bugs.webkit.org/show_bug.cgi?id=19975 has openbsd-specific patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86887</commentid>
    <comment_count>22</comment_count>
      <attachid>22105</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-24 11:51:31 -0700</bug_when>
    <thetext>Comment on attachment 22105
Patch I&apos;m applying to the debian package

#if PLATFORM(ARM) || PLATFORM(SPARC)
 50             const UChar* aChars = a-&gt;characters();
 51             const UChar* bChars = b-&gt;characters();
 52             for (unsigned i = 0; i != aLength; ++i)
 53                 if (*aChars++ != *bChars++)
 54                     return false;
 55 
 56             return true;
 57 #else

These really should be broken out into separate functions which are called one or the other depending on the platform.  Especially since the same code is already copy/paste in AtomicString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87302</commentid>
    <comment_count>23</comment_count>
      <attachid>22105</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-07-29 13:21:55 -0700</bug_when>
    <thetext>Comment on attachment 22105
Patch I&apos;m applying to the debian package

This patch a) breaks the build on Mac OS X, and b) will almost certainly lead to incorrect code generation due to the strict aliasing violations it introduces.

Here are some of the errors that are produced:

./wtf/Platform.h:198:5: error: &quot;__BYTE_ORDER&quot; is not defined
./wtf/Platform.h:198:21: error: &quot;__BIG_ENDIAN&quot; is not defined

./wtf/Vector.h: In member function &apos;T* WTF::VectorBuffer&lt;T, inlineCapacity&gt;::inlineBuffer() [with T = KJS::Register, long unsigned int inlineCapacity = 8ul]&apos;:
./wtf/Vector.h:345:   instantiated from &apos;WTF::VectorBuffer&lt;T, inlineCapacity&gt;::VectorBuffer() [with T = KJS::Register, long unsigned int inlineCapacity = 8ul]&apos;
./wtf/Vector.h:407:   instantiated from &apos;WTF::Vector&lt;T, inlineCapacity&gt;::Vector() [with T = KJS::Register, long unsigned int inlineCapacity = 8ul]&apos;
/Volumes/Data/Users/mrowe/Documents/Work/WebKit-git/OpenSource/JavaScriptCore/kjs/ArgList.h:49:   instantiated from here
./wtf/Vector.h:389: warning: dereferencing type-punned pointer will break strict-aliasing rules</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178214</commentid>
    <comment_count>24</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2010-01-07 09:21:19 -0800</bug_when>
    <thetext>For the record, webkit 1.1.18 still gets SIGBUS at startup on OpenBSD/sparc64,
Even though the original debian bug is closed..
The only relevant patch i apply to the source is the following : 

$OpenBSD: patch-JavaScriptCore_wtf_Platform_h,v 1.1 2009/10/14 11:17:58 landry Exp $
--- JavaScriptCore/wtf/Platform.h.orig  Tue Jan  5 17:07:27 2010
+++ JavaScriptCore/wtf/Platform.h       Tue Jan  5 23:03:33 2010
@@ -804,7 +804,7 @@
 #endif
 
 #if !defined(WTF_USE_JSVALUE64) &amp;&amp; !defined(WTF_USE_JSVALUE32) &amp;&amp; !defined(WTF_USE_JSVALUE32_64)
-#if (CPU(X86_64) &amp;&amp; (OS(UNIX) || OS(WINDOWS))) || CPU(IA64) || CPU(ALPHA)
+#if (CPU(X86_64) &amp;&amp; (OS(UNIX) || OS(WINDOWS))) || CPU(IA64) || CPU(ALPHA) || CPU(SPARC64)
 #define WTF_USE_JSVALUE64 1
 #elif CPU(ARM) || CPU(PPC64)
 #define WTF_USE_JSVALUE32 1

backtrace is still the same :

Program received signal SIGBUS, Bus error.
0x000000004befd180 in WTF::HashSet&lt;WebCore::StringImpl*, WebCore::StringHash, WTF::HashTraits&lt;WebCore::StringImpl*&gt; &gt;::add&lt;WebCore::UCharBuffer, WebCore::UCharBufferTranslator&gt; () from /usr/local/lib/libwebkit-1.0.so.1.0

(gdb) bt
#0  0x00000000423ed180 in WTF::HashSet&lt;WebCore::StringImpl*, WebCore::StringHash, WTF::HashTraits&lt;WebCore::StringImpl*&gt; &gt;::add&lt;WebCore::UCharBuffer, WebCore::UCharBufferTranslator&gt; () from /usr/local/lib/libwebkit-1.0.so.1.0
#1  0x00000000423ebff0 in WebCore::AtomicString::add () from /usr/local/lib/libwebkit-1.0.so.1.0
#2  0x000000004272c548 in cssyyparse () from /usr/local/lib/libwebkit-1.0.so.1.0
#3  0x00000000420a77a0 in WebCore::CSSParser::parseSheet () from /usr/local/lib/libwebkit-1.0.so.1.0
#4  0x00000000420fbcc8 in WebCore::CSSStyleSheet::parseString () from /usr/local/lib/libwebkit-1.0.so.1.0
#5  0x00000000420d1a84 in WebCore::parseUASheet () from /usr/local/lib/libwebkit-1.0.so.1.0
#6  0x00000000420d1b00 in WebCore::parseUASheet () from /usr/local/lib/libwebkit-1.0.so.1.0
#7  0x00000000420f1438 in WebCore::loadSimpleDefaultStyle () from /usr/local/lib/libwebkit-1.0.so.1.0
#8  0x00000000420f5490 in WebCore::CSSStyleSelector::CSSStyleSelector () from /usr/local/lib/libwebkit-1.0.so.1.0
#9  0x000000004212c4f0 in WebCore::Document::attach () from /usr/local/lib/libwebkit-1.0.so.1.0
#10 0x000000004235933c in WebCore::Frame::setDocument () from /usr/local/lib/libwebkit-1.0.so.1.0
#11 0x00000000422fcfb8 in WebCore::FrameLoader::begin () from /usr/local/lib/libwebkit-1.0.so.1.0
#12 0x00000000422fd6a4 in WebCore::FrameLoader::receivedFirstData () from /usr/local/lib/libwebkit-1.0.so.1.0
#13 0x00000000422fde04 in WebCore::FrameLoader::setEncoding () from /usr/local/lib/libwebkit-1.0.so.1.0
#14 0x0000000041eb532c in WebKit::FrameLoaderClient::committedLoad () from /usr/local/lib/libwebkit-1.0.so.1.0
#15 0x0000000041eb3248 in WebKit::FrameLoaderClient::finishedLoading () from /usr/local/lib/libwebkit-1.0.so.1.0
#16 0x00000000422fde74 in WebCore::FrameLoader::finishedLoadingDocument () from /usr/local/lib/libwebkit-1.0.so.1.0
#17 0x00000000422df930 in WebCore::DocumentLoader::finishedLoading () from /usr/local/lib/libwebkit-1.0.so.1.0
#18 0x00000000422fe97c in WebCore::FrameLoader::init () from /usr/local/lib/libwebkit-1.0.so.1.0
#19 0x0000000041ec2e78 in webkit_web_frame_new () from /usr/local/lib/libwebkit-1.0.so.1.0
#20 0x0000000041ed80e8 in webkit_web_view_init () from /usr/local/lib/libwebkit-1.0.so.1.0
#21 0x000000005291aca4 in g_type_create_instance () from /usr/local/lib/libgobject-2.0.so.1802.0
#22 0x0000000052902a58 in g_object_new_valist () from /usr/local/lib/libgobject-2.0.so.1802.0
#23 0x00000000529026b4 in g_object_newv () from /usr/local/lib/libgobject-2.0.so.1802.0
#24 0x00000000529029fc in g_object_new_valist () from /usr/local/lib/libgobject-2.0.so.1802.0
#25 0x0000000052901f18 in g_object_new () from /usr/local/lib/libgobject-2.0.so.1802.0
#26 0x0000000041ed04b4 in webkit_web_view_new () from /usr/local/lib/libwebkit-1.0.so.1.0

I&apos;d be happy to test anything to fix that.. and it takes 20h to build. Otherwise, webkit still builds &amp; works fine on OpenBSD/i386/amd64/powerpc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178232</commentid>
    <comment_count>25</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-07 09:41:49 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; For the record, webkit 1.1.18 still gets SIGBUS at startup on OpenBSD/sparc64,
&gt; I&apos;d be happy to test anything to fix that.. and it takes 20h to build.
&gt; Otherwise, webkit still builds &amp; works fine on OpenBSD/i386/amd64/powerpc.

You probably have to change two places in the code:

 In WebCore/platform/text/StringHash.h, change &quot;#if CPU(ARM) || CPU(SH4)&quot; to  &quot;#if CPU(ARM) || CPU(SH4) || CPU(SPARC64)&quot;

 In WebCore/platform/text/AtomicString.cpp, do the same thing.

As far as a patch goes, it should probably follow the advice of one of the comments:
  // FIXME: perhaps we should have a more abstract macro that indicates when
  // going 4 bytes at a time is unsafe
I can explain more if you want to submit a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178678</commentid>
    <comment_count>26</comment_count>
      <attachid>46136</attachid>
    <who name="Landry Breuil">landry</who>
    <bug_when>2010-01-08 08:06:05 -0800</bug_when>
    <thetext>Created attachment 46136
patches to run on OpenBSD/sparc64

I can confirm that with the attached patch, webkit 1.1.18 builds and renders pages in midori and surf on OpenBSD/sparc64 -current.(well, at least google and some other basic sites i tested on a ssh forwarded X)
If needed, i can compile a list of &quot;warning: cast from &apos;XX&apos; to &apos;YY&apos; increases required alignment of target type&quot; from the build logs..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255698</commentid>
    <comment_count>27</comment_count>
    <who name="Pacho Ramos">pachoramos1</who>
    <bug_when>2010-07-24 04:23:28 -0700</bug_when>
    <thetext>Patches no longer apply on 1.2.3, but I cannot test if they are still needed since I don&apos;t own any of affected systems (I only have x86 and amd64 just now)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255831</commentid>
    <comment_count>28</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2010-07-25 12:53:49 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; Patches no longer apply on 1.2.3, but I cannot test if they are still needed since I don&apos;t own any of affected systems (I only have x86 and amd64 just now)

Two of them are still needed, and can be found in our tree.
http://www.openbsd.org/cgi-bin/cvsweb/ports/www/webkit/patches/patch-WebCore_platform_text_AtomicString_cpp?rev=1.1
http://www.openbsd.org/cgi-bin/cvsweb/ports/www/webkit/patches/patch-WebCore_platform_text_StringHash_h?rev=1.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256034</commentid>
    <comment_count>29</comment_count>
      <attachid>62571</attachid>
    <who name="Pacho Ramos">pachoramos1</who>
    <bug_when>2010-07-26 07:20:21 -0700</bug_when>
    <thetext>Created attachment 62571
webkit-gtk-1.2.3-fix-pool-sparc.patch

We will finally use debian patch for this :-), thanks for taking care</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256223</commentid>
    <comment_count>30</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2010-07-26 14:00:58 -0700</bug_when>
    <thetext>I think the last patch is wrong in SPARC32 case. SPARC != SPARC64.

Isn&apos;t adding style fixes (missing braces) in the last hunk of a patch fixing a particular bug against webkit coding style/rules ?

I&apos;m pretty sure i tested those part of the debian patch (m_pool.pool + unrolling union) in the past, and they didn&apos;t fix the SIGBUS i was seeing. Will need to retest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258737</commentid>
    <comment_count>31</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-08-01 23:50:19 -0700</bug_when>
    <thetext>Everyone is still welcome to submit a patch for WebKit trunk, there is no need to maintain patch sets for various platforms.

Information on contributing patches is available at &lt;http://webkit.org/coding/contributing.html&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509368</commentid>
    <comment_count>32</comment_count>
    <who name="Pacho Ramos">pachoramos1</who>
    <bug_when>2011-11-26 09:21:12 -0800</bug_when>
    <thetext>As reported downstream at:
https://bugs.gentoo.org/show_bug.cgi?id=389963

webkitgtk still doesn&apos;t build on sparc and we haven&apos;t find any updated patch to fix this issue:
https://389963.bugs.gentoo.org/attachment.cgi?id=292115

Thanks for your help</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560395</commentid>
    <comment_count>33</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-20 15:09:39 -0800</bug_when>
    <thetext>*** Bug 20662 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560398</commentid>
    <comment_count>34</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-20 15:11:56 -0800</bug_when>
    <thetext>Pacho, the problem you see is being fixed by the patch I attached in bug 79045. The alignment problems, I think they&apos;re long gone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560399</commentid>
    <comment_count>35</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-02-20 15:12:32 -0800</bug_when>
    <thetext>For reference, this is the problem Pacho is talking about:

In file included from ./Source/JavaScriptCore/wtf/dtoa/double-conversion.h:31:0,
                 from Source/JavaScriptCore/wtf/dtoa.h:24,
                 from Source/JavaScriptCore/wtf/ThreadingPthreads.cpp:37:
./Source/JavaScriptCore/wtf/dtoa/utils.h:62:2: error: #error Target architecture was not detected as supported by Double-Conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560723</commentid>
    <comment_count>36</comment_count>
    <who name="Landry Breuil">landry</who>
    <bug_when>2012-02-21 00:42:56 -0800</bug_when>
    <thetext>I&apos;m not sure it should be marked as FIXED, since it still SIGBUS&apos;es at runtime (this is with midori/webkitgtk 1.6.1 on OpenBSD/sparc64):

Program received signal SIGBUS, Bus error.
0x0000000208ff9334 in JSC::Lexer::lex () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
(gdb) bt
#0  0x0000000208ff9334 in JSC::Lexer::lex () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#1  0x0000000208fc0380 in JSC::JSParser::JSParser () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#2  0x0000000208fc2aa0 in JSC::jsParse () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#3  0x00000002090008c4 in JSC::Parser::parse () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#4  0x000000020903c390 in JSC::Parser::parse&lt;JSC::ProgramNode&gt; () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#5  0x00000002090398b0 in JSC::ProgramExecutable::compileInternal () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#6  0x0000000208fb99c0 in JSC::Interpreter::execute () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#7  0x0000000209025338 in JSC::evaluate () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0
#8  0x0000000208f1e5a0 in JSEvaluateScript () from /usr/local/lib/libjavascriptcoregtk-1.0.so.0.0

So should i reopen, or file a new bug ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560910</commentid>
    <comment_count>37</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-21 08:42:22 -0800</bug_when>
    <thetext>Since the original report was about CSSParser, and this crash is in JSParser, a new bug is more appropriate.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21963</attachid>
            <date>2008-06-26 15:23:42 -0700</date>
            <delta_ts>2008-07-06 05:09:45 -0700</delta_ts>
            <desc>beginnings of a patch</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>2808</size>
            <attacher name="Mike Hommey">mh+webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcCBiL0phdmFTY3Jp
cHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCA4YWZjNzBkLi41ZTVhZDViIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAKKysrIGIvSmF2YVNjcmlwdENv
cmUvd3RmL0Zhc3RNYWxsb2MuY3BwCkBAIC0xODIwLDEzICsxODIwLDEzIEBAIHN0YXRpYyBUQ01h
bGxvY19DZW50cmFsX0ZyZWVMaXN0UGFkZGVkIGNlbnRyYWxfY2FjaGVba051bUNsYXNzZXNdOwog
CiAvLyBQYWdlLWxldmVsIGFsbG9jYXRvcgogc3RhdGljIFNwaW5Mb2NrIHBhZ2VoZWFwX2xvY2sg
PSBTUElOTE9DS19JTklUSUFMSVpFUjsKLXN0YXRpYyB2b2lkKiBwYWdlaGVhcF9tZW1vcnlbKHNp
emVvZihUQ01hbGxvY19QYWdlSGVhcCkgKyBzaXplb2Yodm9pZCopIC0gMSkgLyBzaXplb2Yodm9p
ZCopXTsKK3N0YXRpYyB1aW50NjRfdCBwYWdlaGVhcF9tZW1vcnlbKHNpemVvZihUQ01hbGxvY19Q
YWdlSGVhcCkgKyBzaXplb2YodWludDY0X3QpIC0gMSkgLyBzaXplb2YodWludDY0X3QpXTsKIHN0
YXRpYyBib29sIHBoaW5pdGVkID0gZmFsc2U7CiAKIC8vIEF2b2lkIGV4dHJhIGxldmVsIG9mIGlu
ZGlyZWN0aW9uIGJ5IG1ha2luZyAicGFnZWhlYXAiIGJlIGp1c3QgYW4gYWxpYXMKIC8vIG9mIHBh
Z2VoZWFwX21lbW9yeS4KIHR5cGVkZWYgdW5pb24gewotICAgIHZvaWQqIG1fbWVtb3J5OworICAg
IHVpbnQ2NF90KiBtX21lbW9yeTsKICAgICBUQ01hbGxvY19QYWdlSGVhcCogbV9wYWdlSGVhcDsK
IH0gUGFnZUhlYXBVbmlvbjsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAppbmRleCBiOWUyNTBjLi5lOTk1
ODk2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaAorKysgYi9KYXZh
U2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaApAQCAtMTcyLDYgKzE3MiwyMyBAQAogI2RlZmluZSBX
VEZfUExBVEZPUk1fWDg2XzY0IDEKICNlbmRpZgogCisvKiBQTEFURk9STShTUEFSQykgKi8KKyNp
ZiAgIGRlZmluZWQoX19zcGFyY19fKSBcCisgICB8fCBkZWZpbmVkKF9fc3BhcmMpIFwKKyNkZWZp
bmUgV1RGX1BMQVRGT1JNX1NQQVJDIDEKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0JJR19FTkRJQU4g
MQorI2VuZGlmCisKKy8qIEZvciB1bmRlZmluZWQgcGxhdGZvcm1zICovCisjaWYgIWRlZmluZWQo
V1RGX1BMQVRGT1JNX0JJR19FTkRJQU4pICYmICFkZWZpbmVkKFdURl9QTEFURk9STV9NSURETEVf
RU5ESUFOKQorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2lmIF9fQllURV9PUkRFUiA9PSBfX0JJ
R19FTkRJQU4KKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0JJR19FTkRJQU4gMQorI2VsaWYgIF9fQllU
RV9PUkRFUiA9PSBfX1BEUF9FTkRJQU4KKyNkZWZpbmUgV1RGX1BMQVRGT1JNX01JRERMRV9FTkRJ
QU4gMQorI2VuZGlmCisjZW5kaWYKKwogLyogQ29tcGlsZXIgKi8KIAogLyogQ09NUElMRVIoTVNW
QykgKi8KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBiL0phdmFTY3Jp
cHRDb3JlL3d0Zi9WZWN0b3IuaAppbmRleCBmMTcwYTE4Li5lMjUzOTgxIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rv
ci5oCkBAIC0zODMsOCArMzgzLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHN0YXRpYyBj
b25zdCBzaXplX3QgbV9pbmxpbmVCdWZmZXJTaXplID0gaW5saW5lQ2FwYWNpdHkgKiBzaXplb2Yo
VCk7CiAgICAgICAgIFQqIGlubGluZUJ1ZmZlcigpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
VCo+KCZtX2lubGluZUJ1ZmZlcik7IH0KIAotICAgICAgICAvLyBGSVhNRTogTm90aGluZyBndWFy
YW50ZWVzIHRoaXMgYnVmZmVyIGlzIGFwcHJvcHJpYXRlbHkgYWxpZ25lZCB0byBob2xkIG9iamVj
dHMgb2YgdHlwZSBULgotICAgICAgICBjaGFyIG1faW5saW5lQnVmZmVyW21faW5saW5lQnVmZmVy
U2l6ZV07CisgICAgICAgIHV1aW50NjRfdCBtX2lubGluZUJ1ZmZlclsobV9pbmxpbmVCdWZmZXJT
aXplICsgc2l6ZW9mKHVpbnQ2NF90KSAtIDEpIC8gc2l6ZW9mKHVpbnQ2NF90KV07CiAgICAgfTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9IDA+CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCmluZGV4IGQ5MDhkY2EuLjE0NjA5MDQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBlcXVhbChTdHJpbmdJbXBsKiBzdHJpbmcsIGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBsCiAgICAgaWYgKHN0cmluZy0+bGVuZ3RoKCkgIT0gbGVu
Z3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBQTEFURk9STShBUk0pCisjaWYgUExB
VEZPUk0oQVJNKSB8fCBQTEFURk9STShTUEFSQykKICAgICBjb25zdCBVQ2hhciogc3RyaW5nQ2hh
cmFjdGVycyA9IHN0cmluZy0+Y2hhcmFjdGVycygpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgIT0gbGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCpzdHJpbmdDaGFyYWN0ZXJzKysgIT0g
KmNoYXJhY3RlcnMrKykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22105</attachid>
            <date>2008-07-06 05:09:45 -0700</date>
            <delta_ts>2010-06-10 20:11:23 -0700</delta_ts>
            <desc>Patch I&apos;m applying to the debian package</desc>
            <filename>diff</filename>
            <type>text/plain</type>
            <size>5337</size>
            <attacher name="Mike Hommey">mh+webkit</attacher>
            
              <data encoding="base64">Y29tbWl0IDExYzIyMGY2ZDMxODk4YTdhMWRmYWZkNWQ5NjYxOWZlZmU2YmE1OTcKQXV0aG9yOiBN
aWtlIEhvbW1leSA8Z2xhbmRpdW1AZGViaWFuLm9yZz4KRGF0ZTogICBTdW4gSnVsIDYgMTA6Mzc6
MjggMjAwOCArMDIwMAoKICAgIEZpeGVkIHNvbWUgYWxpZ25tZW50IHByb2JsZW1zIG9uIHNwYXJj
CiAgICAKICAgIChhbmQgc29tZSB0aGF0IG1pZ2h0IG9jY3VyIG9uIGFybSwgdG9vKS4KICAgIAog
ICAgU29tZSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBhbGlnbm1lbnQgcmVtYWluLCBidXQgSSBk
b24ndCBrbm93IGlmIHRoZXkgYXJlCiAgICBhIHJlYWwgcHJvYmxlbSB5ZXQuCgpkaWZmIC0tZ2l0
IGEvSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwIGIvSmF2YVNjcmlwdENvcmUvd3Rm
L0Zhc3RNYWxsb2MuY3BwCmluZGV4IDFiYTEyOTAuLjdmMDg2NDYgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvRmFz
dE1hbGxvYy5jcHAKQEAgLTE4MjQsMTMgKzE4MjQsMTMgQEAgc3RhdGljIFRDTWFsbG9jX0NlbnRy
YWxfRnJlZUxpc3RQYWRkZWQgY2VudHJhbF9jYWNoZVtrTnVtQ2xhc3Nlc107CiAKIC8vIFBhZ2Ut
bGV2ZWwgYWxsb2NhdG9yCiBzdGF0aWMgU3BpbkxvY2sgcGFnZWhlYXBfbG9jayA9IFNQSU5MT0NL
X0lOSVRJQUxJWkVSOwotc3RhdGljIHZvaWQqIHBhZ2VoZWFwX21lbW9yeVsoc2l6ZW9mKFRDTWFs
bG9jX1BhZ2VIZWFwKSArIHNpemVvZih2b2lkKikgLSAxKSAvIHNpemVvZih2b2lkKildOworc3Rh
dGljIHVpbnQ2NF90IHBhZ2VoZWFwX21lbW9yeVsoc2l6ZW9mKFRDTWFsbG9jX1BhZ2VIZWFwKSAr
IHNpemVvZih1aW50NjRfdCkgLSAxKSAvIHNpemVvZih1aW50NjRfdCldOwogc3RhdGljIGJvb2wg
cGhpbml0ZWQgPSBmYWxzZTsKIAogLy8gQXZvaWQgZXh0cmEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24g
YnkgbWFraW5nICJwYWdlaGVhcCIgYmUganVzdCBhbiBhbGlhcwogLy8gb2YgcGFnZWhlYXBfbWVt
b3J5LgogdHlwZWRlZiB1bmlvbiB7Ci0gICAgdm9pZCogbV9tZW1vcnk7CisgICAgdWludDY0X3Qq
IG1fbWVtb3J5OwogICAgIFRDTWFsbG9jX1BhZ2VIZWFwKiBtX3BhZ2VIZWFwOwogfSBQYWdlSGVh
cFVuaW9uOwogCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvTGlzdEhhc2hTZXQuaCBi
L0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNldC5oCmluZGV4IDVhYTEzY2QuLmNlMDkyMjIg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNldC5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNldC5oCkBAIC0xMjIsNyArMTIyLDcgQEAgbmFtZXNwYWNl
IFdURiB7CiAgICAgICAgICAgICA6IG1fZnJlZUxpc3QocG9vbCgpKQogICAgICAgICAgICAgLCBt
X2lzRG9uZVdpdGhJbml0aWFsRnJlZUxpc3QoZmFsc2UpCiAgICAgICAgIHsgCi0gICAgICAgICAg
ICBtZW1zZXQobV9wb29sLnBvb2wsIDAsIHNpemVvZihtX3Bvb2wucG9vbCkpOworICAgICAgICAg
ICAgbWVtc2V0KG1fcG9vbCwgMCwgc2l6ZW9mKG1fcG9vbCkpOwogICAgICAgICB9CiAKICAgICAg
ICAgTm9kZSogYWxsb2NhdGUoKQpAQCAtMTY2LDcgKzE2Niw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBOb2RlKiBwb29sKCkgeyByZXR1cm4g
cmVpbnRlcnByZXRfY2FzdDxOb2RlKj4obV9wb29sLnBvb2wpOyB9CisgICAgICAgIE5vZGUqIHBv
b2woKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PE5vZGUqPihtX3Bvb2wpOyB9CiAgICAgICAg
IE5vZGUqIHBhc3RQb29sKCkgeyByZXR1cm4gcG9vbCgpICsgbV9wb29sU2l6ZTsgfQogCiAgICAg
ICAgIGJvb2wgaW5Qb29sKE5vZGUqIG5vZGUpCkBAIC0xNzcsMTAgKzE3Nyw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICBOb2RlKiBtX2ZyZWVMaXN0OwogICAgICAgICBib29sIG1faXNEb25l
V2l0aEluaXRpYWxGcmVlTGlzdDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtX3Bvb2xT
aXplID0gMjU2OwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBjaGFyIHBvb2xbc2l6ZW9m
KE5vZGUpICogbV9wb29sU2l6ZV07Ci0gICAgICAgICAgICBkb3VibGUgZm9yQWxpZ25tZW50Owot
ICAgICAgICB9IG1fcG9vbDsKKyAgICAgICAgdWludDMyX3QgbV9wb29sWyhzaXplb2YoTm9kZSkg
KiBtX3Bvb2xTaXplICsgc2l6ZW9mKHVpbnQzMl90KSAtIDEpIC8gc2l6ZW9mKHVpbnQzMl90KV07
CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnPiBzdHJ1Y3QgTGlzdEhh
c2hTZXROb2RlIHsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybS5oIGIv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKaW5kZXggZDkzNTA1Mi4uY2U0NGMyNSAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgKKysrIGIvSmF2YVNjcmlwdENv
cmUvd3RmL1BsYXRmb3JtLmgKQEAgLTE3Miw2ICsxNzIsMjMgQEAKICNkZWZpbmUgV1RGX1BMQVRG
T1JNX1g4Nl82NCAxCiAjZW5kaWYKIAorLyogUExBVEZPUk0oU1BBUkMpICovCisjaWYgICBkZWZp
bmVkKF9fc3BhcmNfXykgXAorICAgfHwgZGVmaW5lZChfX3NwYXJjKQorI2RlZmluZSBXVEZfUExB
VEZPUk1fU1BBUkMgMQorI2RlZmluZSBXVEZfUExBVEZPUk1fQklHX0VORElBTiAxCisjZW5kaWYK
KworLyogRm9yIHVuZGVmaW5lZCBwbGF0Zm9ybXMgKi8KKyNpZiAhZGVmaW5lZChXVEZfUExBVEZP
Uk1fQklHX0VORElBTikgJiYgIWRlZmluZWQoV1RGX1BMQVRGT1JNX01JRERMRV9FTkRJQU4pCisj
aW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaWYgX19CWVRFX09SREVSID09IF9fQklHX0VORElBTgor
I2RlZmluZSBXVEZfUExBVEZPUk1fQklHX0VORElBTiAxCisjZWxpZiAgX19CWVRFX09SREVSID09
IF9fUERQX0VORElBTgorI2RlZmluZSBXVEZfUExBVEZPUk1fTUlERExFX0VORElBTiAxCisjZW5k
aWYKKyNlbmRpZgorCiAvKiBDb21waWxlciAqLwogCiAvKiBDT01QSUxFUihNU1ZDKSAqLwpkaWZm
IC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rvci5oIGIvSmF2YVNjcmlwdENvcmUvd3Rm
L1ZlY3Rvci5oCmluZGV4IDQxYWIzMmMuLjY3MWIyMGIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3d0Zi9WZWN0b3IuaAorKysgYi9KYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yLmgKQEAgLTM4
Niw4ICszODYsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBtX2lubGluZUJ1ZmZlclNpemUgPSBpbmxpbmVDYXBhY2l0eSAqIHNpemVvZihUKTsKICAgICAg
ICAgVCogaW5saW5lQnVmZmVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxUKj4oJm1faW5s
aW5lQnVmZmVyKTsgfQogCi0gICAgICAgIC8vIEZJWE1FOiBOb3RoaW5nIGd1YXJhbnRlZXMgdGhp
cyBidWZmZXIgaXMgYXBwcm9wcmlhdGVseSBhbGlnbmVkIHRvIGhvbGQgb2JqZWN0cyBvZiB0eXBl
IFQuCi0gICAgICAgIGNoYXIgbV9pbmxpbmVCdWZmZXJbbV9pbmxpbmVCdWZmZXJTaXplXTsKKyAg
ICAgICAgdWludDY0X3QgbV9pbmxpbmVCdWZmZXJbKG1faW5saW5lQnVmZmVyU2l6ZSArIHNpemVv
Zih1aW50NjRfdCkgLSAxKSAvIHNpemVvZih1aW50NjRfdCldOwogICAgIH07CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHkgPSAwPgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0F0b21pY1N0cmluZy5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvQXRvbWljU3RyaW5nLmNwcAppbmRleCBkOTA4ZGNhLi4xNDYwOTA0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcApAQCAtOTQsNyArOTQsNyBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgZXF1YWwoU3RyaW5nSW1wbCogc3RyaW5nLCBjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgbAogICAgIGlmIChzdHJpbmctPmxlbmd0aCgpICE9IGxlbmd0aCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0jaWYgUExBVEZPUk0oQVJNKQorI2lmIFBMQVRGT1JNKEFSTSkg
fHwgUExBVEZPUk0oU1BBUkMpCiAgICAgY29uc3QgVUNoYXIqIHN0cmluZ0NoYXJhY3RlcnMgPSBz
dHJpbmctPmNoYXJhY3RlcnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IGxlbmd0
aDsgKytpKSB7CiAgICAgICAgIGlmICgqc3RyaW5nQ2hhcmFjdGVycysrICE9ICpjaGFyYWN0ZXJz
KyspCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaAppbmRleCAxZWJhOGM3Li44ZTE2YjUxIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU3RyaW5nSGFzaC5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgKQEAgLTQ2LDYgKzQ2LDE1IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgICAgIGlmIChhTGVuZ3RoICE9IGJMZW5ndGgpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisjaWYgUExBVEZPUk0oQVJNKSB8fCBQTEFURk9STShT
UEFSQykKKyAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBhQ2hhcnMgPSBhLT5jaGFyYWN0ZXJzKCk7
CisgICAgICAgICAgICBjb25zdCBVQ2hhciogYkNoYXJzID0gYi0+Y2hhcmFjdGVycygpOworICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBhTGVuZ3RoOyArK2kpCisgICAgICAg
ICAgICAgICAgaWYgKCphQ2hhcnMrKyAhPSAqYkNoYXJzKyspCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisjZWxzZQogICAgICAg
ICAgICAgY29uc3QgdWludDMyX3QqIGFDaGFycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDMyX3QqPihhLT5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGJD
aGFycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihiLT5jaGFyYWN0ZXJzKCkp
OwogCkBAIC01OCw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBSZWZQdHI8U3RyaW5n
SW1wbD4mIGtleSkgeyByZXR1cm4ga2V5LT5oYXNoKCk7IH0K
</data>
<flag name="review"
          id="9734"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22185</attachid>
            <date>2008-07-09 11:04:17 -0700</date>
            <delta_ts>2010-01-08 08:06:05 -0800</delta_ts>
            <desc>patches applied on openbsd</desc>
            <filename>all-patches.diff</filename>
            <type>text/plain</type>
            <size>10520</size>
            <attacher name="Landry Breuil">landry</attacher>
            
              <data encoding="base64">JE9wZW5CU0QkCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvSlNJbW1lZGlhdGUuaC5vcmlnCVNhdCBK
dW4gMjggMTU6Mjg6MTMgMjAwOAorKysgSmF2YVNjcmlwdENvcmUva2pzL0pTSW1tZWRpYXRlLmgJ
U2F0IEp1biAyOCAxNTozODo0NiAyMDA4CkBAIC0zMSw2ICszMSwyMiBAQAogI2luY2x1ZGUgPHN0
ZGludC5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCit0eXBlZGVmIHVuaW9uIHsKKyAgICBkb3Vi
bGUgdmFsdWU7CisgICAgaW50NjRfdCBiaXRzOworfSBpZWVlX2RvdWJsZV91bmlvbjsKKworc3Rh
dGljIF9faW5saW5lIGludCBzaWduYml0KGRvdWJsZSB4KQoreworICAgIGllZWVfZG91YmxlX3Vu
aW9uIG1hc2s7CisgICAgbWFzay52YWx1ZSA9IC0wLjA7CisgICAgaW50NjRfdCBzaWduX2JpdCA9
IG1hc2suYml0czsKKworICAgIGllZWVfZG91YmxlX3VuaW9uIG51bWJlcjsKKyAgICBudW1iZXIu
dmFsdWUgPSB4OworICAgIHJldHVybiAobnVtYmVyLmJpdHMgJiBzaWduX2JpdCkgIT0gMDsKK30K
KwogbmFtZXNwYWNlIEtKUyB7CiAKIGNsYXNzIEV4ZWNTdGF0ZTsKJE9wZW5CU0QkCi0tLSBKYXZh
U2NyaXB0Q29yZS9ranMvY29sbGVjdG9yLmNwcC5vcmlnCU1vbiBKdW4gMTYgMDE6NDA6MDYgMjAw
OAorKysgSmF2YVNjcmlwdENvcmUva2pzL2NvbGxlY3Rvci5jcHAJU3VuIEp1bCAgNiAyMjo1NDoz
MSAyMDA4CkBAIC0zMyw5ICszMyw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKLSNpZiBVU0UoTVVMVElQTEVfVEhSRUFE
UykKICNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKERBUldJTikK
IApAQCAtNjEsMTEgKzU5LDcgQEAKICNpbmNsdWRlIDx0aHJlYWQuaD4KICNlbmRpZgogCi0jaWYg
SEFWRShQVEhSRUFEX05QX0gpCiAjaW5jbHVkZSA8cHRocmVhZF9ucC5oPgotI2Vsc2UKLSNpbmNs
dWRlIDxwdGhyZWFkLmg+Ci0jZW5kaWYKIAogI2VuZGlmCiAKQEAgLTMzMiwyNyArMzI2LDEwIEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCogY3VycmVudFRocmVhZFN0YWNrQmFzZSgpCiAgICAgdGhyX3N0
a3NlZ21lbnQoJnMpOwogICAgIHJldHVybiBzLnNzX3NwOwogI2VsaWYgUExBVEZPUk0oVU5JWCkK
LSAgICBzdGF0aWMgdm9pZCogc3RhY2tCYXNlID0gMDsKLSAgICBzdGF0aWMgc2l6ZV90IHN0YWNr
U2l6ZSA9IDA7Ci0gICAgc3RhdGljIHB0aHJlYWRfdCBzdGFja1RocmVhZDsKICAgICBwdGhyZWFk
X3QgdGhyZWFkID0gcHRocmVhZF9zZWxmKCk7Ci0gICAgaWYgKHN0YWNrQmFzZSA9PSAwIHx8IHRo
cmVhZCAhPSBzdGFja1RocmVhZCkgewotICAgICAgICBwdGhyZWFkX2F0dHJfdCBzYXR0cjsKLSAg
ICAgICAgcHRocmVhZF9hdHRyX2luaXQoJnNhdHRyKTsKLSNpZiBIQVZFKFBUSFJFQURfTlBfSCkK
LSAgICAgICAgLy8gZS5nLiBvbiBGcmVlQlNEIDUuNCwgbmV1bmRvcmZAa2RlLm9yZwotICAgICAg
ICBwdGhyZWFkX2F0dHJfZ2V0X25wKHRocmVhZCwgJnNhdHRyKTsKLSNlbHNlCi0gICAgICAgIC8v
IEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGlzIG5vbi1wb3J0YWJsZTsgb3RoZXIgUE9TSVggc3lzdGVt
cyBtYXkgaGF2ZSBkaWZmZXJlbnQgbnAgYWx0ZXJuYXRpdmVzCi0gICAgICAgIHB0aHJlYWRfZ2V0
YXR0cl9ucCh0aHJlYWQsICZzYXR0cik7Ci0jZW5kaWYKLSAgICAgICAgaW50IHJjID0gcHRocmVh
ZF9hdHRyX2dldHN0YWNrKCZzYXR0ciwgJnN0YWNrQmFzZSwgJnN0YWNrU2l6ZSk7Ci0gICAgICAg
ICh2b2lkKXJjOyAvLyBGSVhNRTogRGVhbCB3aXRoIGVycm9yIGNvZGUgc29tZWhvdz8gU2VlbXMg
ZmF0YWwuCi0gICAgICAgIEFTU0VSVChzdGFja0Jhc2UpOwotICAgICAgICBwdGhyZWFkX2F0dHJf
ZGVzdHJveSgmc2F0dHIpOwotICAgICAgICBzdGFja1RocmVhZCA9IHRocmVhZDsKLSAgICB9Ci0g
ICAgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXIqPihzdGFja0Jhc2UpICsgc3RhY2tTaXplOworICAg
IHN0YWNrX3Qgc3RhY2s7CisgICAgcHRocmVhZF9zdGFja3NlZ19ucCh0aHJlYWQsICZzdGFjayk7
CisgICAgcmV0dXJuIHN0YWNrLnNzX3NwOwkKICNlbHNlCiAjZXJyb3IgTmVlZCBhIHdheSB0byBn
ZXQgdGhlIHN0YWNrIGJhc2Ugb24gdGhpcyBwbGF0Zm9ybQogI2VuZGlmCiRPcGVuQlNEJAotLS0g
SmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2JqZWN0LmNwcC5vcmlnCU1vbiBKdW4gMTYgMDE6NDA6
MDYgMjAwOAorKysgSmF2YVNjcmlwdENvcmUva2pzL2RhdGVfb2JqZWN0LmNwcAlTdW4gSnVsICA2
IDE5OjAwOjM1IDIwMDgKQEAgLTYzLDYgKzYzLDggQEAKICAgICAjaW5jbHVkZSA8Q29yZUZvdW5k
YXRpb24vQ29yZUZvdW5kYXRpb24uaD4KICNlbmRpZgogCisjZGVmaW5lIGlzZmluaXRlKHgpIGZp
bml0ZSh4KQorCiB1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgS0pTIHsKJE9wZW5C
U0QkCi0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxvYy5jcHAub3JpZwlUdWUgSnVsICA4
IDIzOjIxOjU2IDIwMDgKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAlUdWUg
SnVsICA4IDIzOjIyOjQ2IDIwMDgKQEAgLTE4MjQsMTMgKzE4MjQsMTMgQEAgc3RhdGljIFRDTWFs
bG9jX0NlbnRyYWxfRnJlZUxpc3RQYWRkZWQgY2VudHJhbF9jYWNoZVtrCiAKIC8vIFBhZ2UtbGV2
ZWwgYWxsb2NhdG9yCiBzdGF0aWMgU3BpbkxvY2sgcGFnZWhlYXBfbG9jayA9IFNQSU5MT0NLX0lO
SVRJQUxJWkVSOwotc3RhdGljIHZvaWQqIHBhZ2VoZWFwX21lbW9yeVsoc2l6ZW9mKFRDTWFsbG9j
X1BhZ2VIZWFwKSArIHNpemVvZih2b2lkKikgLSAxKSAvIHNpemVvZih2b2lkKildOworc3RhdGlj
IHVpbnQ2NF90IHBhZ2VoZWFwX21lbW9yeVsoc2l6ZW9mKFRDTWFsbG9jX1BhZ2VIZWFwKSArIHNp
emVvZih1aW50NjRfdCkgLSAxKSAvIHNpemVvZih1aW50NjRfdCldOwogc3RhdGljIGJvb2wgcGhp
bml0ZWQgPSBmYWxzZTsKIAogLy8gQXZvaWQgZXh0cmEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24gYnkg
bWFraW5nICJwYWdlaGVhcCIgYmUganVzdCBhbiBhbGlhcwogLy8gb2YgcGFnZWhlYXBfbWVtb3J5
LgogdHlwZWRlZiB1bmlvbiB7Ci0gICAgdm9pZCogbV9tZW1vcnk7CisgICAgdWludDY0X3QqIG1f
bWVtb3J5OwogICAgIFRDTWFsbG9jX1BhZ2VIZWFwKiBtX3BhZ2VIZWFwOwogfSBQYWdlSGVhcFVu
aW9uOwogCiRPcGVuQlNEJAotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RIYXNoU2V0Lmgub3Jp
ZwlUdWUgSnVsICA4IDIzOjIzOjAxIDIwMDgKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFz
aFNldC5oCVR1ZSBKdWwgIDggMjM6MjQ6MDMgMjAwOApAQCAtMTIyLDcgKzEyMiw3IEBAIG5hbWVz
cGFjZSBXVEYgewogICAgICAgICAgICAgOiBtX2ZyZWVMaXN0KHBvb2woKSkKICAgICAgICAgICAg
ICwgbV9pc0RvbmVXaXRoSW5pdGlhbEZyZWVMaXN0KGZhbHNlKQogICAgICAgICB7IAotICAgICAg
ICAgICAgbWVtc2V0KG1fcG9vbC5wb29sLCAwLCBzaXplb2YobV9wb29sLnBvb2wpKTsKKyAgICAg
ICAgICAgIG1lbXNldChtX3Bvb2wsIDAsIHNpemVvZihtX3Bvb2wpKTsKICAgICAgICAgfQogCiAg
ICAgICAgIE5vZGUqIGFsbG9jYXRlKCkKQEAgLTE2Niw3ICsxNjYsNyBAQCBuYW1lc3BhY2UgV1RG
IHsKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgTm9kZSogcG9vbCgpIHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Tm9kZSo+KG1fcG9vbC5wb29sKTsgfQorICAgICAgICBOb2Rl
KiBwb29sKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOb2RlKj4obV9wb29sKTsgfQogICAg
ICAgICBOb2RlKiBwYXN0UG9vbCgpIHsgcmV0dXJuIHBvb2woKSArIG1fcG9vbFNpemU7IH0KIAog
ICAgICAgICBib29sIGluUG9vbChOb2RlKiBub2RlKQpAQCAtMTc3LDEwICsxNzcsNyBAQCBuYW1l
c3BhY2UgV1RGIHsKICAgICAgICAgTm9kZSogbV9mcmVlTGlzdDsKICAgICAgICAgYm9vbCBtX2lz
RG9uZVdpdGhJbml0aWFsRnJlZUxpc3Q7CiAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbV9w
b29sU2l6ZSA9IDI1NjsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgY2hhciBwb29sW3Np
emVvZihOb2RlKSAqIG1fcG9vbFNpemVdOwotICAgICAgICAgICAgZG91YmxlIGZvckFsaWdubWVu
dDsKLSAgICAgICAgfSBtX3Bvb2w7CisgICAgICAgIHVpbnQzMl90IG1fcG9vbFsoc2l6ZW9mKE5v
ZGUpICogbV9wb29sU2l6ZSArIHNpemVvZih1aW50MzJfdCkgLSAxKSAvIHNpemVvZih1aW50MzJf
dCldOwogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBWYWx1ZUFyZz4gc3RydWN0IExp
c3RIYXNoU2V0Tm9kZSB7CiRPcGVuQlNEJAotLS0gSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3Jt
Lmgub3JpZwlUdWUgSnVsICA4IDIzOjI0OjI4IDIwMDgKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9Q
bGF0Zm9ybS5oCVR1ZSBKdWwgIDggMjM6MjU6NTQgMjAwOApAQCAtMTcyLDYgKzE3MiwxMiBAQAog
I2RlZmluZSBXVEZfUExBVEZPUk1fWDg2XzY0IDEKICNlbmRpZgogCisvKiBQTEFURk9STShTUEFS
QzY0KSAqLworI2lmIGRlZmluZWQoX19zcGFyYzY0X18pCisjZGVmaW5lIFdURl9QTEFURk9STV9T
UEFSQzY0IDEKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX0JJR19FTkRJQU4gMQorI2VuZGlmCisKIC8q
IENvbXBpbGVyICovCiAKIC8qIENPTVBJTEVSKE1TVkMpICovCiRPcGVuQlNEJAotLS0gSmF2YVNj
cmlwdENvcmUvd3RmL1RocmVhZGluZy5oLm9yaWcJU3VuIEp1bCAgNiAxOToxMDoyMCAyMDA4Cisr
KyBKYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmgJU3VuIEp1bCAgNiAxOToxMDo0OSAyMDA4
CkBAIC0xNjgsMjYgKzE2OCw2IEBAIGNsYXNzIFRocmVhZENvbmRpdGlvbiA6IE5vbmNvcHlhYmxl
IHsgKHByaXZhdGUpCiAgICAgUGxhdGZvcm1Db25kaXRpb24gbV9jb25kaXRpb247CiB9OwogCi0j
aWYgUExBVEZPUk0oV0lOX09TKSAmJiAhQ09NUElMRVIoTVNWQzcpCi0jZGVmaW5lIFdURl9VU0Vf
TE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCAxCi0KLWlubGluZSB2b2lkIGF0b21pY0luY3JlbWVu
dChpbnQgdm9sYXRpbGUqIGFkZGVuZCkgeyBJbnRlcmxvY2tlZEluY3JlbWVudChyZWludGVycHJl
dF9jYXN0PGxvbmcgdm9sYXRpbGUqPihhZGRlbmQpKTsgfQotaW5saW5lIGludCBhdG9taWNEZWNy
ZW1lbnQoaW50IHZvbGF0aWxlKiBhZGRlbmQpIHsgcmV0dXJuIEludGVybG9ja2VkRGVjcmVtZW50
KHJlaW50ZXJwcmV0X2Nhc3Q8bG9uZyB2b2xhdGlsZSo+KGFkZGVuZCkpOyB9Ci0KLSNlbGlmIFBM
QVRGT1JNKERBUldJTikKLSNkZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURTQUZFU0hBUkVE
IDEKLQotaW5saW5lIHZvaWQgYXRvbWljSW5jcmVtZW50KGludCB2b2xhdGlsZSogYWRkZW5kKSB7
IE9TQXRvbWljSW5jcmVtZW50MzJCYXJyaWVyKGNvbnN0X2Nhc3Q8aW50Kj4oYWRkZW5kKSk7IH0K
LWlubGluZSBpbnQgYXRvbWljRGVjcmVtZW50KGludCB2b2xhdGlsZSogYWRkZW5kKSB7IHJldHVy
biBPU0F0b21pY0RlY3JlbWVudDMyQmFycmllcihjb25zdF9jYXN0PGludCo+KGFkZGVuZCkpOyB9
Ci0KLSNlbGlmIENPTVBJTEVSKEdDQykKLSNkZWZpbmUgV1RGX1VTRV9MT0NLRlJFRV9USFJFQURT
QUZFU0hBUkVEIDEKLQotaW5saW5lIHZvaWQgYXRvbWljSW5jcmVtZW50KGludCB2b2xhdGlsZSog
YWRkZW5kKSB7IF9fZ251X2N4eDo6X19hdG9taWNfYWRkKGFkZGVuZCwgMSk7IH0KLWlubGluZSBp
bnQgYXRvbWljRGVjcmVtZW50KGludCB2b2xhdGlsZSogYWRkZW5kKSB7IHJldHVybiBfX2dudV9j
eHg6Ol9fZXhjaGFuZ2VfYW5kX2FkZChhZGRlbmQsIC0xKSAtIDE7IH0KLQotI2VuZGlmCi0KIHRl
bXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVTaGFyZWQgOiBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6CiAgICAgVGhyZWFkU2FmZVNoYXJlZChpbnQgaW5pdGlhbFJlZkNvdW50ID0gMSkKQEAg
LTE5NywyNSArMTc3LDE3IEBAIHRlbXBsYXRlPGNsYXNzIFQ+IGNsYXNzIFRocmVhZFNhZmVTaGFy
ZWQgOiBOb25jb3B5YWJsZQogCiAgICAgdm9pZCByZWYoKQogICAgIHsKLSNpZiBVU0UoTE9DS0ZS
RUVfVEhSRUFEU0FGRVNIQVJFRCkKLSAgICAgICAgYXRvbWljSW5jcmVtZW50KCZtX3JlZkNvdW50
KTsKLSNlbHNlCiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKICAgICAgICAg
KyttX3JlZkNvdW50OwotI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBkZXJlZigpCiAgICAgewot
I2lmIFVTRShMT0NLRlJFRV9USFJFQURTQUZFU0hBUkVEKQotICAgICAgICBpZiAoYXRvbWljRGVj
cmVtZW50KCZtX3JlZkNvdW50KSA8PSAwKQotI2Vsc2UKICAgICAgICAgewogICAgICAgICAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOwogICAgICAgICAgICAgLS1tX3JlZkNvdW50Owog
ICAgICAgICB9CiAgICAgICAgIGlmIChtX3JlZkNvdW50IDw9IDApCi0jZW5kaWYKICAgICAgICAg
ICAgIGRlbGV0ZSBzdGF0aWNfY2FzdDxUKj4odGhpcyk7CiAgICAgfQogCkBAIC0yMjYsMTcgKzE5
OCwxMyBAQCB0ZW1wbGF0ZTxjbGFzcyBUPiBjbGFzcyBUaHJlYWRTYWZlU2hhcmVkIDogTm9uY29w
eWFibGUKIAogICAgIGludCByZWZDb3VudCgpIGNvbnN0CiAgICAgewotI2lmICFVU0UoTE9DS0ZS
RUVfVEhSRUFEU0FGRVNIQVJFRCkKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OwotI2VuZGlmCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQgY29uc3Qgdm9sYXRpbGUg
Jj4obV9yZWZDb3VudCk7CiAgICAgfQogCiBwcml2YXRlOgogICAgIGludCBtX3JlZkNvdW50Owot
I2lmICFVU0UoTE9DS0ZSRUVfVEhSRUFEU0FGRVNIQVJFRCkKICAgICBtdXRhYmxlIE11dGV4IG1f
bXV0ZXg7Ci0jZW5kaWYKIH07CiAKIC8vIFRoaXMgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgZnJv
bSB0aGUgbWFpbiB0aHJlYWQuIEl0IGlzIHNhZmUgdG8gY2FsbCBpdCByZXBlYXRlZGx5LgokT3Bl
bkJTRCQKLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaC5vcmlnCVR1ZSBKdWwgIDggMjM6
MjY6MTIgMjAwOAorKysgSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rvci5oCVR1ZSBKdWwgIDggMjM6
MjY6NDEgMjAwOApAQCAtMzg2LDggKzM4Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBz
dGF0aWMgY29uc3Qgc2l6ZV90IG1faW5saW5lQnVmZmVyU2l6ZSA9IGlubGluZUNhcGFjaXR5ICog
c2l6ZW9mKFQpOwogICAgICAgICBUKiBpbmxpbmVCdWZmZXIoKSB7IHJldHVybiByZWludGVycHJl
dF9jYXN0PFQqPigmbV9pbmxpbmVCdWZmZXIpOyB9CiAKLSAgICAgICAgLy8gRklYTUU6IE5vdGhp
bmcgZ3VhcmFudGVlcyB0aGlzIGJ1ZmZlciBpcyBhcHByb3ByaWF0ZWx5IGFsaWduZWQgdG8gaG9s
ZCBvYmplY3RzIG9mIHR5cGUgVC4KLSAgICAgICAgY2hhciBtX2lubGluZUJ1ZmZlclttX2lubGlu
ZUJ1ZmZlclNpemVdOworICAgICAgICB1aW50NjRfdCBtX2lubGluZUJ1ZmZlclsobV9pbmxpbmVC
dWZmZXJTaXplICsgc2l6ZW9mKHVpbnQ2NF90KSAtIDEpIC8gc2l6ZW9mKHVpbnQ2NF90KV07CiAg
ICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSA9
IDA+CiRPcGVuQlNEJAotLS0gV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAub3JpZwlTYXQgSnVuIDI4IDE1OjMxOjUzIDIwMDgKKysrIFdlYkNvcmUvaHRtbC9DYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkQuY3BwCVNhdCBKdW4gMjggMTU6MzM6MDcgMjAwOApAQCAtNjQsNiAr
NjQsOCBAQAogI2luY2x1ZGUgPGNhaXJvLmg+CiAjZW5kaWYKIAorI2RlZmluZSBpc2Zpbml0ZSh4
KSBmaW5pdGUoeCkKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwokT3BlbkJTRCQKLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0
aENhaXJvLmNwcC5vcmlnCVNhdCBKdW4gMjggMTU6MzI6NDMgMjAwOAorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCVNhdCBKdW4gMjggMTU6MzI6NTUgMjAw
OApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgPG1hdGguaD4KICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCisjZGVmaW5lIGlzZmluaXRlKHgpIGZpbml0ZSh4KQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhdGg6OlBhdGgoKQokT3BlbkJTRCQKLS0tIFdlYkNvcmUvcGxhdGZvcm0v
dGV4dC9BdG9taWNTdHJpbmcuY3BwLm9yaWcJVHVlIEp1bCAgOCAyMzoyNzowNyAyMDA4CisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcAlUdWUgSnVsICA4IDIzOjI3OjM1
IDIwMDgKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGVxdWFsKFN0cmluZ0lt
cGwqIHN0cmluZywgY29uc3QgVUNoCiAgICAgaWYgKHN0cmluZy0+bGVuZ3RoKCkgIT0gbGVuZ3Ro
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSNpZiBQTEFURk9STShBUk0pCisjaWYgUExBVEZP
Uk0oQVJNKSB8fCBQTEFURk9STShTUEFSQzY0KQogICAgIGNvbnN0IFVDaGFyKiBzdHJpbmdDaGFy
YWN0ZXJzID0gc3RyaW5nLT5jaGFyYWN0ZXJzKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSAhPSBsZW5ndGg7ICsraSkgewogICAgICAgICBpZiAoKnN0cmluZ0NoYXJhY3RlcnMrKyAhPSAq
Y2hhcmFjdGVycysrKQokT3BlbkJTRCQKLS0tIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdI
YXNoLmgub3JpZwlUdWUgSnVsICA4IDIzOjI3OjUwIDIwMDgKKysrIFdlYkNvcmUvcGxhdGZvcm0v
dGV4dC9TdHJpbmdIYXNoLmgJVHVlIEp1bCAgOCAyMzoyOToxNCAyMDA4CkBAIC00Niw2ICs0Niwx
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBpZiAoYUxlbmd0aCAhPSBiTGVu
Z3RoKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAorI2lmIFBMQVRGT1JNKEFSTSkg
fHwgUExBVEZPUk0oU1BBUkM2NCkKKyAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBhQ2hhcnMgPSBh
LT5jaGFyYWN0ZXJzKCk7CisgICAgICAgICAgICBjb25zdCBVQ2hhciogYkNoYXJzID0gYi0+Y2hh
cmFjdGVycygpOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBhTGVuZ3Ro
OyArK2kpCisgICAgICAgICAgICAgICAgaWYgKCphQ2hhcnMrKyAhPSAqYkNoYXJzKyspCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisjZWxzZQogICAgICAgICAgICAgY29uc3QgdWludDMyX3QqIGFDaGFycyA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihhLT5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgY29u
c3QgdWludDMyX3QqIGJDaGFycyA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihi
LT5jaGFyYWN0ZXJzKCkpOwogCkBAIC01OCw2ICs2Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIHJldHVybiB0cnVl
OworI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBSZWZQdHI8U3RyaW5nSW1wbD4mIGtleSkgeyByZXR1cm4ga2V5LT5oYXNoKCk7IH0KJE9wZW5C
U0QkCi0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5oLm9yaWcJ
U2F0IEp1biAyOCAxNTozNDowNyAyMDA4CisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9E
dW1wUmVuZGVyVHJlZS5oCVNhdCBKdW4gMjggMTU6MzQ6MTUgMjAwOApAQCAtNDYsOCArNDYsNiBA
QCBleHRlcm4gQ0ZSdW5Mb29wVGltZXJSZWYgd2FpdFRvRHVtcFdhdGNoZG9nOwogCiAjaW5jbHVk
ZSA8c3RyaW5nPgogCi1zdGQ6OndzdHJpbmcgdXJsU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0
IHN0ZDo6d3N0cmluZyYgdXJsKTsKLQogY2xhc3MgTGF5b3V0VGVzdENvbnRyb2xsZXI7CiAKIGV4
dGVybiB2b2xhdGlsZSBib29sIGRvbmU7CiRPcGVuQlNEJAotLS0gYXV0b2dlbi5zaC5vcmlnCVR1
ZSBKdWwgIDEgMTg6MDI6MDMgMjAwOAorKysgYXV0b2dlbi5zaAlUdWUgSnVsICAxIDE4OjAyOjI1
IDIwMDgKQEAgLTQyLDggKzQyLDYgQEAgaWYgdGVzdCAiJERJRSIgLWVxIDE7IHRoZW4KICAgICBl
eGl0IDEKIGZpCiAKLXJtIC1yZiAkdG9wX3NyY2Rpci9hdXRvbTR0ZS5jYWNoZQotCiB0b3VjaCBS
RUFETUUgSU5TVEFMTAogCiBhY2xvY2FsIHx8IGV4aXQgJD8KQEAgLTUxLDcgKzQ5LDMgQEAgJExJ
QlRPT0xJWkUgLS1mb3JjZSB8fCBleGl0ICQ/CiBhdXRvaGVhZGVyIHx8IGV4aXQgJD8KIGF1dG9t
YWtlIC0tZm9yZWlnbiAtLWFkZC1taXNzaW5nIHx8IGV4aXQgJD8KIGF1dG9jb25mIHx8IGV4aXQg
JD8KLQotY2QgJE9SSUdESVIgfHwgZXhpdCAxCi0KLSRzcmNkaXIvY29uZmlndXJlICRBVVRPR0VO
X0NPTkZJR1VSRV9BUkdTICIkQCIgfHwgZXhpdCAkPwo=
</data>
<flag name="review"
          id="9764"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46136</attachid>
            <date>2010-01-08 08:06:05 -0800</date>
            <delta_ts>2010-01-08 08:06:05 -0800</delta_ts>
            <desc>patches to run on OpenBSD/sparc64</desc>
            <filename>webkit-sparc64-patches</filename>
            <type>text/plain</type>
            <size>1712</size>
            <attacher name="Landry Breuil">landry</attacher>
            
              <data encoding="base64">JE9wZW5CU0QkCi0tLSBXZWJDb3JlL3BsYXRmb3JtL3RleHQvQXRvbWljU3RyaW5nLmNwcC5vcmln
CVRodSBKYW4gIDcgMTg6NDQ6NDUgMjAxMAorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0F0b21p
Y1N0cmluZy5jcHAJVGh1IEphbiAgNyAxODo0NDo1OCAyMDEwCkBAIC0xMDUsNyArMTA1LDcgQEAg
c3RhdGljIGlubGluZSBib29sIGVxdWFsKFN0cmluZ0ltcGwqIHN0cmluZywgY29uc3QgVUNoCiAK
ICAgICAvLyBGSVhNRTogcGVyaGFwcyB3ZSBzaG91bGQgaGF2ZSBhIG1vcmUgYWJzdHJhY3QgbWFj
cm8gdGhhdCBpbmRpY2F0ZXMgd2hlbgogICAgIC8vIGdvaW5nIDQgYnl0ZXMgYXQgYSB0aW1lIGlz
IHVuc2FmZQotI2lmIENQVShBUk0pIHx8IENQVShTSDQpCisjaWYgQ1BVKEFSTSkgfHwgQ1BVKFNI
NCkgfHwgQ1BVKFNQQVJDNjQpCiAgICAgY29uc3QgVUNoYXIqIHN0cmluZ0NoYXJhY3RlcnMgPSBz
dHJpbmctPmNoYXJhY3RlcnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpICE9IGxlbmd0
aDsgKytpKSB7CiAgICAgICAgIGlmICgqc3RyaW5nQ2hhcmFjdGVycysrICE9ICpjaGFyYWN0ZXJz
KyspCiRPcGVuQlNEJAotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaC5vcmln
CVRodSBKYW4gIDcgMTg6NDQ6MjAgMjAxMAorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmlu
Z0hhc2guaAlUaHUgSmFuICA3IDE4OjQ0OjQwIDIwMTAKQEAgLTU0LDcgKzU0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgICAgICAvLyBGSVhNRTogcGVyaGFwcyB3ZSBzaG91bGQg
aGF2ZSBhIG1vcmUgYWJzdHJhY3QgbWFjcm8gdGhhdCBpbmRpY2F0ZXMgd2hlbgogICAgICAgICAg
ICAgLy8gZ29pbmcgNCBieXRlcyBhdCBhIHRpbWUgaXMgdW5zYWZlCi0jaWYgQ1BVKEFSTSkgfHwg
Q1BVKFNINCkKKyNpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KSB8fCBDUFUoU1BBUkM2NCkKICAgICAg
ICAgICAgIGNvbnN0IFVDaGFyKiBhQ2hhcnMgPSBhLT5jaGFyYWN0ZXJzKCk7CiAgICAgICAgICAg
ICBjb25zdCBVQ2hhciogYkNoYXJzID0gYi0+Y2hhcmFjdGVycygpOwogICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSAhPSBhTGVuZ3RoOyArK2kpIHsKJE9wZW5CU0Q6IHBhdGNoLUph
dmFTY3JpcHRDb3JlX3d0Zl9QbGF0Zm9ybV9oLHYgMS4xIDIwMDkvMTAvMTQgMTE6MTc6NTggbGFu
ZHJ5IEV4cCAkCi0tLSBKYXZhU2NyaXB0Q29yZS93dGYvUGxhdGZvcm0uaC5vcmlnCVR1ZSBKYW4g
IDUgMTc6MDc6MjcgMjAxMAorKysgSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtLmgJVHVlIEph
biAgNSAyMzowMzozMyAyMDEwCkBAIC04MDQsNyArODA0LDcgQEAKICNlbmRpZgogCiAjaWYgIWRl
ZmluZWQoV1RGX1VTRV9KU1ZBTFVFNjQpICYmICFkZWZpbmVkKFdURl9VU0VfSlNWQUxVRTMyKSAm
JiAhZGVmaW5lZChXVEZfVVNFX0pTVkFMVUUzMl82NCkKLSNpZiAoQ1BVKFg4Nl82NCkgJiYgKE9T
KFVOSVgpIHx8IE9TKFdJTkRPV1MpKSkgfHwgQ1BVKElBNjQpIHx8IENQVShBTFBIQSkKKyNpZiAo
Q1BVKFg4Nl82NCkgJiYgKE9TKFVOSVgpIHx8IE9TKFdJTkRPV1MpKSkgfHwgQ1BVKElBNjQpIHx8
IENQVShBTFBIQSkgfHwgQ1BVKFNQQVJDNjQpCiAjZGVmaW5lIFdURl9VU0VfSlNWQUxVRTY0IDEK
ICNlbGlmIENQVShBUk0pIHx8IENQVShQUEM2NCkKICNkZWZpbmUgV1RGX1VTRV9KU1ZBTFVFMzIg
MQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62571</attachid>
            <date>2010-07-26 07:20:21 -0700</date>
            <delta_ts>2010-07-26 07:20:21 -0700</delta_ts>
            <desc>webkit-gtk-1.2.3-fix-pool-sparc.patch</desc>
            <filename>02-pool-fixup-and-sparc-support.patch</filename>
            <type>text/plain</type>
            <size>2518</size>
            <attacher name="Pacho Ramos">pachoramos1</attacher>
            
              <data encoding="base64">RGVzY3JpcHRpb246IEZpeHVwIHBvb2wgYW5kIGFkZCBzcGFyYyBzdXBwb3J0Ci0tLSB3ZWJraXQt
MS4yLjEub3JpZy9KYXZhU2NyaXB0Q29yZS93dGYvTGlzdEhhc2hTZXQuaAorKysgd2Via2l0LTEu
Mi4xL0phdmFTY3JpcHRDb3JlL3d0Zi9MaXN0SGFzaFNldC5oCkBAIC0xMjcsNyArMTI3LDcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgICAgICA6IG1fZnJlZUxpc3QocG9vbCgpKQogICAgICAg
ICAgICAgLCBtX2lzRG9uZVdpdGhJbml0aWFsRnJlZUxpc3QoZmFsc2UpCiAgICAgICAgIHsgCi0g
ICAgICAgICAgICBtZW1zZXQobV9wb29sLnBvb2wsIDAsIHNpemVvZihtX3Bvb2wucG9vbCkpOwor
ICAgICAgICAgICAgbWVtc2V0KG1fcG9vbCwgMCwgc2l6ZW9mKG1fcG9vbCkpOwogICAgICAgICB9
CiAKICAgICAgICAgTm9kZSogYWxsb2NhdGUoKQpAQCAtMTcxLDcgKzE3MSw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBOb2RlKiBwb29sKCkg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxOb2RlKj4obV9wb29sLnBvb2wpOyB9CisgICAgICAg
IE5vZGUqIHBvb2woKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PE5vZGUqPihtX3Bvb2wpOyB9
CiAgICAgICAgIE5vZGUqIHBhc3RQb29sKCkgeyByZXR1cm4gcG9vbCgpICsgbV9wb29sU2l6ZTsg
fQogCiAgICAgICAgIGJvb2wgaW5Qb29sKE5vZGUqIG5vZGUpCkBAIC0xODIsMTAgKzE4Miw3IEBA
IG5hbWVzcGFjZSBXVEYgewogICAgICAgICBOb2RlKiBtX2ZyZWVMaXN0OwogICAgICAgICBib29s
IG1faXNEb25lV2l0aEluaXRpYWxGcmVlTGlzdDsKICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBtX3Bvb2xTaXplID0gMjU2OwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBjaGFyIHBv
b2xbc2l6ZW9mKE5vZGUpICogbV9wb29sU2l6ZV07Ci0gICAgICAgICAgICBkb3VibGUgZm9yQWxp
Z25tZW50OwotICAgICAgICB9IG1fcG9vbDsKKyAgICAgICAgdWludDMyX3QgbV9wb29sWyhzaXpl
b2YoTm9kZSkgKiBtX3Bvb2xTaXplICsgc2l6ZW9mKHVpbnQzMl90KSAtIDEpIC8gc2l6ZW9mKHVp
bnQzMl90KV07CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlQXJnPiBzdHJ1
Y3QgTGlzdEhhc2hTZXROb2RlIHsKLS0tIHdlYmtpdC0xLjIuMS5vcmlnL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9BdG9taWNTdHJpbmcuY3BwCisrKyB3ZWJraXQtMS4yLjEvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0F0b21pY1N0cmluZy5jcHAKQEAgLTEwMyw5ICsxMDMsOSBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgZXF1YWwoU3RyaW5nSW1wbCogc3RyCiAgICAgaWYgKHN0cmluZy0+bGVuZ3RoKCkgIT0g
bGVuZ3RoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBDUFUoQVJNKSB8fCBDUFUoU1BB
UkMpIHx8IENQVShTSDQpCiAgICAgLy8gRklYTUU6IHBlcmhhcHMgd2Ugc2hvdWxkIGhhdmUgYSBt
b3JlIGFic3RyYWN0IG1hY3JvIHRoYXQgaW5kaWNhdGVzIHdoZW4KICAgICAvLyBnb2luZyA0IGJ5
dGVzIGF0IGEgdGltZSBpcyB1bnNhZmUKLSNpZiBDUFUoQVJNKSB8fCBDUFUoU0g0KQogICAgIGNv
bnN0IFVDaGFyKiBzdHJpbmdDaGFyYWN0ZXJzID0gc3RyaW5nLT5jaGFyYWN0ZXJzKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSAhPSBsZW5ndGg7ICsraSkgewogICAgICAgICBpZiAoKnN0
cmluZ0NoYXJhY3RlcnMrKyAhPSAqY2hhcmFjdGVycysrKQotLS0gd2Via2l0LTEuMi4xLm9yaWcv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1N0cmluZ0hhc2guaAorKysgd2Via2l0LTEuMi4xL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9TdHJpbmdIYXNoLmgKQEAgLTU0LDEzICs1NCwxMyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBwZXJoYXBzIHdlIHNob3VsZCBo
YXZlIGEgbW9yZSBhYnN0cmFjdCBtYWNybyB0aGF0IGluZGljYXRlcyB3aGVuCiAgICAgICAgICAg
ICAvLyBnb2luZyA0IGJ5dGVzIGF0IGEgdGltZSBpcyB1bnNhZmUKLSNpZiBDUFUoQVJNKSB8fCBD
UFUoU0g0KQorI2lmIENQVShBUk0pIHx8IENQVShTUEFSQykgfHwgQ1BVKFNINCkKICAgICAgICAg
ICAgIGNvbnN0IFVDaGFyKiBhQ2hhcnMgPSBhLT5jaGFyYWN0ZXJzKCk7CiAgICAgICAgICAgICBj
b25zdCBVQ2hhciogYkNoYXJzID0gYi0+Y2hhcmFjdGVycygpOwotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSAhPSBhTGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgIT0gYUxlbmd0aDsgKytpKQogICAgICAgICAgICAgICAgIGlmICgqYUNo
YXJzKysgIT0gKmJDaGFycysrKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICB9CisKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2Vsc2UKICAgICAgICAg
ICAgIC8qIERvIGl0IDQtYnl0ZXMtYXQtYS10aW1lIG9uIGFyY2hpdGVjdHVyZXMgd2hlcmUgaXQn
cyBzYWZlICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>