emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r110454: Improve fix for jpeglib buil


From: Daniel Colascione
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110454: Improve fix for jpeglib build break
Date: Mon, 08 Oct 2012 02:26:10 -0800
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110454
committer: Daniel Colascione <address@hidden>
branch nick: cyg
timestamp: Mon 2012-10-08 02:26:10 -0800
message:
  Improve fix for jpeglib build break
modified:
  src/ChangeLog
  src/image.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-10-08 10:07:16 +0000
+++ b/src/ChangeLog     2012-10-08 10:26:10 +0000
@@ -1,3 +1,8 @@
+2012-10-08  Daniel Colascione  <address@hidden>
+
+       * image.c: Permanent fix for JPEG compilation issue --- limit
+       jpeglib `boolean' redefinition to Cygwin builds.
+
 2012-10-08  Eli Zaretskii  <address@hidden>
 
        * image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.

=== modified file 'src/image.c'
--- a/src/image.c       2012-10-08 10:05:50 +0000
+++ b/src/image.c       2012-10-08 10:26:10 +0000
@@ -6061,21 +6061,26 @@
 #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.  */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]