tags 512514 + fixed-upstream patch
thanks

On 2009-01-21 12:18 +0100, Lucas Nussbaum wrote:

> Package: emacs22
> Version: 22.2+2-5
> Severity: serious
> User: debian...@lists.debian.org
> Usertags: qa-ftbfs-20090120 qa-ftbfs
> Justification: FTBFS on i386
>
> Hi,
>
> During a rebuild of all packages in a lenny chroot, your package failed
> to build on i386.
>
> Relevant part:
>> make[3]: Entering directory 
>> `/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/debian/build-x/lisp'
>> wd=/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp; 
>> subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case 
>> $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* ) ;; *) 
>> wins="$wins $wd/$file" ;; esac; done; \
>>      for file in $wins; do \
>>         
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/../update-subdirs
>>  $file; \
>>      done;
>> wd=/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp; 
>> subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case 
>> $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete 
>> | */term ) ;; *) wins="$wins $wd/$file" ;; esac; done; \
>>      echo Directories: $wins; \
>>      
>> EMACSLOADPATH=/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp
>>  ../src/bootstrap-emacs -batch --no-site-file --multibyte -l autoload --eval 
>> '(setq generated-autoload-file 
>> "/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/loaddefs.el")'
>>  -f batch-update-autoloads $wins
>> Directories: 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/. 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./erc 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./net 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./language 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./mail 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./progmodes 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./mh-e 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./play 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./gnus 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./international
>>  /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./url 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./eshell 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./textmodes 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./calc 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./emulation 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./calendar 
>> /build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/./emacs-lisp
>> /bin/sh: line 2: 20021 Segmentation fault      
>> EMACSLOADPATH=/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp
>>  ../src/bootstrap-emacs -batch --no-site-file --multibyte -l autoload --eval 
>> '(setq generated-autoload-file 
>> "/build/user-emacs22_22.2+2-5-amd64-GCGChk/emacs22-22.2+2-5/lisp/loaddefs.el")'
>>  -f batch-update-autoloads $wins
>> make[3]: *** [autoloads] Error 139

This seems to be the same problem that had been reported in Gentoo and
upstream, see [0], [1].  Could you please try the following patch, taken
from the Emacs trunk?  It should fix the failure, but since the segfault
only happens in ~ 1% of all builds it would be good to try building
emacs22 a few hundred times with and without the patch.

--8<---------------cut here---------------start------------->8---
Index: emacs.c
===================================================================
RCS file: /sources/emacs/emacs/src/emacs.c,v
retrieving revision 1.448
retrieving revision 1.449
diff -u -r1.448 -r1.449
--- emacs.c     6 Oct 2008 16:16:56 -0000       1.448
+++ emacs.c     21 Oct 2008 06:32:28 -0000      1.449
@@ -212,8 +212,8 @@
 /* The gap between BSS end and heap start as far as we can tell.  */
 static unsigned long heap_bss_diff;
 
-/* If the gap between BSS end and heap start is larger than this we try to
-   work around it, and if that fails, output a warning in dump-emacs.  */
+/* If the gap between BSS end and heap start is larger than this
+   output a warning in dump-emacs.  */
 #define MAX_HEAP_BSS_DIFF (1024*1024)
 
 
@@ -861,29 +861,24 @@
     }
 
 #ifdef HAVE_PERSONALITY_LINUX32
-  /* See if there is a gap between the end of BSS and the heap.
-     In that case, set personality and exec ourself again.  */
   if (!initialized
       && (strcmp (argv[argc-1], "dump") == 0
           || strcmp (argv[argc-1], "bootstrap") == 0)
-      && heap_bss_diff > MAX_HEAP_BSS_DIFF)
+      && ! getenv ("EMACS_HEAP_EXEC"))
     {
-      if (! getenv ("EMACS_HEAP_EXEC"))
-        {
-          /* Set this so we only do this once.  */
-          putenv("EMACS_HEAP_EXEC=true");
+      /* Set this so we only do this once.  */
+      putenv("EMACS_HEAP_EXEC=true");
 
-         /* A flag to turn off address randomization which is introduced
-          in linux kernel shipped with fedora core 4 */
+      /* A flag to turn off address randomization which is introduced
+         in linux kernel shipped with fedora core 4 */
 #define ADD_NO_RANDOMIZE 0x0040000
-         personality (PER_LINUX32 | ADD_NO_RANDOMIZE);
+      personality (PER_LINUX32 | ADD_NO_RANDOMIZE);
 #undef  ADD_NO_RANDOMIZE
 
-          execvp (argv[0], argv);
+      execvp (argv[0], argv);
 
-          /* If the exec fails, try to dump anyway.  */
-          perror ("execvp");
-        }
+      /* If the exec fails, try to dump anyway.  */
+      perror ("execvp");
     }
 #endif /* HAVE_PERSONALITY_LINUX32 */
 
--8<---------------cut here---------------end--------------->8---

Cheers,
       Sven


0. http://bugs.gentoo.org/236579
1. http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=900




--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to