<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Unreal Tournament (UT99) segfault on opengl init"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=108933#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Unreal Tournament (UT99) segfault on opengl init"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=108933">bug 108933</a>
              from <span class="vcard"><a class="email" href="mailto:iive@yahoo.com" title="iive@yahoo.com">iive@yahoo.com</a>
</span></b>
        <pre>(In reply to Gustaw Smolarczyk from <a href="show_bug.cgi?id=108933#c9">comment #9</a>)
<span class="quote">> The Core.so binary seems to export the __dynamic_cast symbol. It suggests
> that it has been statically linked with some old libstdc++ library that is
> incompatible with the most recent one.</span >

You solved the mystery!

It makes sense since this is the last called function in the disassembly.

I can confirm that the issue does go away after changing the string
"__dynamic_cast" to "__dynamicZcast" in Core.so .

Can you recommend a more clean way to remove that?


<span class="quote">> It might be impossible to run it correctly with any library written in C++.
> Mesa and LLVM usually avoid using RTTI, so the <iostream> might be the only
> thing that struggles. However, that is still a work-around. Some other
> driver might still not work correctly.</span >

How about versioning __dynamic_cast?
If it behaves differently in different version...

Another solution might be linking Mesa plugins statically to the g++ listdc++.
I'm not sure if this is supported atm. It would have been very useful when
Steam used older version.


<span class="quote">> I am not sure if removing the iostream sub-library usage from mesa is
> acceptable in general.</span >

Mesa3D is mostly written in C. There are few parts in C++ and it seems that the
files I've patched are the only ones using "iostream". Since iostream is used
only for debugging, it is feasible to disable it on release builds.

But as I've said before, I don't know what LLVM compiled with latest libstdc++
would do.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>