GNU bug report logs - #8800
24.0.50: At revno: 104484 alloc.c does not compile

Previous Next

Package: emacs;

Reported by: Peter Dyballa <Peter_Dyballa <at> Freenet.DE>

Date: Sat, 4 Jun 2011 10:35:01 UTC

Severity: normal

Found in version 24.0.50

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Peter Dyballa <Peter_Dyballa <at> Freenet.DE>
Subject: bug#8800: closed (Re: Compilation error caused by SPARE_MEMORY)
Date: Mon, 06 Jun 2011 05:00:04 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#8800: 24.0.50: At revno: 104484 alloc.c does not compile

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 8800 <at> debbugs.gnu.org.

-- 
8800: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8800
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 8800-done <at> debbugs.gnu.org, Emacs Development <Emacs-devel <at> gnu.org>
Subject: Re: Compilation error caused by SPARE_MEMORY
Date: Sun, 05 Jun 2011 21:59:20 -0700
On 06/05/11 14:54, Glenn Morris wrote:

> As reported in http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8800

Thanks, that is a bug I recently introduced; it affects hosts such
as MacOS that define SYSTEM_MALLOC.  I fixed it in the trunk with
bzr 104508, as follows:

=== modified file 'src/ChangeLog'
--- src/ChangeLog	2011-06-05 22:46:26 +0000
+++ src/ChangeLog	2011-06-06 04:54:23 +0000
@@ -1,3 +1,11 @@
+2011-06-06  Paul Eggert  <eggert <at> cs.ucla.edu>
+
+	* alloc.c (memory_full) [SYSTEM_MALLOC]: Port to MacOS (Bug#8800).
+	Do not assume that spare memory exists; that assumption is valid
+	only if SYSTEM_MALLOC.
+	(LARGE_REQUEST): New macro, so that the issue of large requests
+	is separated from the issue of spare memory.
+
 2011-06-05  Andreas Schwab  <schwab <at> linux-m68k.org>
 
 	* editfns.c (Fformat): Correctly handle zero flag with hexadecimal

=== modified file 'src/alloc.c'
--- src/alloc.c	2011-06-02 08:35:28 +0000
+++ src/alloc.c	2011-06-06 04:54:23 +0000
@@ -196,6 +196,12 @@
 #define SPARE_MEMORY (1 << 14)
 #endif
 
+#ifdef SYSTEM_MALLOC
+# define LARGE_REQUEST (1 << 14)
+#else
+# define LARGE_REQUEST SPARE_MEMORY
+#endif
+
 /* Number of extra blocks malloc should get when it needs more core.  */
 
 static int malloc_hysteresis;
@@ -3283,15 +3289,12 @@
 {
   /* Do not go into hysterics merely because a large request failed.  */
   int enough_free_memory = 0;
-  if (SPARE_MEMORY < nbytes)
+  if (LARGE_REQUEST < nbytes)
     {
-      void *p = malloc (SPARE_MEMORY);
+      void *p = malloc (LARGE_REQUEST);
       if (p)
 	{
-	  if (spare_memory[0])
-	    free (p);
-	  else
-	    spare_memory[0] = p;
+	  free (p);
 	  enough_free_memory = 1;
 	}
     }


[Message part 3 (message/rfc822, inline)]
From: Peter Dyballa <Peter_Dyballa <at> Freenet.DE>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.0.50: At revno: 104484 alloc.c does not compile
Date: Sat, 4 Jun 2011 12:34:04 +0200
Hello!

The is the report of GCC 4.5.2:

alloc.c: In function ‘memory_full’:
alloc.c:3286:7: error: ‘SPARE_MEMORY’ undeclared (first use in this  
function)
alloc.c:3286:7: note: each undeclared identifier is reported only once  
for each function it appears in

In src/alloc.c I have:

  187	/* Points to memory space allocated as "spare", to be freed if  
we run
  188	   out of memory.  We keep one large block, four cons-blocks, and
  189	   two string blocks.  */
  190	
  191	static char *spare_memory[7];
  192	
  193	#ifndef SYSTEM_MALLOC
  194	/* Amount of spare memory to keep in large reserve block.  */
  195	
  196	#define SPARE_MEMORY (1 << 14)
  197	#endif

In src/config.h I have, around line #1060:

	#define SYSTEM_MALLOC 1

so SPARE_MEMORY does not get defined.

--
Greetings

  Pete

And always remember the last words of my grandfather, who said: “A  
truck!”
				— Emo Phillips




This bug report was last modified 14 years and 49 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.