kdesdk cmake-bustage, kde4_add_plugin

Friedrich W. H. Kossebau kossebau at kde.org
Sun Jun 10 18:21:37 UTC 2012


Am Sonntag, 10. Juni 2012, 20:10:35 schrieb Friedrich W. H. Kossebau:
> Hi Rex,
> 
> Am Sonntag, 10. Juni 2012, 13:00:37 schrieb Rex Dieter:
> > On 06/10/2012 12:41 PM, Rex Dieter wrote:
> > > Seems some odd cmake borkage is going on trying to build kdesdk-4.8.90
> > > (4.8.80 suffered the same, but I hadn't noticed then), in that any
> > > modules using kde4_add_plugin seem to not get compiled with -fPIC
> > > properly, and fail linking, for example,
> > > 
> > > dolphin-plugins:
> > > /usr/bin/ld:
> > > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o: relocation
> > > R_X86_64_32 against `_ZN17FileViewSvnPlugin16staticMetaObjectE' can not
> > > be used when making a shared object; recompile with -fPIC
> > 
> > ...
> > 
> > > blindly replacing kdesdk toplevel CMakeLists.txt with that from 4.8.4
> > > makes things happy again.
> > 
> > So, more data:
> > 
> > ... = a bunch of -I... includes not relevant,
> > 
> > 4.8.4 gets compiled as:
> > 
> > cd .../kdesdk-4.8.4/build/dolphin-plugins/svn && /usr/lib64/ccache/c++
> > 
> >   -DMAKE_FILEVIEWSVNPLUGIN_LIB -D_BSD_SOURCE -D_XOPEN_SOURCE=500
> > 
> > -D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT
> > -DKDE_DEPRECATED_WARNINGS -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=48
> > -DQT_USE_FAST_CONCATENATION -DQT_USE_FAST_OPERATOR_PLUS
> > -Wnon-virtual-dtor -Wno-long-long -ansi -Wundef -Wcast-align
> > -Wchar-subscripts -Wall -W -Wpointer-arith -Wformat-security
> > -fno-exceptions -DQT_NO_EXCEPTIONS -fno-check-new -fno-common
> > -Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden
> > -Werror=return-type -fvisibility-inlines-hidden -O2 -g -DNDEBUG
> > -DQT_NO_DEBUG -fPIC ...   -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o
> > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o -c
> > /home/rdieter1/pkgs.fedoraproject.org/kdesdk/foo/kdesdk-4.8.4/build/dolphi
> > n- plugins/svn/fileviewsvnplugin_automoc.cpp
> > 
> > and in 4.8.90 this get's compiled with:
> > 
> > cd .../kdesdk-4.8.90/build/dolphin-plugins/svn && /usr/lib64/ccache/c++
> > 
> >   -DMAKE_FILEVIEWSVNPLUGIN_LIB -DQT_NO_STL -DQT_NO_CAST_TO_ASCII
> > 
> > -D_REENTRANT -DKDE_DEPRECATED_WARNINGS
> > -DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=48 -DQT_USE_FAST_CONCATENATION
> > -DQT_USE_FAST_OPERATOR_PLUS -O2 -g -DQT_NO_DEBUG ...
> > -D_LARGEFILE64_SOURCE -o
> > CMakeFiles/fileviewsvnplugin.dir/fileviewsvnplugin_automoc.o -c
> > /home/rdieter1/pkgs.fedoraproject.org/kdesdk/foo/kdesdk-4.8.90/build/dolph
> > in -plugins/svn/fileviewsvnplugin_automoc.cpp
> > 
> > 
> > many differences (mostly flags being removed), but most noticeable
> > causing the immediate issue was -fPIC
> > 
> > any advice, clues, suggestions?
> 
> Can you try if the attached patch helps at least for the dolphin-plugins?

No, should not help from what I see :/

FindKDE4Internal.cmake has the line:
--- 8< ---
set(KDE4_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -DQT_NO_STL -
DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -
DKDE4_CMAKE_TOPLEVEL_DIR_LENGTH=${_KDE4_CMAKE_TOPLEVEL_DIR_LENGTH})
--- 8< ---

so now I even wonder what those lines in kdesdk/CMakeLists.txt are for:
--- 8< ---
# The FindKDE4.cmake module sets _KDE4_PLATFORM_DEFINITIONS with
# definitions like _GNU_SOURCE that are needed on each platform.
set(CMAKE_REQUIRED_DEFINITIONS ${_KDE4_PLATFORM_DEFINITIONS} -
DQT_STRICT_ITERATORS)
--- 8< ---
Buildsystem experts, is that still valid/needed to do?

Cheers
Friedrich


More information about the Kde-buildsystem mailing list