1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/configure.ac
+++ emacs/configure.ac
@@ -2092,7 +2092,7 @@
system_malloc=$emacs_cv_sanitize_address
-hybrid_malloc=
+hybrid_malloc=yes
case "$opsys" in
## darwin ld insists on the use of malloc routines in the System framework.
--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/Makefile.in
+++ emacs/src/Makefile.in
@@ -373,6 +373,7 @@
region-cache.o sound.o atimer.o \
doprnt.o intervals.o textprop.o composite.o xml.o $(NOTIFY_OBJ) \
profiler.o decompress.o \
+ sheap.o \
$(MSDOS_OBJ) $(MSDOS_X_OBJ) $(NS_OBJ) $(CYGWIN_OBJ) $(FONT_OBJ) \
$(W32_OBJ) $(WINDOW_SYSTEM_OBJ) $(XGSELOBJ)
obj = $(base_obj) $(NS_OBJC_OBJ)
--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/gmalloc.c
+++ emacs/src/gmalloc.c
@@ -72,7 +72,7 @@
#define free gfree
#endif /* HYBRID_MALLOC */
-#ifdef CYGWIN
+//#ifdef CYGWIN
extern void *bss_sbrk (ptrdiff_t size);
extern int bss_sbrk_did_unexec;
extern char bss_sbrk_buffer[];
@@ -80,7 +80,7 @@
#define DUMPED bss_sbrk_did_unexec
#define ALLOCATED_BEFORE_DUMPING(P) \
((P) < bss_sbrk_buffer_end && (P) >= (void *) bss_sbrk_buffer)
-#endif
+//#endif
#ifdef __cplusplus
extern "C"
@@ -1525,16 +1525,19 @@
__default_morecore (ptrdiff_t increment)
{
void *result;
-#if defined (CYGWIN)
+//#if defined (CYGWIN)
if (!DUMPED)
{
return bss_sbrk (increment);
}
-#endif
+//#endif
+#if 0
result = (void *) __sbrk (increment);
if (result == (void *) -1)
return NULL;
return result;
+#endif
+ return NULL;
}
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/print.c
+++ emacs/src/print.c
@@ -755,7 +755,7 @@
print_output_debug_flag = x;
}
-#if defined (GNU_LINUX)
+#if defined (GNU_LINUX) && defined (__GLIBC__)
/* This functionality is not vitally important in general, so we rely on
non-portable ability to use stderr as lvalue. */
--- emacs-4188e3cc2bc69e75d4387b369e72e89fecc46a86/src/unexelf.c
+++ emacs/src/unexelf.c
@@ -632,6 +632,9 @@
off_t new_file_size;
void *new_break;
+ extern int bss_sbrk_did_unexec;
+ bss_sbrk_did_unexec = 1;
+
/* Pointers to the base of the image of the two files. */
caddr_t old_base, new_base;
|