Improve fix for jpeglib build break

This commit is contained in:
Daniel Colascione
2012-10-08 02:26:10 -08:00
parent 5c0255d90b
commit 93aa5c811f
2 changed files with 20 additions and 10 deletions

View File

@@ -1,3 +1,8 @@
2012-10-08 Daniel Colascione <dancol@dancol.org>
* image.c: Permanent fix for JPEG compilation issue --- limit
jpeglib `boolean' redefinition to Cygwin builds.
2012-10-08 Eli Zaretskii <eliz@gnu.org>
* image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.

View File

@@ -6061,21 +6061,26 @@ jpeg_image_p (Lisp_Object object)
#define __WIN32__ 1
#endif
#if 0 /* FIXME */
/* Work around conflict between jpeg boolean and rpcndr.h
under Windows. */
/* rpcndr.h (via windows.h) and jpeglib.h both define boolean types.
Some versions of jpeglib try to detect whether rpcndr.h is loaded,
using the Windows boolean type instead of the jpeglib boolean type
if so. Cygwin jpeglib, however, doesn't try to detect whether its
headers are included along with windows.h, so under Cygwin, jpeglib
attempts to define a conflicting boolean type. Worse, forcing
Cygwin jpeglib headers to use the Windows boolean type doesn't work
because it created an ABI incompatibility between the
already-compiled jpeg library and the header interface definition.
The best we can do is to define jpeglib's boolean type to a
different name. This name, jpeg_boolean, remains in effect through
the rest of image.c.
*/
#if defined (CYGWIN) && defined (HAVE_NTGUI)
#define boolean jpeg_boolean
#endif
#include <jpeglib.h>
#include <jerror.h>
/* Don't undefine boolean --- use the JPEG boolean
through the rest of the file. */
#ifdef HAVE_STLIB_H_1
#define HAVE_STDLIB_H 1
#endif
#ifdef WINDOWSNT
/* JPEG library details. */