Subject: bug#17429: closed (Re: bug#17429: 24.4.50; __pngconf.h__ in libpng already includes setjmp.h)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 07 May 2014 18:24:02 +0000

Your bug report

#17429: 24.4.50; __pngconf.h__ in libpng already includes setjmp.h

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17429: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17429
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17429: 24.4.50; __pngconf.h__ in libpng already includes setjmp.h
From: Paul Eggert <[email-masked]>
To: Glenn Morris <[email-masked]>
Cc: [email-masked], Sven Joachim <[email-masked]>
Date: Wed, 07 May 2014 11:22:47 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

> Sven Joachim wrote:
>> |             __pngconf.h__ in libpng already includes setjmp.h;
>> |                      ^

Thanks, that doesn't happen for me on Fedora 20 (libpng16), so I didn't 
run into the problem.  I installed an obvious patch in trunk bzr 117070; 
please give it a try.  I'll take the liberty of marking this bug as done 
to save us all work later; if I'm wrong I'll unmark it.

Subject: 24.4.50; __pngconf.h__ in libpng already includes setjmp.h
From: Sven Joachim <[email-masked]>
To: [email-masked]
Date: Wed, 07 May 2014 08:34:51 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Trunk does not build for me, I get an error when compiling image.c:

,----
| In file included from /usr/include/libpng12/png.h:540:0,
|                  from image.c:5515:
| /usr/include/libpng12/pngconf.h:371:21: error: expected '=', ',', ';', 'asm' or '__attribute__' before '.' token
|             __pngconf.h__ in libpng already includes setjmp.h;
|                      ^
| /usr/include/libpng12/pngconf.h:372:12: error: unknown type name '__dont__'
|             __dont__ include it again.;
|             ^
| /usr/include/libpng12/pngconf.h:372:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'it'
|             __dont__ include it again.;
|                              ^
| /usr/include/libpng12/pngconf.h:372:29: error: unknown type name 'it'
| Makefile:339: recipe for target 'image.o' failed
`----

In pngconf.h there is the following explanation:

,----
| #ifdef PNG_SETJMP_SUPPORTED
| /* This is an attempt to force a single setjmp behaviour on Linux.  If
|  * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
|  *
|  * You can bypass this test if you know that your application uses exactly
|  * the same setjmp.h that was included when libpng was built.  Only define
|  * PNG_SKIP_SETJMP_CHECK while building your application, prior to the
|  * application's '#include "png.h"'. Don't define PNG_SKIP_SETJMP_CHECK
|  * while building a separate libpng library for general use.
|  */
| 
| #  ifndef PNG_SKIP_SETJMP_CHECK
| #    ifdef __linux__
| #      ifdef _BSD_SOURCE
| #        define PNG_SAVE_BSD_SOURCE
| #        undef _BSD_SOURCE
| #      endif
| #      ifdef _SETJMP_H
|        /* If you encounter a compiler error here, see the explanation
|         * near the end of INSTALL.
|         */
|            __pngconf.h__ in libpng already includes setjmp.h;
|            __dont__ include it again.;
| #      endif
| #    endif /* __linux__ */
| #  endif /* PNG_SKIP_SETJMP_CHECK */
`----

This is with libpng 1.2.50.