<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>151008</bug_id>
          
          <creation_ts>2006-10-12 06:21 0000</creation_ts>
          <short_desc>KDE Hidden Visibility Broken in kde.eclass</short_desc>
          <delta_ts>2006-10-13 13:26:00 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>KDE</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>INVALID</resolution>
          <bug_file_loc>http://forums.gentoo.org/viewtopic.php?p=3640533#3640533</bug_file_loc>
          
          
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>roderick_greening@hotmail.com</reporter>
          <assigned_to>kde@gentoo.org</assigned_to>
          

      

      
          <long_desc isprivate="0">
            <who>roderick_greening@hotmail.com</who>
            <bug_when>2006-10-12 06:21:35 0000</bug_when>
            <thetext>Here&apos;s the kde.eclass relevant code:

                if hasq kdehiddenvisibility ${IUSE} &amp;&amp; use kdehiddenvisibility; then 
                     if [[ $(gcc-major-version)$(gcc-minor-version) -ge 41 ]]; then 
                         if [[ ${PN} != &quot;kdelibs&quot; &amp;&amp; ${PN} != &quot;arts&quot; ]] &amp;&amp; \ 
                             ! fgrep -q &quot;#define __KDE_HAVE_GCC_VISIBILITY&quot; &quot;${KDEDIR}/include/kdemacros.h&quot;; then 
 
                             eerror &quot;You asked to enable hidden visibility, but your kdelibs was&quot; 
                             eerror &quot;built without its support. Please rebuild kdelibs with the&quot; 
                             eerror &quot;kdehiddenvisibility useflag enabled.&quot; 
                             die &quot;kdelibs without hidden visibility&quot; 
                         else 
                             unset kde_cv_prog_cxx_fvisibility_hidden 
                             myconf=&quot;$myconf $(use_enable kdehiddenvisibility gcc-hidden-visibility)&quot; 
                         fi 
                     else 
                         eerror &quot;You&apos;re trying to enable hidden visibility, but&quot; 
                         eerror &quot;you are using an old GCC version. Hidden visibility&quot; 
                         eerror &quot;can be enabled only with GCC 4.1 and later.&quot; 
                     fi 
                 fi 

The problem is that it is looking for a define not present in the header file (nor any of the headers installed in that path for that matter):

&quot;#define __KDE_HAVE_GCC_VISIBILITY&quot; &quot;${KDEDIR}/include/kdemacros.h&quot;

THis needs to be corrected as this is preventing any KDE app from being built with hidden visibility.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>flameeyes@gentoo.org</who>
            <bug_when>2006-10-12 06:35:28 0000</bug_when>
            <thetext>Rebuild qt and kdelibs. If that define is not present, it means that you don&apos;t have Hidden Visibility enabled in kdelibs. The check is _perfectly_ valid on this.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>roderick_greening@hotmail.com</who>
            <bug_when>2006-10-12 08:11:22 0000</bug_when>
            <thetext>(In reply to comment #1)
&gt; Rebuild qt and kdelibs. If that define is not present, it means that you don&apos;t
&gt; have Hidden Visibility enabled in kdelibs. The check is _perfectly_ valid on
&gt; this.

Yeah. Looks like kdecore/kdemacros.h is simply missing the define on my system. No idea why it is missing as it was compiled correctly. Only thing I can figure is I have confcache installed and perhaps it broke something.

I am going to re-emerge and see if the kdemacros.h file correctly has the define.

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>flameeyes@gentoo.org</who>
            <bug_when>2006-10-12 08:28:10 0000</bug_when>
            <thetext>Remember to re-emerge qt first.
</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>roderick_greening@hotmail.com</who>
            <bug_when>2006-10-13 13:00:48 0000</bug_when>
            <thetext>No need ot re-emerge qt. Qt was compiled correctly with hidden visibility from previous kde install (at least in my case). I was simply upgrading.

As it turns out, confcache was definately the culprit here.

Recommend, if you use confcache, then disable it when emerging kdelibs (seemed safe to leave on after - at least for me).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>flameeyes@gentoo.org</who>
            <bug_when>2006-10-13 13:26:00 0000</bug_when>
            <thetext>confcache is not supported, definitely not supported.
</thetext>
          </long_desc>
      
    </bug>

</bugzilla>