diff options
| author | Daniel Colascione <dancol@dancol.org> | 2012-10-08 02:26:10 -0800 |
|---|---|---|
| committer | Daniel Colascione <dancol@dancol.org> | 2012-10-08 02:26:10 -0800 |
| commit | 93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab (patch) | |
| tree | 0d5a5e00c82b9079b2d154710daee756118cc482 | |
| parent | 5c0255d90bf07b0fc59a7fe74f35f4b704ebbab4 (diff) | |
| download | emacs-93aa5c811f28ab0d3f7a8d0a37971efd35dfbcab.tar.gz | |
Improve fix for jpeglib build break
| -rw-r--r-- | src/ChangeLog | 5 | ||||
| -rw-r--r-- | src/image.c | 25 |
2 files changed, 20 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 250024ba6c5..f9a47ebb4b6 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -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. diff --git a/src/image.c b/src/image.c index 790ede4c35e..6058bdf444c 100644 --- a/src/image.c +++ b/src/image.c @@ -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. */ |
