Bug 93347 - -fvisibility=hidden leads to compilation failure
Summary: -fvisibility=hidden leads to compilation failure
Status: RESOLVED NOT A BUG
Alias: None
Product: kde
Classification: I don't know
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-16 10:00 UTC by Manuel Nickschas
Modified: 2004-11-16 20:24 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Manuel Nickschas 2004-11-16 10:00:27 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc (GCC) 3.4.3  (Gentoo Linux 3.4.3, ssp-3.4.3-0, pie-8.7.6.6) Patched by Gentoo, includes support for -fvisibility=hidden
OS:                Linux

Recent changes in CVS included support for new CXXFLAGS in the KDE build system, as it seems. In particular, configure now checks for -fvisibility=hidden and enables it, if it is supported. Unfortunately, at least on my system, many KDE modules don't compile with these flags, i.e. compilation bails out with linker errors. The most common one is "undefined reference to `kdemain'", but there are also other cases. I can't compile current CVS versions of arts, or all the KDE modules, not even kdelibs.

I am working with a Gentoo system, and tried compiling with gcc versions 3.4.2-r2 and 3.4.3. Apparently, the new CXXFLAGS are a feature of upcoming gcc versions and have been backported by the Gentoo team, but don't take my word for it...

Editing the Makefiles _after_ configure and removing -fvisibility=hidden from CXXFLAGS made KDE compile cleanly again, so I am certain that this flag causes the problem. Note that there is no way to tell configure to ignore this flag, even if the environment variable CXXFLAGS is set appropriately. configure will always add it if it finds a capable compiler, as it seems.

I am not sure if the fact that linking sometimes fails with this flag set is a KDE problem or a gcc problem; however, I tried compile some other applications with -fvisibility=hidden and there were no problems. In any case, this option in configure should be turned off until either gcc stabilizes or KDE is fixed, so people with patched versions of gcc can still compile KDE.

By the way, I noticed this problem first on Sunday Nov. 14; I compiled most of KDE that day without problems, and all of a sudden kdeutils failed, and after that any other module too, even those that compiled cleanly only hours ago, so I figure that the change in CVS causing this happened on that day.

Steps to reproduce:
* Get a compiler supporting -fvisibility=hidden
* Make sure that configure enables support for this flag
* Try to compile kdelibs (fails early on in DCOP)

-- Manuel
Comment 1 Stephan Binner 2004-11-16 20:24:16 UTC
Please don't report HEAD compilation errors. It's not supposed to compile. ;-)