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

From: Sven Joachim <[email-masked]>
Date: Wed, 07 May 2014 08:34:51 +0200

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.