* gnu/packages/patches/guile-emacs-fix-configure.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/emacs.scm (guile-emacs): Use it. Add workaround for src/deps dir creation. Fixes #29186.
		
			
				
	
	
		
			211 lines
		
	
	
	
		
			7.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
	
		
			7.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| Two patches here backporting fixes from Emacs master.
 | |
| 
 | |
| Upstream status: emailed first patch to latest committer, Robin Templeton
 | |
| <robin@igalia.com>, no response.
 | |
| 
 | |
| From dfcb3b6ff318e47b84a28cfc43f50bec42fa3570 Mon Sep 17 00:00:00 2001
 | |
| From: Jan Nieuwenhuizen <janneke@gnu.org>
 | |
| Date: Tue, 7 Nov 2017 18:48:03 +0100
 | |
| Subject: [PATCH 1/2] backport: Port jpeg configuration to Solaris 10 with Sun
 | |
|  C.
 | |
| 
 | |
| * configure.ac: Check for jpeglib 6b by trying to link it, instead
 | |
| of relying on cpp magic that has problems in practice.  Check for
 | |
| both jpeglib.h and jerror.h features.  Remove special case for
 | |
| mingw32, which should no longer be needed (and if it were needed,
 | |
| should now be addressable by hotwiring emacs_cv_jpeglib).
 | |
| Fixes: bug#20332
 | |
| 
 | |
|     From fdf532b9c915ad9ba72155646d29d0f530fd72ec Mon Sep 17 00:00:00 2001
 | |
|     From: Paul Eggert <address@hidden>
 | |
|     Date: Wed, 15 Apr 2015 18:30:01 -0700
 | |
|     Subject: [PATCH] Port jpeg configuration to Solaris 10 with Sun C.
 | |
| 
 | |
|     * configure.ac: Check for jpeglib 6b by trying to link it, instead
 | |
|     of relying on cpp magic that has problems in practice.  Check for
 | |
|     both jpeglib.h and jerror.h features.  Remove special case for
 | |
|     mingw32, which should no longer be needed (and if it were needed,
 | |
|     should now be addressable by hotwiring emacs_cv_jpeglib).
 | |
|     Fixes: bug#20332
 | |
| ---
 | |
|  configure.ac | 72 ++++++++++++++++++++++++++++--------------------------------
 | |
|  1 file changed, 34 insertions(+), 38 deletions(-)
 | |
| 
 | |
| diff --git a/configure.ac b/configure.ac
 | |
| index 2445db4886..36fa8eb390 100644
 | |
| --- a/configure.ac
 | |
| +++ b/configure.ac
 | |
| @@ -3014,44 +3014,40 @@ AC_SUBST(LIBXPM)
 | |
|  ### mingw32 doesn't use -ljpeg, since it loads the library dynamically.
 | |
|  HAVE_JPEG=no
 | |
|  LIBJPEG=
 | |
| -if test "${opsys}" = "mingw32"; then
 | |
| -  if test "${with_jpeg}" != "no"; then
 | |
| -    dnl Checking for jpeglib.h can lose because of a redefinition of
 | |
| -    dnl HAVE_STDLIB_H.
 | |
| -    AC_CHECK_HEADER(jerror.h, HAVE_JPEG=yes, HAVE_JPEG=no)
 | |
| -  fi
 | |
| -  AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
 | |
| -  if test "${HAVE_JPEG}" = "yes"; then
 | |
| -    AC_DEFINE(HAVE_JPEG)
 | |
| -    AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
 | |
| -        [#include <jpeglib.h>
 | |
| -	 version=JPEG_LIB_VERSION
 | |
| -],
 | |
| -        [AC_DEFINE(HAVE_JPEG)],
 | |
| -        [AC_MSG_WARN([libjpeg found, but not version 6b or later])
 | |
| -        HAVE_JPEG=no])
 | |
| -  fi
 | |
| -elif test "${HAVE_X11}" = "yes" || test "${HAVE_W32}" = "yes"; then
 | |
| -  if test "${with_jpeg}" != "no"; then
 | |
| -    dnl Checking for jpeglib.h can lose because of a redefinition of
 | |
| -    dnl  HAVE_STDLIB_H.
 | |
| -    AC_CHECK_HEADER(jerror.h,
 | |
| -      [AC_CHECK_LIB(jpeg, jpeg_destroy_compress, HAVE_JPEG=yes)])
 | |
| -  fi
 | |
| -
 | |
| -  AH_TEMPLATE(HAVE_JPEG, [Define to 1 if you have the jpeg library (-ljpeg).])dnl
 | |
| -  if test "${HAVE_JPEG}" = "yes"; then
 | |
| -    AC_DEFINE(HAVE_JPEG)
 | |
| -    AC_EGREP_CPP([version= *(6[2-9]|[7-9][0-9])],
 | |
| -	[#include <jpeglib.h>
 | |
| -	 version=JPEG_LIB_VERSION
 | |
| -],
 | |
| -	[AC_DEFINE(HAVE_JPEG)],
 | |
| -	[AC_MSG_WARN([libjpeg found, but not version 6b or later])
 | |
| -	HAVE_JPEG=no])
 | |
| -  fi
 | |
| -  if test "${HAVE_JPEG}" = "yes"; then
 | |
| -    LIBJPEG=-ljpeg
 | |
| +if test "${with_jpeg}" != "no"; then
 | |
| +  AC_CACHE_CHECK([for jpeglib 6b or later],
 | |
| +    [emacs_cv_jpeglib],
 | |
| +    [OLD_LIBS=$LIBS
 | |
| +     for emacs_cv_jpeglib in yes -ljpeg no; do
 | |
| +       case $emacs_cv_jpeglib in
 | |
| +	 yes) ;;
 | |
| +         no) break;;
 | |
| +	 *) LIBS="$LIBS $emacs_cv_jpeglib";;
 | |
| +       esac
 | |
| +       AC_LINK_IFELSE(
 | |
| +	 [AC_LANG_PROGRAM(
 | |
| +	    [[#undef HAVE_STDLIB_H /* Avoid config.h/jpeglib.h collision.  */
 | |
| +	      #include <stdio.h> /* jpeglib.h needs FILE and size_t.  */
 | |
| +	      #include <jpeglib.h>
 | |
| +	      #include <jerror.h>
 | |
| +	      char verify[JPEG_LIB_VERSION < 62 ? -1 : 1];
 | |
| +	      struct jpeg_decompress_struct cinfo;
 | |
| +	    ]],
 | |
| +	    [[
 | |
| +	      jpeg_create_decompress (&cinfo);
 | |
| +	      WARNMS (&cinfo, JWRN_JPEG_EOF);
 | |
| +	      jpeg_destroy_decompress (&cinfo);
 | |
| +	    ]])],
 | |
| +	 [emacs_link_ok=yes],
 | |
| +	 [emacs_link_ok=no])
 | |
| +       LIBS=$OLD_LIBS
 | |
| +       test $emacs_link_ok = yes && break
 | |
| +     done])
 | |
| +  if test "$emacs_cv_jpeglib" != no; then
 | |
| +    HAVE_JPEG=yes
 | |
| +    AC_DEFINE([HAVE_JPEG], 1,
 | |
| +      [Define to 1 if you have the jpeg library (typically -ljpeg).])
 | |
| +    test "$emacs_cv_jpeglib" != yes && LIBJPEG=$emacs_cv_jpeglib
 | |
|    fi
 | |
|  fi
 | |
|  AC_SUBST(LIBJPEG)
 | |
| -- 
 | |
| Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
 | |
| Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
 | |
| 
 | |
| From f761b92d520b72954be28ad66eb82d1a96c785fb Mon Sep 17 00:00:00 2001
 | |
| From: Jan Nieuwenhuizen <janneke@gnu.org>
 | |
| Date: Wed, 8 Nov 2017 14:05:43 +0100
 | |
| Subject: [PATCH 2/2] backport fix for #24065: calloc loop when compiling with
 | |
|  -O2.
 | |
| 
 | |
| This patch fixes
 | |
| 
 | |
|     EMACSLOADPATH= '../src/bootstrap-emacs' -batch --no-site-file --no-site-lisp -l autoload \
 | |
|        --eval "(setq generate-autoload-cookie \";;;###cal-autoload\")" \
 | |
|        --eval "(setq generated-autoload-file (expand-file-name
 | |
|     (unmsys--file-name
 | |
|     \"../../git-checkout/lisp/calendar/cal-loaddefs.el\")))" \
 | |
|        -f batch-update-autoloads ../../git-checkout/lisp/calendar
 | |
|     make[2]: *** [Makefile:466: ../../git-checkout/lisp/calendar/cal-loaddefs.el] Segmentation fault
 | |
| 
 | |
| in gdb seen as
 | |
| 
 | |
|     in calloc (nmemb=<error reading variable: DWARF-2 expression error:Loop detected (257).>, size=size@entry=1) at gmalloc.c:1510
 | |
| 
 | |
| I did not find malloc-fixing commits from emacs master to cleanly
 | |
| cherry-pick, so this patch replaces the relevant part in configure
 | |
| (emacs 53da55b8cc45e76b836ebaadd23f46e92d25abce).
 | |
| 
 | |
| * configure.ac: backport system_malloc/hybrid_malloc detection.
 | |
| ---
 | |
|  configure.ac | 29 ++++++++++++++++++++++++++++-
 | |
|  1 file changed, 28 insertions(+), 1 deletion(-)
 | |
| 
 | |
| diff --git a/configure.ac b/configure.ac
 | |
| index 36fa8eb390..3cc1794f37 100644
 | |
| --- a/configure.ac
 | |
| +++ b/configure.ac
 | |
| @@ -1966,7 +1966,25 @@ case "$opsys" in
 | |
|    darwin|mingw32|sol2-10) system_malloc=yes ;;
 | |
|  esac
 | |
|  
 | |
| +hybrid_malloc=
 | |
| +system_malloc=yes
 | |
| +
 | |
| +test "$CANNOT_DUMP" = yes ||
 | |
| +case "$opsys" in
 | |
| +  ## darwin ld insists on the use of malloc routines in the System framework.
 | |
| +  darwin | mingw32 | nacl | sol2-10) ;;
 | |
| +  cygwin) hybrid_malloc=yes
 | |
| +          system_malloc= ;;
 | |
| +  *) test "$ac_cv_func_sbrk" = yes && system_malloc=$emacs_cv_sanitize_address;;
 | |
| +esac
 | |
| +
 | |
| +if test "${system_malloc}" != yes && test "${doug_lea_malloc}" != yes \
 | |
| +   && test "${UNEXEC_OBJ}" = unexelf.o; then
 | |
| +  hybrid_malloc=yes
 | |
| +fi
 | |
| +
 | |
|  GMALLOC_OBJ=
 | |
| +HYBRID_MALLOC=
 | |
|  if test "${system_malloc}" = "yes"; then
 | |
|    AC_DEFINE([SYSTEM_MALLOC], 1,
 | |
|      [Define to 1 to use the system memory allocator, even if it is not
 | |
| @@ -1975,6 +1993,14 @@ if test "${system_malloc}" = "yes"; then
 | |
|    GNU_MALLOC_reason="
 | |
|      (The GNU allocators don't work with this system configuration.)"
 | |
|    VMLIMIT_OBJ=
 | |
| +elif test "$hybrid_malloc" = yes; then
 | |
| +  AC_DEFINE(HYBRID_MALLOC, 1,
 | |
| +    [Define to use gmalloc before dumping and the system malloc after.])
 | |
| +  HYBRID_MALLOC=1
 | |
| +  GNU_MALLOC=no
 | |
| +  GNU_MALLOC_reason=" (only before dumping)"
 | |
| +  GMALLOC_OBJ=gmalloc.o
 | |
| +  VMLIMIT_OBJ=
 | |
|  else
 | |
|    test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o
 | |
|    VMLIMIT_OBJ=vm-limit.o
 | |
| @@ -1993,10 +2019,11 @@ else
 | |
|         of the main data segment.])
 | |
|    fi
 | |
|  fi
 | |
| +AC_SUBST([HYBRID_MALLOC])
 | |
|  AC_SUBST(GMALLOC_OBJ)
 | |
|  AC_SUBST(VMLIMIT_OBJ)
 | |
|  
 | |
| -if test "$doug_lea_malloc" = "yes" ; then
 | |
| +if test "$doug_lea_malloc" = "yes" && test "$hybrid_malloc" != yes; then
 | |
|    if test "$GNU_MALLOC" = yes ; then
 | |
|      GNU_MALLOC_reason="
 | |
|        (Using Doug Lea's new malloc from the GNU C Library.)"
 | |
| -- 
 | |
| Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
 | |
| Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
 | |
| 
 |