[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Dealing with symbol visibility mismatches
From: Benjamin Reed <rangerrick () gmail ! com>
Date: 2009-05-26 14:48:44
Message-ID: 57eba2250905260748r1ad29a81v294696b3950a7b05 () mail ! gmail ! com
[Download RAW message or body]
I'm running into an interesting issue in Fink (on Mac OS X) with the
way KDE handles symbol visibility.
Fink is a source-based distribution (a la Gentoo) but it creates .deb
packages for actual package management.
I've run into a user who got his kdelibs from an apt-get repository
where an older compiler was used, and thus __KDE_HAVE_GCC_VISIBILITY
was set to 0. $prefix/include/kdemacros.h then does not define
__KDE_HAVE_GCC_VISIBILITY=1.
Now, he is attempting to build kdebase-runtime from source, and the
visibility test run during cmake is saying "yes, we support symbol
visibility," even though kdemacros.h does not turn on the KDE_EXPORT
macros, so we end up with errors like this:
[ 7%] Building CXX object kuiserver/CMakeFiles/kuiserver.dir/kuiserver_dummy.o
Linking CXX executable kuiserver
Undefined symbols:
"_kdemain", referenced from:
_main in kuiserver_dummy.o
_kdeinitmain in kuiserver_dummy.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
I'm trying to figure out the best way to fix this. The first thing I
tried was setting -D__KDE_HAVE_GCC_VISIBILITY:BOOL=FALSE but that
doesn't work, it gets overridden internally for some reason.
Does it seem correct to fix the visibility test to check for
kdemacros.h and short-circuit as failing if it's not defined?
--
Benjamin Reed a.k.a. Ranger Rick
Fink, KDE, and Mac OS X development
Blog: http://www.raccoonfink.com/
Music: http://music.raccoonfink.com/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic