kdesdk cmake-bustage, kde4_add_plugin

Sebastian Dörner sebastian at sebastian-doerner.de
Sun Jun 10 19:58:48 UTC 2012


Hmm, I can't find where the -fPIC comes from, doing
find . -name '*.cmake' | xargs grep -i fpic
in my src directory did not find anything.

Do you have any special cmake files / tarballs that are just used for
BSD (as this seems to be what you are compiling on)?

On 10 June 2012 19:21, Friedrich W. H. Kossebau <kossebau at kde.org> wrote:
> 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
> _______________________________________________
> kde-sdk-devel mailing list
> kde-sdk-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kde-sdk-devel


More information about the kde-sdk-devel mailing list