From: Barry Fishman <barry_fishman@acm.org>
To: 15531@debbugs.gnu.org
Subject: bug#15531: Emacs configure fails with gif 5.0
Date: Sat, 05 Oct 2013 11:27:53 -0400 [thread overview]
Message-ID: <m3wqlreo06.fsf@barry_fishman.acm.org> (raw)
[-- Attachment #1: Type: text/plain, Size: 610 bytes --]
Package: emacs
Version: 24.3.50
The configure script fails to recognize the gif_lib.h header file for
gif 5.0 and so prints an error that git support can not be found.
The gif_lib.h header file has been reorganized for gif 5.0. There is no
longer a EGifPutExtensionLast function. However there is a new
GifMakeMapObject I used in my patch. A better way would probably be to
look at the new GIFLIB_MAJOR define now in gif_lib.h.
I have included a patch, but I do not have many OS/platforms that I
can check. I am far from understanding autoconfig, but my attempt at a
fix (git patch) is included below:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: configure and image.c patches --]
[-- Type: text/x-diff, Size: 2200 bytes --]
diff --git a/configure.ac b/configure.ac
index 53426b6..0f05d8e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3109,8 +3109,9 @@ elif test "${HAVE_X11}" = "yes" && test "${with_gif}" != "no" \
|| test "${HAVE_W32}" = "yes"; then
AC_CHECK_HEADER(gif_lib.h,
# EGifPutExtensionLast only exists from version libungif-4.1.0b1.
-# Earlier versions can crash Emacs.
- [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])
+# Earlier versions can crash Emacs, but version 5.0 removes EGifPutExtensionLast.
+ [AC_CHECK_LIB(gif, GifMakeMapObject, HAVE_GIF=yes,
+ [AC_CHECK_LIB(gif, EGifPutExtensionLast, HAVE_GIF=yes, HAVE_GIF=maybe)])])
if test "$HAVE_GIF" = yes; then
LIBGIF=-lgif
diff --git a/src/image.c b/src/image.c
index e429830..c414f5b 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7219,14 +7219,22 @@ gif_image_p (Lisp_Object object)
#endif /* HAVE_NTGUI */
+#ifndef GIFLIB_MAJOR
+#define GIFLIB_MAJOR 0
+#endif
#ifdef WINDOWSNT
/* GIF library details. */
DEF_IMGLIB_FN (int, DGifCloseFile, (GifFileType *));
DEF_IMGLIB_FN (int, DGifSlurp, (GifFileType *));
+#if GIFLIB_MAJOR < 5
DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc));
DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *));
+#else
+DEF_IMGLIB_FN (GifFileType *, DGifOpen, (void *, InputFunc, int *));
+DEF_IMGLIB_FN (GifFileType *, DGifOpenFileName, (const char *, int *));
+#endif
static bool
init_gif_functions (void)
@@ -7316,7 +7324,11 @@ gif_load (struct frame *f, struct image *img)
}
/* Open the GIF file. */
+#if GIFLIB_MAJOR < 5
gif = fn_DGifOpenFileName (SSDATA (file));
+#else
+ gif = fn_DGifOpenFileName (SSDATA (file), NULL);
+#endif
if (gif == NULL)
{
image_error ("Cannot open `%s'", file, Qnil);
@@ -7337,7 +7349,11 @@ gif_load (struct frame *f, struct image *img)
memsrc.len = SBYTES (specified_data);
memsrc.index = 0;
+#if GIFLIB_MAJOR < 5
gif = fn_DGifOpen (&memsrc, gif_read_from_memory);
+#else
+ gif = fn_DGifOpen (&memsrc, gif_read_from_memory, NULL);
+#endif
if (!gif)
{
image_error ("Cannot open memory source `%s'", img->spec, Qnil);
[-- Attachment #3: Type: text/plain, Size: 19 bytes --]
--
Barry Fishman
next reply other threads:[~2013-10-05 15:27 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-05 15:27 Barry Fishman [this message]
2013-10-05 18:26 ` bug#15531: Emacs configure fails with gif 5.0 Eli Zaretskii
2013-10-05 19:19 ` Barry Fishman
2013-10-10 0:40 ` Glenn Morris
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m3wqlreo06.fsf@barry_fishman.acm.org \
--to=barry_fishman@acm.org \
--cc=15531@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.