GNU bug report logs -
#8800
24.0.50: At revno: 104484 alloc.c does not compile
Previous Next
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
[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)]
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)]
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.