]> git.eshelyaron.com Git - emacs.git/commitdiff
Pacify GCC on C library without glibc API
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 31 Jan 2016 02:38:51 +0000 (18:38 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 31 Jan 2016 02:39:27 +0000 (18:39 -0800)
Without this change, with --enable-gcc-warnings GCC would complain
“error: redundant redeclaration of ‘aligned_alloc’”.
* configure.ac: Simplify aligned_alloc testing.
* src/alloc.c (aligned_alloc): Don’t use if DARWIN_OS,
since the simplified configure.ac no longer checks for that.
Don’t declare if HAVE_ALIGNED_ALLOC.
Correct misspelling of HAVE_ALIGNED_ALLOC in ifdef.

configure.ac
src/alloc.c

index 5d6fcda86c424d5be17235c063db61b349336e61..57bde94d8542a28127cf9cf65d715a6948a42e11 100644 (file)
@@ -3806,14 +3806,8 @@ getpwent endpwent getgrent endgrent \
 cfmakeraw cfsetspeed copysign __executable_start log2)
 LIBS=$OLD_LIBS
 
-dnl No need to check for aligned_alloc and posix_memalign if using
-dnl gmalloc.o, as it supplies them, unless we're using hybrid_malloc.
-dnl Don't use these functions on Darwin as they are incompatible with
-dnl unexmacosx.c.
-if (test -z "$GMALLOC_OBJ" || test "$hybrid_malloc" = yes) \
-  && test "$opsys" != darwin; then
-  AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break])
-fi
+dnl No need to check for posix_memalign if aligned_alloc works.
+AC_CHECK_FUNCS([aligned_alloc posix_memalign], [break])
 
 dnl Cannot use AC_CHECK_FUNCS
 AC_CACHE_CHECK([for __builtin_unwind_init],
index d379761c168abaa0fc5105c44cfee8efb0af3872..5f74d9061e5d93585ea59dd1cfa228066fb46304 100644 (file)
@@ -1105,15 +1105,18 @@ lisp_free (void *block)
 
 /* Use aligned_alloc if it or a simple substitute is available.
    Address sanitization breaks aligned allocation, as of gcc 4.8.2 and
-   clang 3.3 anyway.  */
+   clang 3.3 anyway.  Aligned allocation is incompatible with
+   unexmacosx.c, so don't use it on Darwin.  */
 
-#if ! ADDRESS_SANITIZER
+#if ! ADDRESS_SANITIZER && ! DARWIN_OS
 # if !defined SYSTEM_MALLOC && !defined DOUG_LEA_MALLOC && !defined HYBRID_MALLOC
 #  define USE_ALIGNED_ALLOC 1
+#  ifndef HAVE_ALIGNED_ALLOC
 /* Defined in gmalloc.c.  */
 void *aligned_alloc (size_t, size_t);
+#  endif
 # elif defined HYBRID_MALLOC
-#  if defined ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN
+#  if defined HAVE_ALIGNED_ALLOC || defined HAVE_POSIX_MEMALIGN
 #   define USE_ALIGNED_ALLOC 1
 #   define aligned_alloc hybrid_aligned_alloc
 /* Defined in gmalloc.c.  */