compat/nedmalloc: Fix compiler warnings on linux
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>
Sat, 27 Apr 2013 18:46:17 +0000 (19:46 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 28 Apr 2013 19:26:09 +0000 (12:26 -0700)
On linux, when the build variable USE_NED_ALLOCATOR is set, gcc
issues the following warnings:

In file included from compat/nedmalloc/nedmalloc.c:63:
.../malloc.c.h: In function 'mmap_resize':
.../malloc.c.h:3762: warning: implicit declaration of function 'mremap'
.../malloc.c.h: In function 'sys_trim':
.../malloc.c.h:4195: warning: comparison between pointer and integer

The warnings are caused by the <sys/mman.h> header not enabling the
(conditional) declaration of the mremap() function. The declaration
can be enabled by defining the _GNU_SOURCE symbol prior to including
certain system header files. In particular, it may not be sufficient
to simply define _GNU_SOURCE just prior to including the <sys/mman.h>
header. (e.g. defining the symbol after including <sys/types.h> will
be completely ineffective.)

In order to suppress the warnings, we define the _GNU_SOURCE symbol
at the start of the malloc.c.h header file.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/nedmalloc/malloc.c.h
index fdcca82ba7d19f0072938e524d254d91d2b560b3..5a44dead9dd51cbf194d14f7f367844f780298d0 100644 (file)
@@ -484,6 +484,10 @@ MAX_RELEASE_CHECK_RATE   default: 4095 unless not HAVE_MMAP
 #define DLMALLOC_VERSION 20804
 #endif /* DLMALLOC_VERSION */
 
+#if defined(linux)
+#define _GNU_SOURCE 1
+#endif
+
 #ifndef WIN32
 #ifdef _WIN32
 #define WIN32 1