Scanning dependencies of target kdcraw [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/kdcraw_automoc.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/kdcraw.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/kdcraw_p.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/dcrawsettingswidget.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/dcrawinfocontainer.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/rawdecodingsettings.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/rcombobox.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/rnuminput.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/rexpanderbox.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/ractionthreadbase.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/ractionthreadbase_p.cpp.o [ 5%] Building CXX object extra/libkdcraw/libkdcraw/CMakeFiles/kdcraw.dir/squeezedcombobox.cpp.o Linking CXX shared library ../../../lib/libkdcraw.so [ 5%] Built target kdcraw Scanning dependencies of target libinfo [ 5%] Building CXX object extra/libkdcraw/test/CMakeFiles/libinfo.dir/libinfo.cpp.o Linking CXX executable libinfo /usr/lib/libraw_r.so.5: undefined reference to `GOMP_parallel_start' /usr/lib/libraw_r.so.5: undefined reference to `GOMP_loop_end' /usr/lib/libraw_r.so.5: undefined reference to `GOMP_barrier' /usr/lib/libraw_r.so.5: undefined reference to `GOMP_loop_dynamic_start' /usr/lib/libraw_r.so.5: undefined reference to `omp_get_thread_num' /usr/lib/libraw_r.so.5: undefined reference to `GOMP_loop_dynamic_next' /usr/lib/libraw_r.so.5: undefined reference to `GOMP_parallel_end' /usr/lib/libraw_r.so.5: undefined reference to `omp_get_num_threads' collect2: ld a retourné 1 code d'état d'exécution make[2]: *** [extra/libkdcraw/test/libinfo] Erreur 1 make[1]: *** [extra/libkdcraw/test/CMakeFiles/libinfo.dir/all] Erreur 2 make: *** [all] Erreur 2 Reproducible: Always Steps to Reproduce: 1. build 2.make 3.
pkg-config --libs libraw -fopenmp -lraw -lstdc++ -llcms2
It sound like libgomp linkage doesn't work on your system. strange, it link properly here. Gilles Caulier
I agree with comment #2 , /usr/lib/libraw_r.so.5: undefined reference to `GOMP_parallel_start' Your libraw should not have undefined symbols. libkdcraw can't fix that (well shouldn't). Well, libkdcraw could workaround it by adding extra linkage (to libgomp), but I think that's the wrong approach.
Hello, Thank you. I found this : http://redmine.yorba.org/issues/4558 and this : https://bugs.launchpad.net/ubuntu/+source/libraw/+bug/924587 I will make further test. Greatings, Eric
pkg-config --libs liblcms2-dev Package liblcms2-dev was not found in the pkg-config search path. Perhaps you should add the directory containing `liblcms2-dev.pc' to the PKG_CONFIG_PATH environment variable No package 'liblcms2-dev' found liblcms2-dev has been installed.
Perhaps there is a packaging problem with lcms2, but linking errors from libraw come from libgomp, not lcms2. libgomp is OpenMP library used by GCC to paralelize operation (with libraw, it's used to run in parallel some RAW demosaicing tasks. Gilles Caulier
Gilles, Ben Cooksley asked me to validate this for openSUSE as that build.kde.org is running openSUSE 12.3. libkdcraw always worked fine as that it had an up-to- date internal libraw tree. Now with the removal of the internal libraw tree, libkdcraw falls back on the libraw that is provided by the distribution. And this causes the above indicated problem. openSUSE 12.3 is using libraw 0.14.7 for libkdcraw for which the build fails with the missing symbols. if I compile libkdcraw against the latest openSUSE Factory (using libraw 0.15.4) then libkdcraw is compiling fine without any issues. I validated both libraw packages and the only difference is the libraw version. So I assume that libkdcraw needs libraw > 0.14.7 Regards Raymond openSUSE KDE community maintainer
I was thinking and it might not be directly libraw, but it could also be the libgomp version that makes the difference. For openSUSE this would mean the following combination: l;ibraw 0.14.7 + libgomp 4.7.2 (snapshot 8 January 2013) libraw 0.15.4 + libgomp 4.8.1 (snapshot 9 September 2013)
Raymond, As i already said, here i use official libraw 0.14.7 from Mageia3, and all compile/link fine. So i suspect that libraw version is not the problem, but something in Suse packaging... Gilles
Ok, i understand the problem : 1/ under Mageia, libraw_r is not compiled with openmp support (i just check with ldd) 2/ I compared libraw_r.pc between 0.14.7 and last version from gitm/master. Look the difference in Libs definition : master : Libs: -L${libdir} -lraw_r -lstdc++@PC_OPENMP@ 0.14.7 : Libs: -L${libdir} -lraw -lstdc++ In 0.14.7, it miss OpenMP linker rules... This is typically a bug in libraw, fixed in recent release. As you said, the right solution for libkdcraw is to depend of libraw > 0.15.x In all case, under Suse, you need to update official libraw version (Mageia need this too) Gilles Caulier
Git commit 8150a98cee588133defadd40cec2d6a384f6614e by Gilles Caulier. Committed on 22/10/2013 at 09:19. Pushed by cgilles into branch 'master'. increase libraw dependency to libkdcraw to 0.15.x serie due a libraw bug about OpenMP linking with client application FIXED-IN: 4.0.0 M +2 -2 CMakeLists.txt http://commits.kde.org/libkdcraw/8150a98cee588133defadd40cec2d6a384f6614e
Hello, I've compiled and installed libraw 0.15.4 from sources : http://www.libraw.org/download. No more error in make digikam from git://anongit.kde.org/digikam-software-compilation ( Revision 03a02db2) I've build and compiled digikam from git://anongit.kde.org/digikam (Date de compilation : Oct 23 2013 (cible : debugfull) Rév. : fb30c5252509249d783307609a863d3a9c406564) whithout those error messages before update of libraw. In digikam component, libraw 0.15.4 was mentionned but 0.14.4 (ubuntu precise package) was installed. Why ? Thank you, Eric
Do you uninstalled 014.4 before to install 0.15.4 ? Do you recompiled/installed libkdcraw. By default libkdcraw is not recompiled through digiKam SC. It's an option from cmake configuration: https://projects.kde.org/projects/extragear/graphics/digikam/digikam-software-compilation/repository/revisions/master/entry/README#L71 Gilles Caulier
Hello, Yes, I have uninstalled libraw 0.14.4 (I think it was a kubuntu\backport package) before to install 0.15.4. But I don't take care of libkdcraw. I will do it this afternoon. Thank you, Eric Le jeudi 24 octobre 2013 à 05:20 +0000, Gilles Caulier a écrit : > https://bugs.kde.org/show_bug.cgi?id=326368 > > --- Comment #13 from Gilles Caulier <caulier.gilles@gmail.com> --- > Do you uninstalled 014.4 before to install 0.15.4 ? > > Do you recompiled/installed libkdcraw. By default libkdcraw is not recompiled > through digiKam SC. It's an option from cmake configuration: > > https://projects.kde.org/projects/extragear/graphics/digikam/digikam-software-compilation/repository/revisions/master/entry/README#L71 > > Gilles Caulier >