diff options
| author | Paul Eggert | 2016-01-30 14:20:57 -0800 |
|---|---|---|
| committer | Paul Eggert | 2016-01-30 15:26:08 -0800 |
| commit | a4817d834e7d125d31049dfb6fd0a0df4782bad0 (patch) | |
| tree | b2e63ff90a6307c20982e55fd779f670c28f6244 /src/lisp.h | |
| parent | e4cd4a76a621927bc155a18353ef7fd09133887d (diff) | |
| download | emacs-a4817d834e7d125d31049dfb6fd0a0df4782bad0.tar.gz emacs-a4817d834e7d125d31049dfb6fd0a0df4782bad0.zip | |
Include <malloc.h> when advisable
This should help insulate us better from future glibc changes.
It is good hygiene to include .h files for APIs that Emacs uses.
Fix type clashes between Emacs and GNU <malloc.h> (Bug#22086).
* configure.ac: Check for malloc.h.
* src/alloc.c: Include <malloc.h> depending on HAVE_MALLOC_H,
not on DOUG_LEA_MALLOC.
* src/emacs.c, src/gmalloc.c (malloc_enable_thread):
Remove decl (now in lisp.h).
* src/gmalloc.c: Include stddef.h earlier, for ptrdiff_t.
[emacs]: Include lisp.h.
[HAVE_MALLOC_H]: Include <malloc.h>.
(__MALLOC_HOOK_VOLATILE): New macro, if not already defined.
(__after_morecore_hook, __malloc_initialize_hook, __morecore)
(__default_morecore):
[!HAVE_MALLOC_H]: New decls near non-inclusion of <malloc.h>.
(calloc): Make it clear that the macro should not be used.
Remove unused decl.
(malloc_info): New macro, to avoid clash with glibc <malloc.h>.
(__morecore, __default_morecore, __after_morecore_hook)
(__malloc_extra_blocks, __malloc_initialize_hook, __free_hook)
(__malloc_hook, __realloc_hook, __memalign_hook, memory_warnings):
Remove later decls.
(gmalloc_hook, gfree_hook, grealloc_hook):
Rename from __malloc_hook, __free_hook, __realloc_hook to
avoid type collision with glibc <malloc.h>. All uses changed.
(gmalloc_hook):
(__malloc_extra_blocks) [DOUG_LEA_MALLOC||HYBRID_MALLOC||SYSTEM_MALLOC]:
Now static.
(gmalloc_hook, __malloc_extra_blocks): Define even if [!HYBRID_MALLOC].
(__malloc_initialize_hook, __after_morecore_hook):
Declare with types compatible with glibc.
(__memalign_hook, hybrid_calloc) [HYBRID_MALLOC]:
Remove. All uses removed.
* src/lisp.h (__malloc_extra_blocks, malloc_enable_thread): New decls.
* src/ralloc.c, src/vm-limit.c:
Simplify includes and include <malloc.h> if available.
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h index 3c8e3ddb137..4f4ec2c5fcc 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -3769,6 +3769,12 @@ extern void check_cons_list (void); | |||
| 3769 | INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); } | 3769 | INLINE void (check_cons_list) (void) { lisp_h_check_cons_list (); } |
| 3770 | #endif | 3770 | #endif |
| 3771 | 3771 | ||
| 3772 | #if !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC && !defined SYSTEM_MALLOC | ||
| 3773 | /* Defined in gmalloc.c. */ | ||
| 3774 | extern size_t __malloc_extra_blocks; | ||
| 3775 | #endif | ||
| 3776 | extern void malloc_enable_thread (void); | ||
| 3777 | |||
| 3772 | #ifdef REL_ALLOC | 3778 | #ifdef REL_ALLOC |
| 3773 | /* Defined in ralloc.c. */ | 3779 | /* Defined in ralloc.c. */ |
| 3774 | extern void *r_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2)); | 3780 | extern void *r_alloc (void **, size_t) ATTRIBUTE_ALLOC_SIZE ((2)); |