Version: (using Devel) Installed from: Compiled sources Compiler: c++ (GCC) 4.2.1 20070719 [FreeBSD] OS: FreeBSD How to reproduce in FreeBSD: 1. Checkout latest kdebase svn trunk 2. `cmake -DCMAKE_BUILD_TYPE=Release` in build dir 3. `make` Error: [ 58%] Building CXX object workspace/ksysguard/gui/CMakeFiles/ksysguard.dir/ksysguard_dummy.o /usr/bin/c++ -Woverloaded-virtual -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -I/home/clamothe/kdesvn/build/kdebase/workspace/ksysguard/gui -I/home/clamothe/kdesvn/kdebase/workspace/ksysguard/gui -I/home/clamothe/kdesvn/kdebase -I/home/clamothe/kdesvn/build/kdebase -I/home/clamothe/kdesvn/build/kdebase/workspace -I/home/clamothe/kdesvn/kdebase/workspace/kdm -I/home/clamothe/kdesvn/kdebase/workspace/libs -I/home/clamothe/kdesvn/kdebase/workspace/libs/kworkspace -I/home/clamothe/kdesvn/kdebase/workspace/ksysguard/gui/ksgrd -I/home/clamothe/kdesvn/kdebase/workspace/ksysguard/gui/SensorDisplayLib -I/home/clamothe/kdesvn/kdebase/workspace -I/home/clamothe/kdesvn/kdebase/workspace/libs/ksysguard -I/home/clamothe/kdesvn/kdebase/workspace/libs/ksysguard/processcore -I/usr/local/include -I/usr/local/include/KDE -I/home/clamothe/qt4/include/QtHelp -I/home/clamothe/qt4/include/QtWebKit -I/home/clamothe/qt4/include/QtDBus -I/home/clamothe/qt4/include/QtTest -I/home/clamothe/qt4/include/QtUiTools -I/home/clamothe/qt4/include/QtScript -I/home/clamothe/qt4/include/QtSvg -I/home/clamothe/qt4/include/QtXml -I/home/clamothe/qt4/include/QtSql -I/home/clamothe/qt4/include/QtOpenGL -I/home/clamothe/qt4/include/QtNetwork -I/home/clamothe/qt4/include/QtDesigner -I/home/clamothe/qt4/include/QtAssistant -I/home/clamothe/qt4/include/Qt3Support -I/home/clamothe/qt4/include/QtGui -I/home/clamothe/qt4/include/QtCore -I/home/clamothe/qt4/include/Qt -I/home/clamothe/qt4/mkspecs/default -I/home/clamothe/qt4/include -D_GNU_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT -DKDE_DEPRECATED_WARNINGS -DHAVE_CONFIG_H=1 -o workspace/ksysguard/gui/CMakeFiles/ksysguard.dir/ksysguard_dummy.o -c /home/clamothe/kdesvn/build/kdebase/workspace/ksysguard/gui/ksysguard_dummy.cpp Linking CXX executable ksysguard cd /home/clamothe/kdesvn/build/kdebase/workspace/ksysguard/gui && /usr/local/bin/cmake -P CMakeFiles/ksysguard.dir/cmake_clean_target.cmake cd /home/clamothe/kdesvn/build/kdebase/workspace/ksysguard/gui && /usr/bin/c++ -Woverloaded-virtual -fvisibility=hidden -fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -fPIC "CMakeFiles/ksysguard.dir/ksysguard_automoc.o" "CMakeFiles/ksysguard.dir/ksysguard_dummy.o" -o ksysguard -L/home/clamothe/kdesvn/build/kdebase/lib -L/usr/local/lib -L/home/clamothe/qt4/lib -lkdeinit4_ksysguard -lkdeinit4_ksysguard -lplasma -lprocessui -lprocesscore -lksgrd -lkdecore -lkdecore -lkdecore -lsolid -lkio -lkdecore -lkio -lkdeui -lQtSvg -lSM -lICE -lX11 -lXext -lXft -lXau -lXdmcp -lXpm -lXtst -lXcursor -lXfixes -lstreamanalyzer -lstreams -lfam -lXrender -lkdecore -lQtNetwork -lz -lbz2 -lintl -lsolid -lQtCore -lpthread -lQtDBus -lQtXml -lQtGui -lkfile -Wl,-Bstatic -lQtUiTools -Wl,-Bdynamic -lQtWebKit -lQtOpenGL -lGL -Wl,-rpath,/usr/local/lib:/usr/local/lib:/home/clamothe/qt4/lib /home/clamothe/kdesvn/build/kdebase/lib/libprocessui.so: undefined reference to `DisplayProcessDlg::DisplayProcessDlg(QWidget*, KSysGuard::Process*)' *** Error code 1 Stop in ....kdesvn/build/kdebase. *** Error code 1 Stop in .....kdesvn/build/kdebase. *** Error code 1 Stop in ....kdesvn/build/kdebase.
Same here with 4.0.71/72
I think we found this problem, in kdebase/workspace/libs/ksysguard/processui/CMakeLists.txt the 794393 commit break the build. FreeBSD have <sys/ptrace.h>, but cmake can't find it. DisplayProcessDlg.cpp isn't built because ksysguard/processui/CMakeLists.txt doesn't seem to find <sys/ptrace.h> even though its there. Build log can you find here: http://nopaste.unixfreunde.de/669 KMonitorProcessIO.cpp will failed complete under *BSD, we don't have byteswap.h, PTRACE_DETACH etc. With a dirty hack, can be found the KMonitorProcessIO.cpp problemes here: http://nopaste.unixfreunde.de/670 Any ideas?
Problem still exist with 4.0 Beta 1.
I don't have a freebsd box :( If you can fix it and commit (or send a patch), that's great. If not, I will (eventually) get freebsd setup for such bugs Thanks John 2008/5/28 Martin Wilke <miwi@freebsd.org>: [bugs.kde.org quoted mail]
As miwi said, the problem is here in the CMakeLists.txt, finding ptrace. The reason is given here: http://www.freebsd.org/cgi/man.cgi?query=ptrace&apropos=0&sektion=0&manpath=FreeBSD+7.0-RELEASE&format=html Note that on FreeBSD, the ptrace.h header requires <sys/types.h>. As a result, the cmake test code, which is something like: #include <sys/ptrace.h> int main() {return 0;} fails to compile, because of various undefined types. I didn't get check_include_files(sys/types.h sys/ptrace.h HAVE_SYS_PTRACE_H) to work for some reason. Regardless, this check is a problem. Since the code does not actually link without ptrace, this logic should be check_include_files(sys/ptrace.h HAVE_SYS_PTRACE_H) if(NOT HAVE_SYS_PTRACE_H) error("Can't find ptrace.h, required for building") endif(NOT HAVE_SYS_PTRACE_H) either that, or the various includes and calls for DisplayProcessDlg need to be inside of #ifdef'd code, so that linking works without ptrace. If you don't make the above change, please test by not defining HAVE_SYS_PTRACE_H, and making sure everything still links. John: I'm wondering if it's worth the trouble to make your own interface to ptrace, and then do conditional compilation of ptrace_linux.cpp, ptrace_freebsd.cpp, ptrace_mac.cpp, etc. It obviously doesn't have to be a complete interface, but as long as you describe your needs relatively clearly in the "myptrace.h" file, those of us who use the non-linux systems could probably help out here. I suggest this because the #ifdef's are going to get a bit rediculous, just between the handful of *nix OSes we're working with.
KSysguard should compile with HAVE_SYS_PTRACE_H being false. Sometimes users want to disable such functionality even though they could have it (especially on lightweight laptops etc where you want to strip out all extranous features)
SVN commit 1082463 by johnflux: Remove the monitor process IO stuff entirely. It was cool, but it locked up the system and causes problems with freebsd BUG:160685 M +2 -50 CMakeLists.txt D DisplayProcessDlg.cpp D DisplayProcessDlg.h D DisplayProcessUi.ui D KMonitorProcessIO.cpp D KMonitorProcessIO.h D KMonitorProcessIO.widgets M +0 -26 ksysguardprocesslist.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1082463
SVN commit 1095070 by johnflux: Remove the monitor process IO stuff entirely. It was cool, but it locked up the system and causes problems with freebsd BUG:160685 M +2 -50 CMakeLists.txt D DisplayProcessDlg.cpp D DisplayProcessDlg.h D DisplayProcessUi.ui D KMonitorProcessIO.cpp D KMonitorProcessIO.h D KMonitorProcessIO.widgets M +0 -26 ksysguardprocesslist.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1095070