#34605: kdelibs4 @4.8.2_0 __KDE_HAVE_GCC_VISIBILITY not defined in <prefix>/include/kdemacros.h --------------------------------+------------------------------------------- Reporter: iandw.au@… | Owner: sharky@… Type: defect | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.0.4 Keywords: | Port: kdelibs4 --------------------------------+------------------------------------------- Comment(by iandw.au@…): Replying to [comment:6 iandw.au@…]:
Looking at the CMake output for kdelibs4 @4.8.2_0, Macports is using the clang compiler to build kdelibs4 @4.8.2_0 and other ports that depend on it, such as kdegames4 @4.8.2_0. kdelibs4 configures its CMake macros accordingly, but they do not necessarily work when they encounter a different compiler. When I compile my own code with clang (KDE Games' SVN trunk and my contributions), everything works fine. However, OS X on my machine is configured with /usr/bin/c++ linked to a different compiler --- llvm-g++-4.2 --- and the KDE macros fail when I use that compiler, leading to linker errors.
I have also written about this on https://bugs.kde.org/show_bug.cgi?id=300429
This ticket can be closed now. See https://bugs.kde.org/show_bug.cgi?id=300429#c16 for the KDE build- system developer's detailed explanation of this problem. In summary, the KDE project is intending to use clang in the future, but its build macros are not ready for that yet. It is OK to build KDE modules and apps with clang as long as all of them are built with clang. The worst problem is that KDE will export many more symbols than necessary if you use clang, leading to unnecessarily large object files, but otherwise harmless. -- Ticket URL: <https://trac.macports.org/ticket/34605#comment:7> MacPorts <http://www.macports.org/> Ports system for Mac OS