<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>101542</bug_id>
          
          <creation_ts>2005-03-15 12:13:54 +0000</creation_ts>
          <short_desc>Q_EXPORT being no-op creates multiple copies of RTTI symbols w/hidden default visibility</short_desc>
          <delta_ts>2005-09-25 23:43:37 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>Unmaintained</classification>
          <product>kdelibs</product>
          <component>general</component>
          <version>3.4</version>
          <rep_platform>Gentoo Packages</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>NOR</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Marcus D. Hanwell">marcus</reporter>
          <assigned_to name="Dirk Mueller">mueller</assigned_to>
          <cc>danarmak</cc>
    
    <cc>dv5a</cc>
    
    <cc>flameeyes</cc>
    
    <cc>greg_g</cc>
    
    <cc>m.debruijne</cc>
    
    <cc>mueller</cc>
    
    <cc>rdieter</cc>
    
    <cc>thiago</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>40</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>324106</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus D. Hanwell">marcus</who>
    <bug_when>2005-03-15 12:13:54 +0000</bug_when>
    <thetext>Version:           2.3 (using KDE KDE 3.4.0)
Installed from:    Gentoo Packages
Compiler:          GCC 3.4.3 gcc version 3.4.3 20050110 (Gentoo Linux 3.4.3.20050110, ssp-3.4.3.20050110-0, pie-8.7.7)
OS:                Linux

kasteroids starts up and waits for L to be pressed to lauch a ship. When L or any other key is pressed it crashes. I did some debugging and managed to track down the cause of the problem and am attaching a small patch. The patch applies to toplevel.cpp and allows the game to work without any issues on amd64. I don&apos;t think it introduces any new problems on any other architectures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324107</commentid>
    <comment_count>1</comment_count>
      <attachid>10123</attachid>
    <who name="Marcus D. Hanwell">marcus</who>
    <bug_when>2005-03-15 12:15:26 +0000</bug_when>
    <thetext>Created attachment 10123
kasteroids-3.4.0-keypressfix.patch

Patch to stop segfault on amd64.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324112</commentid>
    <comment_count>2</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-15 12:24:20 +0000</bug_when>
    <thetext>This can&apos;t be right:
-	QKeyEvent *e = dynamic_cast&lt;QKeyEvent*&gt;(event);
+	QKeyEvent *e = (QKeyEvent*) event;

But it doesn&apos;t seem to be checking for e != 0 either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325945</commentid>
    <comment_count>3</comment_count>
      <attachid>10209</attachid>
    <who name="Marcus D. Hanwell">marcus</who>
    <bug_when>2005-03-20 13:57:51 +0000</bug_when>
    <thetext>Created attachment 10209
kasteroids-keypressfix.patch

This patch may be a little cleaner, and it works flawlessly on my x86 and amd64
machines. I am not certain why the dynamic_cast causes a segfault, but after
searching on this issue I found several places that support the use of
static_cast such as,

http://lists.trolltech.com/qt-interest/2002-10/msg00011.html

Please do let me know if this is the wrong way to fix this bug, it certainly
seems to work well and after researching the area a little it seems to be
technically sound.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325995</commentid>
    <comment_count>4</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-20 17:07:15 +0000</bug_when>
    <thetext>No, the patch is nonsense. If dynamic_cast doesn&apos;t work, static_cast should never work either</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326026</commentid>
    <comment_count>5</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-20 18:36:30 +0000</bug_when>
    <thetext>Your patch is correct, but the error is somewhere else. There&apos;s something seriously wrong up the chain of events.

Just to document our findings:

dynamic_cast&lt;QKeyEvent*&gt;(event) returns 0
typeid(event).name() returns &quot;P6QEvent&quot; (that is, &quot;QEvent *&quot;)

Those two mean the same thing: the C++ RTTI thinks the object is of type QEvent.

However, Qt&apos;s QEvent documentation says all QEvent::AccelOverride and QEvent::KeyRelease events carry objects of type QKeyEvent.

Maks also found the function that is generating those AccelOverride events (KAccelEventHandler::x11Event), but it also generates QKeyEvent objects.

Conclusion: we haven&apos;t found the source of the bug yet.

Is it possible to rebuild Qt, kdecore and kasteroids with debugging symbols?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327593</commentid>
    <comment_count>6</comment_count>
    <who name="Marcus D. Hanwell">marcus</who>
    <bug_when>2005-03-24 11:33:00 +0000</bug_when>
    <thetext>Just to add some more to our findings. The source to kasteroids has not changed between 3.3.2 and 3.4.0, yet kasteroids works when built with 3.3 and fails with 3.4. They are both built on the same system, with the same qt and toolchain/libs (Just recompiled KDE 3.3.2 here to confirm that). I have also had a few people confirm they are having this issue on Gentoo.

I am in the process of rebuilding with debugging symbols, but kdelibs is currently failing to link in my debugging chroot. I will hopefully get it sorted soon to give a better trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327731</commentid>
    <comment_count>7</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-24 17:20:25 +0000</bug_when>
    <thetext>I&apos;m having the same problem, too.
Just trying to get something more from it, trying to place an eventFilter on a simple QT or KDE app doesn&apos;t make it crazy and works perfectly well.

The test of typeid(event).name() is pointless, it returns &quot;P6QEvent&quot; as it should as that code tests the type of QEvent *event (the pointer, not the pointed variable). A more useful test is typeid(*event).name() which returns...

kasteroids: typeid(*event).name() == 9QKeyEvent

so it seems to be the right instance, rtti works, just dynamic_cast not...

This could be dued by some hackish thing done to allow AccelOverrides event to get ate by KApplication, but I honestly can think of anything which can break in such a way dynamic_cast...

No one on other arches has had this problem before?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327829</commentid>
    <comment_count>8</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-24 20:58:55 +0000</bug_when>
    <thetext>&gt; kasteroids: typeid(*event).name() == 9QKeyEvent

That&apos;s interesting. It means the type is correct, and only dynamic_cast is wrong.

That means the problem is in libstdc++ somewhere. It is also very likely Maks&apos; guess is right and it is caused by libfam.

So, can someone who has the problem test if:
a) attachment #10209 really solves the problem
b) recompiling without libfam makes the problem vanish

According to the Qt docs, attachment #10209 is correct. I think it should be applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327848</commentid>
    <comment_count>9</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-24 21:29:40 +0000</bug_when>
    <thetext>What&apos;s up with libfam?

Anyway. Attachment #10209 works fine for me, too. The logic is right, and it works. Also if i would do it differently (with a switch statement and a direct return process*), but only stylistics.

About libfam... i would do it but there are two main problems:
a) there&apos;s no fam useflag on kdelibs so I need to hack it and make sure that it will work with that hack
b) my development environment is my own environment, so i&apos;ll need to close some paid jobs before tinker too much with it, as i&apos;m not sure if kdelibs without fam will work decently at all

I&apos;ll start looking at it tonight.

P.S.: in my testcase application, dynamic_cast works fine, so there&apos;s something more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327859</commentid>
    <comment_count>10</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-24 21:44:12 +0000</bug_when>
    <thetext>libFAM is a C++ lib, and in some distros it is -statically- linked to libstdc++, occasionally causing two different versions of the C++ runtime to be around.  No idea whether it&apos;s relevant for gentoo at all..

But again, dcast failing is a very worrisome event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327914</commentid>
    <comment_count>11</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-24 23:58:28 +0000</bug_when>
    <thetext>Gentoo doesn&apos;t compile libfam statically, anyway.

I tried building kdelibs without libfam (so i&apos;ll be trying dnotify from now on, as I dislike fam, anyway ;) ), and nothing changes.

And just to say, i&apos;ve built everything in that system with the same compiler, i&apos;ve assembled it last week.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327924</commentid>
    <comment_count>12</comment_count>
      <attachid>10333</attachid>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-25 00:41:41 +0000</bug_when>
    <thetext>Created attachment 10333
Some debug output

If you have a moment, could you perhaps try this?
Also interesting is the output of:
 objdump -T `which kasteroids`|grep _ZTI9QKeyEvent

And does the crash happen if the app is started from a shell as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327926</commentid>
    <comment_count>13</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-25 00:49:14 +0000</bug_when>
    <thetext>Marksin you have found it!
dyn:0x2aaaabecd1c0 static:0x41dbf0
Only I don&apos;t know how to fix such a thing...

[yes i&apos;m running kasteroids from a shell, anyway.]
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327933</commentid>
    <comment_count>14</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-25 01:07:12 +0000</bug_when>
    <thetext>well, that&apos;s certainly related. Two follow ups:
1. What&apos;s the rough memory map like? big spread there.
2. What does the objdump return?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327936</commentid>
    <comment_count>15</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-25 01:24:33 +0000</bug_when>
    <thetext>I know quite nothing of amd64 tech specs, I&apos;ve bought this machine just last week and I haven&apos;t stopped bugfixing other things yet :)

the grep on objdump returns nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327939</commentid>
    <comment_count>16</comment_count>
      <attachid>10334</attachid>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-25 01:43:15 +0000</bug_when>
    <thetext>Created attachment 10334
evil workaround

OK, I think we (myself and Thiago) know what the issue is, and it&apos;s quite
nasty, symbol-visibility related bug, which goes quite outside the scope of
kasteroids. Could you please try the attached ultra-evil patch to see whether
it helps things?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327946</commentid>
    <comment_count>17</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-03-25 02:04:10 +0000</bug_when>
    <thetext>Still crashes and objdump says nothing new.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327951</commentid>
    <comment_count>18</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-25 02:52:24 +0000</bug_when>
    <thetext>Sorry, the hack was broken in many ways, but the analysis was sound. Here is the actual issue:

Since 3.4 KDE is built, when the compilers support it, with -fvisibility=hidden. This hides symbols not explicitly exported. 

RTTI support relies on there being a unique copy of the special TypeInfo node symbols. The linker is responsible for merging multiple copies. Unfortunately, if any are hidden, they get their own separate address. QKeyEvent has no out-of-line virtuals, so the vtable and the typeinfo node gets exported at every use. But there is no explicit export of those, so they are private --- Q_EXPORT is empty! Hence, Qt has one copy, kasteroid another, and kdecore the third of _ZTI9QKeyEvent, making dynamic_cast fail.

Full impact: unknown, but also affects IA-32.
Potential fix: -D of Q_EXPORT to set default visibility.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327952</commentid>
    <comment_count>19</comment_count>
      <attachid>10335</attachid>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-25 02:55:10 +0000</bug_when>
    <thetext>Created attachment 10335
Ugly hack that fixes the problem

Here&apos;s a better hack that works around the problem. It makes Q_EXPORT be
KDE_EXPORT and includes kdelibs_export.h in all KDE files.

This is bad because:
1) it&apos;s ugly
2) it&apos;s a hack
3) if you don&apos;t use the KDE admin dir, you won&apos;t get this fix

I haven&apos;t rebuilt my whole system with it to test. I have just verified that
kasteroids works fine if I rebuild kdecore/kaccel.cpp with it. I didn&apos;t even
rebuild the whole library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328248</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-03-25 21:33:44 +0000</bug_when>
    <thetext>imho systems using a hacked compiler with backported visibility support should just apply a fix to qt to define Q_EXPORT to something reasonable. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328259</commentid>
    <comment_count>21</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-03-25 21:59:26 +0000</bug_when>
    <thetext>I don&apos;t believe Q_EXPORT gets defined in Qt on UNIX even with the upcoming gcc-4.0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328262</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-03-25 22:09:46 +0000</bug_when>
    <thetext>no, it doesn&apos;t of course. its the job of the distributor who cared enough
to patch their gcc anyway (there is nobody using gcc 4.0, as it cannot even
compile KDE at all). 

we should maybe do a patch for our qt-copy, and configure check on it. I&apos;m afraid I missed the last Qt 3.3.x release by a few hours when I first implemented visibility support, so I didn&apos;t care to fix that issue so far. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328263</commentid>
    <comment_count>23</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-03-25 22:11:17 +0000</bug_when>
    <thetext>btw, there is nested visibility scope support in gcc 4.0, where you can &quot;reset&quot; visibility with a #pragma, to switch visibility scopes. 

with some tuning we could make use of that in kde (make sure that kdemacros is included after all qt and before all kde headers), but its not worth the trouble and very very fragile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328265</commentid>
    <comment_count>24</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-03-25 22:16:59 +0000</bug_when>
    <thetext>thinking about it, we have to do that anyway - for other C++ based libraries
that do not support visibility. libfam, taglib, and probably others. 

so some kind of KDE_RESET_VISIBILITY_TO_DEFAULT macro wrapping around all
non-kdelibs includes. 

boy that sucks. better ideas appreciated. 



</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328299</commentid>
    <comment_count>25</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-03-26 00:30:46 +0000</bug_when>
    <thetext>given that I&apos;m the one who introduced visibility support, I should
probably taking care of fixing this issue. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328358</commentid>
    <comment_count>26</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-26 06:05:05 +0000</bug_when>
    <thetext>Regarding Qt4: yes, it does have visibility support. It has even a configure check for that, which defines a macro for export visibility. So, Qt4 supports it out of the box.

I asked tronical today if there was any chance of that being backported to Qt3. His answer was, understandably, that new features into Qt3 are hardly a priority.

If it were just Qt, we could fix this problem with my acinclude patch (attachment #10335), which redefines Q_EXPORT to something useful. However, Dirk is right: this affects everything we include in our headers and source code.

C stuff isn&apos;t much of a problem since undefined symbols can&apos;t be of type hidden. But C++ special symbols (virtual tables, typeinfo nodes, names, implicit constructors or destructors, etc.) may be a problem as is the case here. 

However, please note this affects only a very restricted set of symbols: namely, those that have their virtual tables &amp; typeinfo structures being defined as weak symbols: polymorphic classes without any explicit virtual function. If a simple destructor were added to QKeyEvent, this problem would vanish.

If this weren&apos;t the case, we would have noticed bugs much sooner. I have personally been building KDE with hidden visibility for many months now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329401</commentid>
    <comment_count>27</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-03-29 14:07:37 +0000</bug_when>
    <thetext>I don&apos;t think this is the distributor&apos;s fault. I think it is ours.

We have broken the build even for gcc4 here, even though that&apos;s not released. It is the distributor&apos;s fault, however, that gcc4 problems have been &quot;backported&quot; into 3.4.

The proper fix, as I see it, is to remove the -fvisibility=hidden -fvisibility-inlines-hidden from the command-line. Every KDE header and source code should use the #pragmas to set the visibility around its own code.

Setting the visibility around other people&apos;s code is what caused this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333331</commentid>
    <comment_count>28</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-04-10 22:06:11 +0000</bug_when>
    <thetext>CVS commit by orlovich: 

Workaround the duplicated TI nodes issue due to hidden visibility in app here.

In vernacular: this makes kasteroids not crash, but doesn&apos;t fix the underlying issue.
CCBUG:101542


  M +1 -1      toplevel.cpp   1.77


--- kdegames/kasteroids/toplevel.cpp  #1.76:1.77
@@ -337,5 +337,5 @@ return; // remove this and the above whe
 bool KAstTopLevel::eventFilter( QObject* /* object */, QEvent *event )
 {
-        QKeyEvent *e = dynamic_cast&lt;QKeyEvent*&gt;(event);
+        QKeyEvent *e = static_cast&lt;QKeyEvent*&gt;(event);
         if (event-&gt;type() == QEvent::AccelOverride)
         {
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344941</commentid>
    <comment_count>29</comment_count>
    <who name="">danarmak</who>
    <bug_when>2005-05-24 23:27:32 +0000</bug_when>
    <thetext>&gt; The proper fix, as I see it, is to remove the -fvisibility=hidden
&gt; -fvisibility-inlines-hidden from the command-line. Every KDE header and
&gt; source code should use the #pragmas to set the visibility around its own
&gt; code. 

&gt; Setting the visibility around other people&apos;s code is what caused this
&gt; problem. 
So are you planning to do that, now or later? We (Gentoo) are going to disable
all hidden visibility in kde for 3.4.1 - a better safe than sorry policy...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355210</commentid>
    <comment_count>30</comment_count>
    <who name="Unai Garro">ugarro</who>
    <bug_when>2005-07-03 23:48:08 +0000</bug_when>
    <thetext>SVN commit 431311 by uga:

CCBUG:101542
Fixes showing the kpf applet menu. The dynamic cast of the event resulted in the same problem as in kasteroids (e=0)


 M  +1 -1      AppletItem.cpp  


--- trunk/KDE/kdenetwork/kpf/src/AppletItem.cpp #431310:431311
@@ -150,7 +150,7 @@
 
       case QEvent::MouseButtonPress:
         {
-          QMouseEvent * e = dynamic_cast&lt;QMouseEvent *&gt;(ev);
+          QMouseEvent * e = static_cast&lt;QMouseEvent *&gt;(ev);
 
           if (0 == e)
           {
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355223</commentid>
    <comment_count>31</comment_count>
    <who name="Maksim Orlovich">maksim</who>
    <bug_when>2005-07-04 00:48:53 +0000</bug_when>
    <thetext>Other instances affected by this bug:

kdegraphics/kghostview/fullscreenfilter.cpp:    if ( QKeyEvent* keyevent = dynamic_cast&lt;QKeyEvent*&gt;( ev ) ) {
kdegraphics/kghostview/fullscreenfilter.cpp:    if ( QMouseEvent* mouseevent = dynamic_cast&lt;QMouseEvent*&gt;( ev ) ) {

=&gt; Used for esc, Left-click handling in full-screen mode in KGhostView, but doesn&apos;t seem to be broken.

kdelibs/kstyles/plastik/plastik.cpp:            QMouseEvent *me = dynamic_cast&lt;QMouseEvent*&gt;(ev);

=&gt; Hover effect on tabs broken. Will workaround there, I guess

kdemultimedia/juk/statuslabel.cpp:    QMouseEvent *mouseEvent = dynamic_cast&lt;QMouseEvent *&gt;(e);

=&gt; Jumps to songs from clicking on statusbar broken. Worked around in the app.

kdesdk/kbabel/commonui/projectprefwidgets.cpp:        QKeyEvent *ke = dynamic_cast&lt;QKeyEvent*&gt;(e);

No clue on how to test this, never used kbabel.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356878</commentid>
    <comment_count>32</comment_count>
      <attachid>11751</attachid>
    <who name="Gregorio Guidi">greg_g</who>
    <bug_when>2005-07-10 23:53:59 +0000</bug_when>
    <thetext>Created attachment 11751
kde-visibility-switch.patch

Maybe you can apply the patch above until this situation is resolved?
It adds a configure switch (--enable-gcc-visibility/--disable-gcc-visibility)
to make visibility support optional, defaulting it to off.

Or you can just apply the patch and set the default to on to keep the current
(problematic) behavior, but still making it configurable.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356881</commentid>
    <comment_count>33</comment_count>
    <who name="Thiago Macieira">thiago</who>
    <bug_when>2005-07-10 23:59:13 +0000</bug_when>
    <thetext>That would make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358032</commentid>
    <comment_count>34</comment_count>
    <who name="Gregorio Guidi">greg_g</who>
    <bug_when>2005-07-15 09:41:21 +0000</bug_when>
    <thetext>Any other opinion?

Actually, I would be glad if the patch was applied to the 3.4 branch before 3.4.2 is tagged. Do you think it&apos;s possible?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358101</commentid>
    <comment_count>35</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-07-15 16:27:21 +0000</bug_when>
    <thetext>I&apos;m currently preparing a Qt patch and will disable visibility if Qt is not
patched. That should fix all the issues and is the easiest fix too. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358942</commentid>
    <comment_count>36</comment_count>
    <who name="Gregorio Guidi">greg_g</who>
    <bug_when>2005-07-19 12:32:21 +0000</bug_when>
    <thetext>&gt; I&apos;m currently preparing a Qt patch and will disable visibility if Qt is not 
&gt; patched. That should fix all the issues and is the easiest fix too.

Thinking about it, an issue with this approach is that it doesn&apos;t take other C++ libraries into account (comment #24)...

Is the Qt fix already available in SVN?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358945</commentid>
    <comment_count>37</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-07-19 12:38:28 +0000</bug_when>
    <thetext>no, I&apos;m still busy fixing the build system. 

Yes, other C++ libraries are not taken care of, but thats just requiring
1% of the source code to adjust, not 100%. 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358962</commentid>
    <comment_count>38</comment_count>
    <who name="Gregorio Guidi">greg_g</who>
    <bug_when>2005-07-19 14:02:21 +0000</bug_when>
    <thetext>Sorry to annoy everyone again then ;) but I guess a fix will not be available for 3.4.2, so applying the patch could really make sense at this point...

(on a side note for those interested, change AS_HELP_STRING into AC_HELP_STRING in the patch to make it compatible with autoconf-2.53)
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359238</commentid>
    <comment_count>39</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-07-20 15:45:17 +0000</bug_when>
    <thetext>SVN commit 436904 by mueller:

disable -fvisibility=hidden if Qt is not patched.
CCBUG: 101542


 M  +33 -10    acinclude.m4.in  
 M  +15 -0     configure.in.bot.end  


--- trunk/KDE/kde-common/admin/acinclude.m4.in #436903:436904
@@ -1643,8 +1643,8 @@
 
 If you did install kdelibs, then the Qt version that is picked up by
 this configure is not the same version you used to compile kdelibs. 
-The Qt Plugin installed by kdelibs is *ONLY* loadable if its the 
-same Qt version, compiled with the same compiler and the same Qt
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the 
+_same Qt version_, compiled with the _same compiler_ and the same Qt
 configuration settings.
 ])
 fi
@@ -3283,25 +3283,48 @@
   ]
 )
 
-AC_DEFUN([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY],
+AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
 [
-  if test &quot;$GXX&quot; = &quot;yes&quot;; then
+  AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
+
+  if test &quot;x$GXX&quot; = &quot;xyes&quot;; then
+    kde_have_gcc_visibility=no
     KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, 
     [
+      kde_have_gcc_visibility=yes
+      AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
+        [
+          AC_LANG_SAVE
+          AC_LANG_CPLUSPLUS
+
+          safe_CXXFLAGS=$CXXFLAGS
+          CXXFLAGS=&quot;$CXXFLAGS $all_includes&quot;
+
+          AC_TRY_COMPILE(
+          [
+#include &lt;qglobal.h&gt;
+#if Q_EXPORT - 0 != 0
+/* if this compiles, then Q_EXPORT is undefined */
+/* if Q_EXPORT is nonempty, this will break compilation */
+#endif
+          ], [/* elvis is alive */],
+          kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
+
+          CXXFLAGS=$safe_CXXFLAGS
+          AC_LANG_RESTORE
+        ]
+      )
+
+      if test x$kde_cv_val_qt_gcc_visibility_patched = &quot;xyes&quot;; then
         CXXFLAGS=&quot;$CXXFLAGS -fvisibility=hidden&quot;
         KDE_CHECK_VISIBILITY_GCC_BUG
-
         HAVE_GCC_VISIBILITY=1
         AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, &quot;$HAVE_GCC_VISIBILITY&quot;, [define to 1 if -fvisibility is supported])
+      fi
     ])
   fi
 ])
 
-AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
-[
-  AC_REQUIRE([KDE_CHECK_AND_ADD_HIDDEN_VISIBILITY])
-])
-
 AC_DEFUN([KDE_ADD_DEPENDENCIES],
 [
    [A]M_DEPENDENCIES(CC)
--- trunk/KDE/kde-common/admin/configure.in.bot.end #436903:436904
@@ -16,6 +16,21 @@
   fi
 fi
 
+if test x$GXX = &quot;xyes&quot; -a x$kde_have_gcc_visibility = &quot;xyes&quot; -a x$kde_cv_val_qt_gcc_visibility_patched = &quot;xno&quot;; then
+  echo &quot;&quot;
+  echo &quot;Your GCC supports symbol visibility, but the patch for Qt supporting visibility&quot;
+  echo &quot;was not included. Therefore, GCC symbol visibility support remains disabled.&quot;
+  echo &quot;&quot;
+  echo &quot;For better performance, consider including the Qt visibility supporting patch&quot;
+  echo &quot;located at:&quot;
+  echo &quot;&quot;
+  echo &quot;http://bugs.kde.org/show_bug.cgi?id=109386&quot;
+  echo &quot;&quot;
+  echo &quot;and recompile all of Qt and KDE. Note, this is entirely optional and&quot;
+  echo &quot;everything will continue to work just fine without it.&quot;
+  echo &quot;&quot;
+fi
+
 if test &quot;$all_tests&quot; = &quot;bad&quot;; then
   if test ! &quot;$cache_file&quot; = &quot;/dev/null&quot;; then
     echo &quot;&quot;
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359325</commentid>
    <comment_count>40</comment_count>
    <who name="Dirk Mueller">mueller</who>
    <bug_when>2005-07-21 04:24:16 +0000</bug_when>
    <thetext>fixed for KDE 3.4.2. </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376057</commentid>
    <comment_count>41</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-09-25 23:01:33 +0000</bug_when>
    <thetext>Don&apos;t think this is still fixed.

With Gentoo, GCC4, QT 3.3.5, arts CRASHES. Disabling visibility (removed KDE_ENABLE_VISIBILITY from configure.in.in) makes it work fine.

The same problem seems to be present on KUbuntu.

So the visibility is still an issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376073</commentid>
    <comment_count>42</comment_count>
    <who name="Carsten Lohrke">carstenlohrke</who>
    <bug_when>2005-09-25 23:35:43 +0000</bug_when>
    <thetext>Diego, have a look at http://bugs.kde.org/show_bug.cgi?id=109386</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>376074</commentid>
    <comment_count>43</comment_count>
    <who name="Diego Elio Pettenò">flameeyes</who>
    <bug_when>2005-09-25 23:43:37 +0000</bug_when>
    <thetext>Thanks, moving to that then.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10123</attachid>
            <date>2005-03-15 12:15:26 +0000</date>
            <delta_ts>2005-03-20 13:57:52 +0000</delta_ts>
            <desc>kasteroids-3.4.0-keypressfix.patch</desc>
            <filename>kasteroids-3.4.0-keypressfix.patch</filename>
            <type>text/plain</type>
            <size>974</size>
            <attacher name="Marcus D. Hanwell">marcus</attacher>
            
              <data encoding="base64">LS0tIGthc3Rlcm9pZHMvdG9wbGV2ZWwuY3BwCTIwMDUtMDMtMTUgMTA6NDc6MjQuMDAwMDAwMDAw
ICswMDAwCisrKyBrYXN0ZXJvaWRzL3RvcGxldmVsLmNwcAkyMDA1LTAzLTE1IDEwOjQ2OjAwLjAw
MDAwMDAwMCArMDAwMApAQCAtMzM2LDcgKzMzNiw3IEBACiAKIGJvb2wgS0FzdFRvcExldmVsOjpl
dmVudEZpbHRlciggUU9iamVjdCogLyogb2JqZWN0ICovLCBRRXZlbnQgKmV2ZW50ICkKIHsKLQlR
S2V5RXZlbnQgKmUgPSBkeW5hbWljX2Nhc3Q8UUtleUV2ZW50Kj4oZXZlbnQpOworCVFLZXlFdmVu
dCAqZSA9IChRS2V5RXZlbnQqKSBldmVudDsKIAlpZiAoZXZlbnQtPnR5cGUoKSA9PSBRRXZlbnQ6
OkFjY2VsT3ZlcnJpZGUpCiAJewogCQlpZiAocHJvY2Vzc0tleVByZXNzKGUpKSByZXR1cm4gdHJ1
ZTsKQEAgLTM1Nyw3ICszNTcsNyBAQAogICAgIFFNYXA8QWN0aW9uLCBLQWN0aW9uKj46Okl0ZXJh
dG9yIGl0ID0ga2V5Y29kZXMuYmVnaW4oKTsKICAgICBmb3IgKDsgaXQgIT0ga2V5Y29kZXMuZW5k
KCk7ICsraXQpCiAgICAgewotICAgICAgIGlmICggKCppdCktPnNob3J0Y3V0KCkuY29udGFpbnMo
a2V5KSApCisgICAgICAgaWYgKCAoKml0KS0+c2hvcnRjdXQoKS5jb250YWlucyhldmVudC0+a2V5
KCkpICkKICAgICAgICB7CiAgICAgICAgICAgIGEgPSBpdC5rZXkoKTsKICAgICAgICAgICAgYnJl
YWs7CkBAIC00MTAsNyArNDEwLDcgQEAKICAgICBRTWFwPEFjdGlvbiwgS0FjdGlvbio+OjpJdGVy
YXRvciBpdCA9IGtleWNvZGVzLmJlZ2luKCk7CiAgICAgZm9yICg7IGl0ICE9IGtleWNvZGVzLmVu
ZCgpOyArK2l0KQogICAgIHsKLSAgICAgICBpZiAoICgqaXQpLT5zaG9ydGN1dCgpLmNvbnRhaW5z
KGtleSkgKQorICAgICAgIGlmICggKCppdCktPnNob3J0Y3V0KCkuY29udGFpbnMoZXZlbnQtPmtl
eSgpKSApCiAgICAgICAgewogICAgICAgICAgICBhID0gaXQua2V5KCk7CiAgICAgICAgICAgIGJy
ZWFrOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10209</attachid>
            <date>2005-03-20 13:57:51 +0000</date>
            <delta_ts>2005-03-20 13:57:51 +0000</delta_ts>
            <desc>kasteroids-keypressfix.patch</desc>
            <filename>kasteroids.patch</filename>
            <type>text/plain</type>
            <size>679</size>
            <attacher name="Marcus D. Hanwell">marcus</attacher>
            
              <data encoding="base64">LS0tIGthc3Rlcm9pZHMvdG9wbGV2ZWwuY3BwCTIwMDQtMDctMTIgMjI6MTM6MDQuMDAwMDAwMDAw
ICswMTAwCisrKyBrYXN0ZXJvaWRzL3RvcGxldmVsLmNwcAkyMDA1LTAzLTIwIDEyOjQ5OjI5LjAw
MDAwMDAwMCArMDAwMApAQCAtMzM2LDE1ICszMzYsMTYgQEAKIAogYm9vbCBLQXN0VG9wTGV2ZWw6
OmV2ZW50RmlsdGVyKCBRT2JqZWN0KiAvKiBvYmplY3QgKi8sIFFFdmVudCAqZXZlbnQgKQogewot
CVFLZXlFdmVudCAqZSA9IGR5bmFtaWNfY2FzdDxRS2V5RXZlbnQqPihldmVudCk7CiAJaWYgKGV2
ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpBY2NlbE92ZXJyaWRlKQogCXsKLQkJaWYgKHByb2Nlc3NL
ZXlQcmVzcyhlKSkgcmV0dXJuIHRydWU7CisJCWlmIChwcm9jZXNzS2V5UHJlc3Moc3RhdGljX2Nh
c3Q8UUtleUV2ZW50ICo+KGV2ZW50KSkpCisJCQlyZXR1cm4gdHJ1ZTsKIAkJZWxzZSByZXR1cm4g
ZmFsc2U7CiAJfQogCWVsc2UgaWYgKGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpLZXlSZWxlYXNl
KQogCXsKLQkJaWYgKHByb2Nlc3NLZXlSZWxlYXNlKGUpKSByZXR1cm4gdHJ1ZTsKKwkJaWYgKHBy
b2Nlc3NLZXlSZWxlYXNlKHN0YXRpY19jYXN0PFFLZXlFdmVudCAqPihldmVudCkpKQorCQkJcmV0
dXJuIHRydWU7CiAJCWVsc2UgcmV0dXJuIGZhbHNlOwogCX0KIAlyZXR1cm4gZmFsc2U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10333</attachid>
            <date>2005-03-25 00:41:41 +0000</date>
            <delta_ts>2005-03-25 00:41:41 +0000</delta_ts>
            <desc>Some debug output</desc>
            <filename>trace.diff</filename>
            <type>text/plain</type>
            <size>720</size>
            <attacher name="Maksim Orlovich">maksim</attacher>
            
              <data encoding="base64">PyB0cmFjZS5kaWZmCkluZGV4OiB0b3BsZXZlbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2hv
bWUva2RlL2tkZWdhbWVzL2thc3Rlcm9pZHMvdG9wbGV2ZWwuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjc2CmRpZmYgLXUgLTMgLXAgLXIxLjc2IHRvcGxldmVsLmNwcAotLS0gdG9wbGV2ZWwu
Y3BwCTEyIEp1bCAyMDA0IDIxOjEzOjA0IC0wMDAwCTEuNzYKKysrIHRvcGxldmVsLmNwcAkyNCBN
YXIgMjAwNSAyMzozNzo0NyAtMDAwMApAQCAtMzM0LDExICszMzQsMTQgQEAgcmV0dXJuOyAvLyBy
ZW1vdmUgdGhpcyBhbmQgdGhlIGFib3ZlIHdoZQogI2VuZGlmCiB9CiAKKyNpbmNsdWRlIDx0eXBl
aW5mbz4KKwogYm9vbCBLQXN0VG9wTGV2ZWw6OmV2ZW50RmlsdGVyKCBRT2JqZWN0KiAvKiBvYmpl
Y3QgKi8sIFFFdmVudCAqZXZlbnQgKQogewogCVFLZXlFdmVudCAqZSA9IGR5bmFtaWNfY2FzdDxR
S2V5RXZlbnQqPihldmVudCk7CiAJaWYgKGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpBY2NlbE92
ZXJyaWRlKQogCXsKKyAgICAgIHFEZWJ1ZygiZHluOiVwIHN0YXRpYzolcCIsICZ0eXBlaWQoKmV2
ZW50KSwgJnR5cGVpZChRS2V5RXZlbnQpKTsKIAkJaWYgKHByb2Nlc3NLZXlQcmVzcyhlKSkgcmV0
dXJuIHRydWU7CiAJCWVsc2UgcmV0dXJuIGZhbHNlOwogCX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10334</attachid>
            <date>2005-03-25 01:43:15 +0000</date>
            <delta_ts>2005-03-25 02:55:11 +0000</delta_ts>
            <desc>evil workaround</desc>
            <filename>evil_workaround.diff</filename>
            <type>text/plain</type>
            <size>623</size>
            <attacher name="Maksim Orlovich">maksim</attacher>
            
              <data encoding="base64">SW5kZXg6IE1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL2tkZS9rZGVnYW1l
cy9rYXN0ZXJvaWRzL01ha2VmaWxlLmFtLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjUxCmRpZmYg
LXUgLTMgLXAgLXIxLjUxIE1ha2VmaWxlLmFtCi0tLSBNYWtlZmlsZS5hbQkxNyBKdWwgMjAwNCAx
MDo0NTowMSAtMDAwMAkxLjUxCisrKyBNYWtlZmlsZS5hbQkyNSBNYXIgMjAwNSAwMDo0MTowMSAt
MDAwMApAQCAtOCw3ICs4LDcgQEAga2FzdGVyb2lkc19TT1VSQ0VTID0gbWFpbi5jcHAgdmlldy5j
cHAgbAoga2FzdGVyb2lkc19MREZMQUdTID0gJChhbGxfbGlicmFyaWVzKSAkKEtERV9SUEFUSCkK
IGthc3Rlcm9pZHNfTERBREQgPSAkKExJQl9LREVHQU1FUykgLWxzb3VuZHNlcnZlcl9pZGwgLWxx
dG1jb3AKIGthc3Rlcm9pZHNfREVQRU5ERU5DSUVTID0gJChMSUJfS0RFR0FNRVNfREVQKQotCitr
YXN0ZXJvaWRzX0NYWExBR1MgPSAtRFFUX0VYUE9SVD1LREVfRVhQT1JUCiBwaWNzZGlyID0gJChr
ZGVfZGF0YWRpcikva2FzdGVyb2lkcy9zcHJpdGVzCiBwaWNzX0RBVEEgPSBiZy5wbmcKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10335</attachid>
            <date>2005-03-25 02:55:10 +0000</date>
            <delta_ts>2005-03-25 02:55:10 +0000</delta_ts>
            <desc>Ugly hack that fixes the problem</desc>
            <filename>acinclude-qt-visibility-fix.patch</filename>
            <type>text/plain</type>
            <size>755</size>
            <attacher name="Thiago Macieira">thiago</attacher>
            
              <data encoding="base64">SW5kZXg6IGFkbWluL2FjaW5jbHVkZS5tNC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9r
ZGUva2RlLWNvbW1vbi9hZG1pbi9hY2luY2x1ZGUubTQuaW4sdgpyZXRyaWV2aW5nIHJldmlzaW9u
IDIuNDk5LjYuMQpkaWZmIC11IC0zIC1wIC1yMi40OTkuNi4xIGFjaW5jbHVkZS5tNC5pbgotLS0g
YWRtaW4vYWNpbmNsdWRlLm00LmluCTggTWFyIDIwMDUgMTM6NDE6NDUgLTAwMDAJMi40OTkuNi4x
CisrKyBhZG1pbi9hY2luY2x1ZGUubTQuaW4JMjUgTWFyIDIwMDUgMDE6NDg6MzUgLTAwMDAKQEAg
LTMyNDcsNyArMzI0Nyw3IEBAIEFDX0RFRlVOKFtLREVfQ0hFQ0tfQU5EX0FERF9ISURERU5fVklT
SUIKICAgICBLREVfQ0hFQ0tfQ09NUElMRVJfRkxBRyhmbm8tY29tbW9uLCBbQ1hYRkxBR1M9IiRD
WFhGTEFHUyAtZm5vLWNvbW1vbiJdKQogICAgIEtERV9DSEVDS19DT01QSUxFUl9GTEFHKGZ2aXNp
YmlsaXR5PWhpZGRlbiwgCiAgICAgWwotICAgICAgICBDWFhGTEFHUz0iJENYWEZMQUdTIC1mdmlz
aWJpbGl0eT1oaWRkZW4iCisgICAgICAgIENYWEZMQUdTPSIkQ1hYRkxBR1MgLURRX0VYUE9SVD1L
REVfRVhQT1JUIC1pbmNsdWRlIGtkZWxpYnNfZXhwb3J0LmggLWZ2aXNpYmlsaXR5PWhpZGRlbiIK
ICAgICAgICAgS0RFX0NIRUNLX1ZJU0lCSUxJVFlfR0NDX0JVRwogCiAgICAgICAgIEhBVkVfR0ND
X1ZJU0lCSUxJVFk9MQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11751</attachid>
            <date>2005-07-10 23:53:59 +0000</date>
            <delta_ts>2005-07-10 23:53:59 +0000</delta_ts>
            <desc>kde-visibility-switch.patch</desc>
            <filename>kde-visibility-switch.patch</filename>
            <type>text/plain</type>
            <size>665</size>
            <attacher name="Gregorio Guidi">greg_g</attacher>
            
              <data encoding="base64">SW5kZXg6IGFkbWluL2FjaW5jbHVkZS5tNC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBhZG1pbi9hY2luY2x1
ZGUubTQuaW4JKHJldmlzaW9uIDQzMzI3MCkKKysrIGFkbWluL2FjaW5jbHVkZS5tNC5pbgkod29y
a2luZyBjb3B5KQpAQCAtMzI4MSw3ICszMjgxLDEyIEBACiAKIEFDX0RFRlVOKFtLREVfQ0hFQ0tf
QU5EX0FERF9ISURERU5fVklTSUJJTElUWV0sCiBbCi0gIGlmIHRlc3QgIiRHWFgiID0gInllcyI7
IHRoZW4KKyAgQUNfQVJHX0VOQUJMRShnY2MtdmlzaWJpbGl0eSwKKyAgICBbQVNfSEVMUF9TVFJJ
TkcoLS1lbmFibGUtZ2NjLXZpc2liaWxpdHksCisgICAgICBbZW5hYmxlIHN1cHBvcnQgZm9yIGdj
YyBzeW1ib2wgdmlzaWJpbGl0eSBAPDpAZGVmYXVsdD1kaXNhYmxlZEA6PkBdKV0sCisgICAgW10s
IGVuYWJsZV9nY2NfdmlzaWJpbGl0eT1ubykKKworICBpZiB0ZXN0ICJ4JGVuYWJsZV9nY2Nfdmlz
aWJpbGl0eSIgIT0geG5vICYmIHRlc3QgIiRHWFgiID0gInllcyI7IHRoZW4KICAgICBLREVfQ0hF
Q0tfQ09NUElMRVJfRkxBRyhmdmlzaWJpbGl0eT1oaWRkZW4sIAogICAgIFsKICAgICAgICAgQ1hY
RkxBR1M9IiRDWFhGTEFHUyAtZnZpc2liaWxpdHk9aGlkZGVuIgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>