Summary: | Libpgf relevant : digiKam crashes while displaying thumbnails on Ultra-SPARC platform... | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Jean-Fred <jfc31> |
Component: | Portability-Runtime | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, rschweizer |
Priority: | NOR | ||
Version: | 1.5.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 1.6.0 | |
Sentry Crash Report: | |||
Attachments: | supposedly better endianess detection for libPGF |
Description
Jean-Fred
2010-10-14 22:48:38 UTC
Look like Cmake script check this for you : -- ---------------------------------------------------------------------------------- -- kipi-plugins 1.6.0 dependencies results <http://www.kipi-plugins.org> -- -- libjpeg library found.................... YES -- libtiff library found.................... YES -- libpng library found..................... YES -- libkipi library found.................... YES -- libkexiv2 library found.................. YES -- libkdcraw library found.................. YES -- libxml2 library found.................... YES (optional) -- libxslt library found.................... YES (optional) -- libexpat library found................... YES (optional) -- native threads support library found..... YES (optional) -- libopengl library found.................. YES (optional) -- Qt4 OpenGL module found.................. YES -- libopencv library found.................. YES (optional) -- libgpod library found.................... YES (optional) -- Gdk library found........................ YES (optional) -- libkdepim library found.................. YES (optional) -- qca2 library found....................... YES (optional) -- libkdcraw >= 1.1.0 library found......... YES (optional) -- libkexiv2 >= 1.1.0 library found......... YES (optional) -- OpenMP library found..................... YES (optional) -- libX11 library found..................... YES (optional) -- libksane library found................... YES (optional) -- -- kipi-plugins will be compiled............ YES -- Shwup will be compiled................... YES (optional) -- HtmlExport will be compiled.............. YES (optional) -- AdvancedSlideshow will be compiled....... YES (optional) -- ImageViewer will be compiled............. YES (optional) -- AcquireImages will be compiled........... YES (optional) -- DNGConverter will be compiled............ YES (optional) -- RemoveRedEyes will be compiled........... YES (optional) -- IpodExport will be compiled.............. YES (optional) -- Calendar will be compiled................ YES (optional) -- ---------------------------------------------------------------------------------- -- -- Check if the system is big endian -- Searching 16 bit integer -- Check size of unsigned short -- Check size of unsigned short - done -- Using unsigned short -- Check if the system is big endian - little endian It will be easy to reuse this flag in digiKam Gilles Caulier But there is more simple to get endianess using Qt4API : http://lxr.kde.org/source/extragear/graphics/digikam/libs/dimg/dimg.cpp#1506 Gilles Caulier As libpgf do not depand of Qt4, this flag can be used instead : http://lxr.kde.org/source/extragear/graphics/digikam/libs/threadimageio/pgfutils.cpp#68 Gilles Caulier In fact __BIG_ENDIAN__ is defined in the core system as well, thriugh C++ header (i think) But look like littlecms library handle endianness: http://github.com/mm2/Little-CMS/blob/master/include/lcms2.h#L169 I will patch svn trunk code in this way Gilles Caulier SVN commit 1186191 by cgilles: at this place endianess can be handle using Qt4 api CCBUGS: 254203 M +29 -16 pgfutils.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1186191 I CC libpgf maintainer for info... Gilles Caulier SVN commit 1186197 by cgilles: fix endiannes detection into libpgf. If it work properly unde SPARC architecture, this patch must be backported to libpgf as well. CCBUGS: 254203 CCMAIL: rschweizer@schweizer-informatik.ch M +30 -3 PGFplatform.h M +2 -2 PGFtypes.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1186197 to jfc31, I commited a patch to KDE repository. Please checkout code from svn trunk and try again on your SPARC computer. Thanks in advance Gilles Caulier Created attachment 52681 [details]
supposedly better endianess detection for libPGF
Gilles, I tested your patch and found no problems so far. It will be integrated in the next libPGF release (no specific date yet). Encoder and Decoder have endian specific code too, the attached patch will fix this and remove a redundant check from the lcms2 code. @jfc31: Please test this patch too. Thanks, Raphael PS: ah, I'll never get used to the "Add an attachment" process ;-) SVN commit 1187700 by cgilles: apply endianness patch #52681 from Raphael Schweizer CCBUGS: 254203 M +2 -2 Decoder.cpp M +4 -4 Encoder.cpp M +0 -6 PGFplatform.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1187700 SVN commit 1187707 by cgilles: Fix endianness detection into LensFun library, as LibPGF do. CCBUGS: 254203 CCMAIL: zap@homelink.ru M +22 -1 rgbpixel.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1187707 jfc31, I fixed also an endianness detection issue in lensfun library included in digiKam core. Please can you checkout digikam source code from svn trunk (1.6.0) and check if all is fine for you ? Thanks in advance Gilles Caulier Gilles, Raphael, It took me quite some time to test the fixes... Sorry for that, I'm at least as slow as my old computer ;)... I did the tests with the 21-Oct-2010-#2PM svn image. First of all everything compiles well. But at run time things are not that nice as the libpgf issue is still there (the code seems now to be a bit more talkative and I've some error message before crash pointing out PGF code). I digged a bit more in the files and came up with the following thing: Something is incorrectly set in PGFplatform.h, on line 40 we should have #if defined(__sgi__) || defined(__sgi) || defined(__powerpc__) || defined(sparc) || defined(__sparc__) and not: #if defined(__sgi__) || defined(__sgi) || defined(__powerpc__) || defined(sparc) || defined(sparc) -> The correct macro that gcc uses to define SPARC processors is __sparc__ (see http://predef.sourceforge.net/prearch.html a good summarry of how the various compilers indicates which processor they are targetting... a real mess indeed...) Thanks a lot for all this work, this great software and for beeing so reactive fixing things! Gilles, I didn't had opportunity to test lensfun stuff. I'll do that later (I still need to learn digiKam a bit more)... Jean-Fred SVN commit 1188992 by cgilles: fix sparc macro from gcc CCBUGS: 254203 M +1 -1 PGFplatform.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1188992 Jean-Fred, PGF is patch in svn. Forget lensfun, the code affected is not used by digiKam and i removed it as well. Please recompile digiKam using trunk code including my fix, run it, and look if it crash again. If yes, post a gdb backtrace in this report. Thanks in advance Gilles Caulier Gilles, DigiKam is not crashing anymore while displaying thumbnails! Thanks, Jean-Fred Thanks Jean-Fred... I close this file now... Raphael, please take a care about the small adjustment in libpgf source code done by commit http://websvn.kde.org/?view=rev&revision=1188992 Look comment #14 for details Best Gilles Caulier Thanks for reporting and testing. I patched our code base, so the changes will eventually also show up on SourceForge. Best, Raphael |