From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.bugs Subject: bug#9926: patch: emacs-24.0.91 FTBFS on GNU/Hurd Date: Tue, 08 Nov 2011 08:44:21 -0800 Organization: UCLA Computer Science Department Message-ID: <4EB95C65.2020404@cs.ucla.edu> References: <1320754903.5597.30.camel@s1499.it.kth.se> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1320770733 23218 80.91.229.12 (8 Nov 2011 16:45:33 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Tue, 8 Nov 2011 16:45:33 +0000 (UTC) Cc: 9926@debbugs.gnu.org To: srs@kth.se Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Nov 08 17:45:29 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RNonf-0001fc-PP for geb-bug-gnu-emacs@m.gmane.org; Tue, 08 Nov 2011 17:45:28 +0100 Original-Received: from localhost ([::1]:34182 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNonf-0005al-3f for geb-bug-gnu-emacs@m.gmane.org; Tue, 08 Nov 2011 11:45:27 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:53295) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNonX-0005aT-9Y for bug-gnu-emacs@gnu.org; Tue, 08 Nov 2011 11:45:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RNonJ-0007fx-2H for bug-gnu-emacs@gnu.org; Tue, 08 Nov 2011 11:45:19 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57161) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RNonI-0007ff-TE for bug-gnu-emacs@gnu.org; Tue, 08 Nov 2011 11:45:04 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1RNoq9-0005cv-T6 for bug-gnu-emacs@gnu.org; Tue, 08 Nov 2011 11:48:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Paul Eggert Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 08 Nov 2011 16:48:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9926 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9926-submit@debbugs.gnu.org id=B9926.132077085421592 (code B ref 9926); Tue, 08 Nov 2011 16:48:01 +0000 Original-Received: (at 9926) by debbugs.gnu.org; 8 Nov 2011 16:47:34 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RNopg-0005cC-Um for submit@debbugs.gnu.org; Tue, 08 Nov 2011 11:47:33 -0500 Original-Received: from smtp.cs.ucla.edu ([131.179.128.62]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RNopb-0005c1-Nx for 9926@debbugs.gnu.org; Tue, 08 Nov 2011 11:47:31 -0500 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp.cs.ucla.edu (Postfix) with ESMTP id 6537F39E800D; Tue, 8 Nov 2011 08:44:28 -0800 (PST) X-Virus-Scanned: amavisd-new at smtp.cs.ucla.edu Original-Received: from smtp.cs.ucla.edu ([127.0.0.1]) by localhost (smtp.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rGeh2ud831ZZ; Tue, 8 Nov 2011 08:44:27 -0800 (PST) Original-Received: from penguin.cs.ucla.edu (Penguin.CS.UCLA.EDU [131.179.64.200]) by smtp.cs.ucla.edu (Postfix) with ESMTPSA id 7B83D39E800C; Tue, 8 Nov 2011 08:44:27 -0800 (PST) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0) Gecko/20110927 Thunderbird/7.0 In-Reply-To: <1320754903.5597.30.camel@s1499.it.kth.se> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Tue, 08 Nov 2011 11:48:01 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:53702 Archived-At: On 11/08/11 04:21, Svante Signell wrote: > the previous comment by Stefan Monnier says that > GC_MAKE_GCPROS_NOOPS should be set as the default. So what is wrong > with patching gnu.h?? I don't see anything wrong with changing Emacs to use GC_MAKE_GCPROS_NOOPS on GNU/Hurd. If there's no objection I would like to install the change suggested by Stefan, which should have the same effect as patching gnu.h but results in cleaner code internally. Please see the patch below. > Anyway, which are the differences/consequences of that part of the code > in which_symbols being executed compared to not when GC_MARK_STACK is > unset or set to GC_MAKE_GCPROS_NOOPS? As Stefan wrote, which_symbols is executed only if you run Emacs under a debugger and execute it yourself. And in that case, the new DEADP macro should do the right thing, regardless of what GC_MARK_STACK is set or unset to. === modified file 'src/ChangeLog' --- src/ChangeLog 2011-11-08 07:25:56 +0000 +++ src/ChangeLog 2011-11-08 16:36:16 +0000 @@ -1,3 +1,15 @@ +2011-11-08 Paul Eggert + + Set GC_MARK_STACK to GC_MAKE_GCPROS_NOOPS on GNU/Hurd (Bug#9926). + * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS. + * s/cygwin.h, s/darwin.h, s/freebsd.h, s/irix6-5.h, s/msdos.h: + * s/netbsd.h, s/sol2-6.h: + Remove definition of GC_MARK_STACK, since the default now works. + * s/aix4-2.h, s/hpux10-20.h, s/ms-w32.h, s/unixware.h: + Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's + no longer the default. + * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default. + 2011-11-08 Chong Yidong * window.c (Fwindow_left_column, Fwindow_top_line): Doc fix. === modified file 'src/lisp.h' --- src/lisp.h 2011-11-07 17:04:01 +0000 +++ src/lisp.h 2011-11-08 16:29:11 +0000 @@ -2213,7 +2213,7 @@ #define GC_USE_GCPROS_CHECK_ZOMBIES 3 #ifndef GC_MARK_STACK -#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE +#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS #endif /* Whether we do the stack marking manually. */ === modified file 'src/s/aix4-2.h' --- src/s/aix4-2.h 2011-07-07 01:32:56 +0000 +++ src/s/aix4-2.h 2011-11-08 16:29:11 +0000 @@ -75,3 +75,7 @@ Emacs currently calls xrealloc on the results of get_current_dir name, to avoid a crash just use the Emacs implementation for that function. */ #define BROKEN_GET_CURRENT_DIR_NAME 1 + +/* Conservative garbage collection has not been tested, so for now + play it safe and stick with the old-fashioned way of marking. */ +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE === modified file 'src/s/cygwin.h' --- src/s/cygwin.h 2011-03-17 05:15:08 +0000 +++ src/s/cygwin.h 2011-11-08 16:29:11 +0000 @@ -85,12 +85,6 @@ change their controlling terminal */ #define vfork fork -/* This should work (at least when compiling with gcc). But I have no way - or intention to verify or even test it. If you encounter a problem with - it, feel free to change this setting, but please add a comment here about - why it needed to be changed. */ -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS - /* Virtual addresses of pure and impure space can vary, as on Windows. */ #define VIRT_ADDR_VARIES === modified file 'src/s/darwin.h' --- src/s/darwin.h 2011-08-09 22:13:11 +0000 +++ src/s/darwin.h 2011-11-08 16:29:11 +0000 @@ -145,6 +145,3 @@ It is already a controlling terminal of subprocess, because we did ioctl TIOCSCTTY. */ #define DONT_REOPEN_PTY - -/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */ -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS === modified file 'src/s/freebsd.h' --- src/s/freebsd.h 2011-02-16 01:35:20 +0000 +++ src/s/freebsd.h 2011-11-08 16:29:11 +0000 @@ -58,6 +58,3 @@ /* Tell that garbage collector that setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf. */ #define GC_SETJMP_WORKS 1 - -/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */ -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS === modified file 'src/s/gnu-linux.h' --- src/s/gnu-linux.h 2011-09-09 01:06:52 +0000 +++ src/s/gnu-linux.h 2011-11-08 16:29:11 +0000 @@ -145,7 +145,6 @@ || defined __arm__ || defined __powerpc__ || defined __amd64__ \ || defined __ia64__ || defined __sh__ #define GC_SETJMP_WORKS 1 -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS #ifdef __mc68000__ #define GC_LISP_OBJECT_ALIGNMENT 2 #endif @@ -158,4 +157,6 @@ __builtin_ia64_bsp (), 0); \ } while (0) #endif +#else +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE #endif === modified file 'src/s/hpux10-20.h' --- src/s/hpux10-20.h 2011-02-16 01:35:20 +0000 +++ src/s/hpux10-20.h 2011-11-08 16:29:11 +0000 @@ -101,6 +101,10 @@ on HP-UX. (You get duplicate symbol errors on linking). */ #undef _FILE_OFFSET_BITS +/* Conservative garbage collection has not been tested, so for now + play it safe and stick with the old-fashioned way of marking. */ +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE + /* Define VIRT_ADDR_VARIES if the virtual addresses of pure and impure space as loaded can vary, and even their relative order cannot be relied on. === modified file 'src/s/irix6-5.h' --- src/s/irix6-5.h 2011-07-07 03:24:33 +0000 +++ src/s/irix6-5.h 2011-11-08 16:29:11 +0000 @@ -95,7 +95,6 @@ /* Tested on Irix 6.5. SCM worked on earlier versions. */ #define GC_SETJMP_WORKS 1 -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which === modified file 'src/s/ms-w32.h' --- src/s/ms-w32.h 2011-11-05 16:30:13 +0000 +++ src/s/ms-w32.h 2011-11-08 16:29:11 +0000 @@ -402,5 +402,8 @@ #define DebPrint(stuff) #endif +/* Conservative garbage collection has not been tested, so for now + play it safe and stick with the old-fashioned way of marking. */ +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE /* ============================================================ */ === modified file 'src/s/msdos.h' --- src/s/msdos.h 2011-02-26 12:55:10 +0000 +++ src/s/msdos.h 2011-11-08 16:29:11 +0000 @@ -137,5 +137,3 @@ /* Tell the garbage collector that setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf. */ #define GC_SETJMP_WORKS 1 -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS - === modified file 'src/s/netbsd.h' --- src/s/netbsd.h 2011-02-16 01:35:20 +0000 +++ src/s/netbsd.h 2011-11-08 16:29:11 +0000 @@ -38,6 +38,3 @@ /* Tell that garbage collector that setjmp is known to save all registers relevant for conservative garbage collection in the jmp_buf. */ #define GC_SETJMP_WORKS 1 - -/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method. */ -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS === modified file 'src/s/sol2-6.h' --- src/s/sol2-6.h 2011-04-16 22:06:00 +0000 +++ src/s/sol2-6.h 2011-11-08 16:29:11 +0000 @@ -59,4 +59,3 @@ } #define GC_SETJMP_WORKS 1 -#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS === modified file 'src/s/unixware.h' --- src/s/unixware.h 2011-04-16 22:06:00 +0000 +++ src/s/unixware.h 2011-11-08 16:29:11 +0000 @@ -50,3 +50,7 @@ } #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base) + +/* Conservative garbage collection has not been tested, so for now + play it safe and stick with the old-fashioned way of marking. */ +#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE