Bug 326368 - Can't make digikam from git with test enable : error with libraw 5 ubuntu precise
Summary: Can't make digikam from git with test enable : error with libraw 5 ubuntu pre...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Unclassified
Component: Plugin-DImg-RAW (show other bugs)
Version: 4.0.0
Platform: Ubuntu Packages Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-21 10:27 UTC by e.longuemare
Modified: 2013-10-24 09:18 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description e.longuemare 2013-10-21 10:27:37 UTC
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.
Comment 1 e.longuemare 2013-10-21 10:46:34 UTC
pkg-config --libs libraw
-fopenmp -lraw -lstdc++ -llcms2
Comment 2 caulier.gilles 2013-10-21 11:49:19 UTC
It sound like libgomp linkage doesn't work on your system. strange, it link properly here.

Gilles Caulier
Comment 3 Rex Dieter 2013-10-21 17:16:56 UTC
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.
Comment 4 e.longuemare 2013-10-22 08:02:34 UTC
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
Comment 5 e.longuemare 2013-10-22 08:06:33 UTC
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.
Comment 6 caulier.gilles 2013-10-22 08:10:22 UTC
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
Comment 7 Raymond Wooninck 2013-10-22 08:45:18 UTC
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
Comment 8 Raymond Wooninck 2013-10-22 08:50:32 UTC
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)
Comment 9 caulier.gilles 2013-10-22 09:02:47 UTC
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
Comment 10 caulier.gilles 2013-10-22 09:16:51 UTC
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
Comment 11 caulier.gilles 2013-10-22 09:21:12 UTC
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
Comment 12 e.longuemare 2013-10-24 01:55:49 UTC
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
Comment 13 caulier.gilles 2013-10-24 05:20:57 UTC
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
Comment 14 e.longuemare 2013-10-24 09:18:49 UTC
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
>