]> git.eshelyaron.com Git - emacs.git/commitdiff
Port --enable-gcc-warnings to bleeding-edge glibc
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 24 Oct 2016 04:54:13 +0000 (21:54 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 24 Oct 2016 04:55:07 +0000 (21:55 -0700)
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.

configure.ac
src/gmalloc.c

index 7c115a036db9f4255f2d1220c5961cb402e497bf..ae7dfe59029de6943af2d0fbcc0274ba1085a29a 100644 (file)
@@ -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])
index d2762d74e53008fb819d672d2bd613eb81d2c855..fb2861c18ac5d2012ecabcdbf785553af1dc4588 100644 (file)
@@ -40,7 +40,7 @@ License along with this library.  If not, see <http://www.gnu.org/licenses/>.
 #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 <http://www.gnu.org/licenses/>.
    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)
 {