[Libreoffice] gdk-pixbuf compile error

Joseph Powers jpowers27 at cox.net
Tue May 31 22:59:46 PDT 2011


I'm guessing that its failing on more then just Mac OS. I found a patch at http://old.nabble.com/build-problems-with-libpng-1.5.1beta01-td30662957.html that seams to work.

I'm not sure how to include it in our build system so I'm attaching including it here. It doesn't apply cleanly so I had to do the "@@ -459,7 +463,7 @@ gdk_pixbuf__png_image_begin_load (GdkPix" section manually. Also, it looks like we're using 2.23.0 while the latest stable is 2.22.1; so I'm guessing we may find other issues. Also, the most resent unstable is 2.23.3 ( I couldn't find the download site just the manual).

Can someone please verify & integrate this somehow... also, because of the patch isn't mine I'm not sure how licensing will work (the closest I noticed to a licenese was "here's the patch I used in case someone else needs it"); the lease we should do is make sure the two of them get some credit.

This is working now; however, I'm getting a segfault in an unrelated section of code during "make check".

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000069727469
Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   libuno_cppuhelpergcc3.dylib.3 	0x002e8773 com::sun::star::uno::WeakReferenceHelper::get() const + 67
1   libdbamxi.dylib               	0x5f97c65a dbaccess::ODatabaseModelImpl::dispose() + 42
2   libdbamxi.dylib               	0x5f9019e5 dbaccess::ODatabaseContext::disposing() + 101
3   libuno_cppuhelpergcc3.dylib.3 	0x002d73be cppu::WeakComponentImplHelperBase::dispose() + 158
4   libuno_cppuhelpergcc3.dylib.3 	0x002fbc78 cppu::createOneInstanceRegistryFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&) + 6120
5   libuno_cppuhelpergcc3.dylib.3 	0x0030aabc cppu::OComponentHelper::release() + 156
6   libuno_cppuhelpergcc3.dylib.3 	0x002fe32c cppu::createOneInstanceRegistryFactory(com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&) + 16028
7   libuno_cppuhelpergcc3.dylib.3 	0x002e8a38 cppu::OWeakAggObject::release() + 104
8   libuno_cppuhelpergcc3.dylib.3 	0x0030aa8d cppu::OComponentHelper::release() + 109
9   bootstrap.uno.dylib           	0x04317693 component_getFactory + 90403
10  libuno_cppuhelpergcc3.dylib.3 	0x002d73be cppu::WeakComponentImplHelperBase::dispose() + 158
11  bootstrap.uno.dylib           	0x04312bd8 component_getFactory + 71272
12  libuno_cppuhelpergcc3.dylib.3 	0x00302552 cppu::createComponentContext(cppu::ContextEntry_Init const*, long, com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&) + 2466
13  libuno_cppuhelpergcc3.dylib.3 	0x002d73be cppu::WeakComponentImplHelperBase::dispose() + 158
14  libsofficeapp.dylib           	0x000776d1 0x5a000 + 120529
15  libsofficeapp.dylib           	0x00064059 0x5a000 + 41049
16  libvclmxi.dylib               	0x017c9c4b DeInitVCL() + 1451
17  libvclmxi.dylib               	0x017ca445 ImplSVMain() + 245
18  libvclmxi.dylib               	0x0177d61b AquaSalInstance::handleAppDefinedEvent(NSEvent*) + 75
19  libvclmxi.dylib               	0x01ab511b -[VCL_NSApplication sendEvent:] + 315
20  com.apple.AppKit              	0x989ee2a7 -[NSApplication run] + 917
21  com.apple.AppKit              	0x989e62d9 NSApplicationMain + 574
22  libvclmxi.dylib               	0x0177f0a7 ImplSVMainHook(int*) + 343
23  libvclmxi.dylib               	0x017ca571 SVMain() + 17
24  libsofficeapp.dylib           	0x00098d85 soffice_main + 245
25  org.libreoffice.script        	0x00001ebe main + 30
26  org.libreoffice.script        	0x00001822 start + 258
27  org.libreoffice.script        	0x00001749 start + 41

So it looks like I know what I'm working on tomorrow...

Joe P.

------------------------------------------------------------


$NetBSD: patch-af,v 1.1 2011/01/13 17:14:43 wiz Exp $

Fix build with png-1.5.

--- gdk-pixbuf/io-png.c.orig	2010-07-10 00:54:35.000000000 +0000
+++ gdk-pixbuf/io-png.c
@@ -183,7 +183,11 @@ png_simple_error_callback(png_structp pn
                              error_msg);
         }

+#if (PNG_LIBPNG_VER < 10500)
         longjmp (png_save_ptr->jmpbuf, 1);
+#else
+        png_longjmp (png_save_ptr, 1);
+#endif
 }

 static void
@@ -287,7 +291,7 @@ gdk_pixbuf__png_image_load (FILE *f, GEr
 	 return NULL;
 	}

-	if (setjmp (png_ptr->jmpbuf)) {
+	if (setjmp (png_jmpbuf(png_ptr))) {
 	    	g_free (rows);

 	 if (pixbuf)
@@ -459,7 +463,7 @@ gdk_pixbuf__png_image_begin_load (GdkPix
                 return NULL;
         }

-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
+	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
 	 if (lc->png_info_ptr)
 	 png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
                 g_free(lc);
@@ -531,7 +535,7 @@ gdk_pixbuf__png_image_load_increment(gpo
         lc->error = error;

         /* Invokes our callbacks as needed */
-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
+	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
                 lc->error = NULL;
 	 return FALSE;
 	} else {
@@ -654,7 +658,7 @@ png_info_callback   (png_structp png_rea
                                      GDK_PIXBUF_ERROR,
                                      GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY,
                                      _("Insufficient memory to store a %ld by %ld image; try exiting some applications to reduce memory usage"),
-                                     width, height);
+                                     (long)width, (long)height);
                 }
                 return;
         }
@@ -769,7 +773,11 @@ png_error_callback(png_structp png_read_
                              error_msg);
         }

+#if (PNG_LIBPNG_VER < 10500)
         longjmp (png_read_ptr->jmpbuf, 1);
+#else
+        png_longjmp (png_read_ptr, 1);
+#endif
 }

 static void
@@ -978,7 +986,7 @@ static gboolean real_save_png (GdkPixbuf
 	       success = FALSE;
 	       goto cleanup;
        }
-       if (setjmp (png_ptr->jmpbuf)) {
+       if (setjmp (png_jmpbuf(png_ptr))) {
 	       success = FALSE;
 	       goto cleanup;
        }

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20110531/2b2f4904/attachment-0001.htm>


More information about the LibreOffice mailing list