From: Paul Eggert Date: Mon, 24 Oct 2016 04:54:13 +0000 (-0700) Subject: Port --enable-gcc-warnings to bleeding-edge glibc X-Git-Tag: emacs-25.1.90~84 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=7bb5c4f206bfbe46b5f4a376633437f8999d956a;p=emacs.git Port --enable-gcc-warnings to bleeding-edge glibc Bleeding-edge glibc sets emacs_cv_var_doug_lea_malloc to 'no'. Do not merge to master. * configure.ac: Check for valloc decl when compiling gmalloc.c. * src/gmalloc.c (emacs_abort) [emacs]: Adjust decl to match what is in lisp.h. Remove duplicate decl. (aligned_alloc): #undef before defining. (aligned_alloc, memalign) [!MSDOS]: Declare. (valloc) [HAVE_DECL_VALLOC]: Remove duplicate decl. --- diff --git a/configure.ac b/configure.ac index 7c115a036db..ae7dfe59029 100644 --- a/configure.ac +++ b/configure.ac @@ -2158,7 +2158,10 @@ elif test "$hybrid_malloc" = yes; then GMALLOC_OBJ=gmalloc.o VMLIMIT_OBJ= else - test "$doug_lea_malloc" != "yes" && GMALLOC_OBJ=gmalloc.o + if test "$doug_lea_malloc" != "yes"; then + GMALLOC_OBJ=gmalloc.o + AC_CHECK_DECLS([valloc]) + fi VMLIMIT_OBJ=vm-limit.o AC_CHECK_HEADERS([sys/vlimit.h]) diff --git a/src/gmalloc.c b/src/gmalloc.c index d2762d74e53..fb2861c18ac 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c @@ -40,7 +40,7 @@ License along with this library. If not, see . #endif #ifdef emacs -extern void emacs_abort (void); +extern _Noreturn void emacs_abort (void) NO_INLINE; #endif /* If HYBRID_MALLOC is defined, then temacs will use malloc, @@ -59,6 +59,7 @@ extern void emacs_abort (void); #undef malloc #undef realloc #undef calloc +#undef aligned_alloc #undef free #define malloc gmalloc #define realloc grealloc @@ -95,9 +96,9 @@ extern void *calloc (size_t nmemb, size_t size) ATTRIBUTE_MALLOC_SIZE ((1,2)); extern void free (void *ptr); /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */ -#ifdef MSDOS extern void *aligned_alloc (size_t, size_t); extern void *memalign (size_t, size_t); +#ifdef MSDOS extern int posix_memalign (void **, size_t, size_t); #endif @@ -106,10 +107,6 @@ extern int posix_memalign (void **, size_t, size_t); extern void malloc_enable_thread (void); #endif -#ifdef emacs -extern void emacs_abort (void); -#endif - /* The allocator divides the heap into blocks of fixed size; large requests receive one or more whole blocks, and small requests receive a fragment of a block. Fragment sizes are powers of two, @@ -1686,7 +1683,9 @@ License along with this library. If not, see . or (US mail) as Mike Haertel c/o Free Software Foundation. */ /* Allocate SIZE bytes on a page boundary. */ +#ifndef HAVE_DECL_VALLOC extern void *valloc (size_t); +#endif #if defined _SC_PAGESIZE || !defined HAVE_GETPAGESIZE # include "getpagesize.h" @@ -1769,7 +1768,7 @@ hybrid_aligned_alloc (size_t alignment, size_t size) #endif } #endif - + void * hybrid_realloc (void *ptr, size_t size) {