From: Jan Tulak Date: Tue, 13 Oct 2015 23:58:24 +0000 (+1100) Subject: io: Make mremap conditional X-Git-Tag: v4.3.0-rc1~27 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a49984b3afe3291fcac145295895cad19f63db3e;p=thirdparty%2Fxfsprogs-dev.git io: Make mremap conditional Don't build mremap on platforms where it has no support. Signed-off-by: Jan Tulak Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- diff --git a/configure.ac b/configure.ac index 5d8486e64..7cb87bcc4 100644 --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,7 @@ AC_HAVE_MNTENT AC_HAVE_FLS AC_HAVE_READDIR AC_HAVE_FSETXATTR +AC_HAVE_MREMAP if test "$enable_blkid" = yes; then AC_HAVE_BLKID_TOPO diff --git a/include/builddefs.in b/include/builddefs.in index 31e21baba..c1797fd2e 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -107,6 +107,7 @@ HAVE_READDIR = @have_readdir@ HAVE_MNTENT = @have_mntent@ HAVE_FLS = @have_fls@ HAVE_FSETXATTR = @have_fsetxattr@ +HAVE_MREMAP = @have_mremap@ GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall # -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl diff --git a/include/darwin.h b/include/darwin.h index 288ad1fb8..8b769d9fe 100644 --- a/include/darwin.h +++ b/include/darwin.h @@ -33,6 +33,7 @@ #include #include #include +#include #include #define __BYTE_ORDER BYTE_ORDER diff --git a/io/Makefile b/io/Makefile index 6c4810e25..a5f2ac929 100644 --- a/io/Makefile +++ b/io/Makefile @@ -90,6 +90,10 @@ CFILES += readdir.c LCFLAGS += -DHAVE_READDIR endif +ifeq ($(HAVE_MREMAP),yes) +LCFLAGS += -DHAVE_MREMAP +endif + default: depend $(LTCOMMAND) include $(BUILDRULES) diff --git a/io/mmap.c b/io/mmap.c index f26276e52..7093650ac 100644 --- a/io/mmap.c +++ b/io/mmap.c @@ -28,7 +28,9 @@ static cmdinfo_t mread_cmd; static cmdinfo_t msync_cmd; static cmdinfo_t munmap_cmd; static cmdinfo_t mwrite_cmd; +#ifdef HAVE_MREMAP static cmdinfo_t mremap_cmd; +#endif /* HAVE_MREMAP */ mmap_region_t *maptable; int mapcount; @@ -574,6 +576,7 @@ mwrite_f( return 0; } +#ifdef HAVE_MREMAP static void mremap_help(void) { @@ -633,6 +636,7 @@ mremap_f( return 0; } +#endif /* HAVE_MREMAP */ void mmap_init(void) @@ -688,6 +692,7 @@ mmap_init(void) _("writes data into a region in the current memory mapping"); mwrite_cmd.help = mwrite_help; +#ifdef HAVE_MREMAP mremap_cmd.name = "mremap"; mremap_cmd.altname = "mrm"; mremap_cmd.cfunc = mremap_f; @@ -698,11 +703,14 @@ mmap_init(void) mremap_cmd.oneline = _("alters the size of the current memory mapping"); mremap_cmd.help = mremap_help; +#endif /* HAVE_MREMAP */ add_command(&mmap_cmd); add_command(&mread_cmd); add_command(&msync_cmd); add_command(&munmap_cmd); add_command(&mwrite_cmd); +#ifdef HAVE_MREMAP add_command(&mremap_cmd); +#endif /* HAVE_MREMAP */ } diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4 index 5e900abe6..b6a7a5457 100644 --- a/m4/package_libcdev.m4 +++ b/m4/package_libcdev.m4 @@ -235,3 +235,16 @@ AC_DEFUN([AC_HAVE_MNTENT], have_mntent=yes) AC_SUBST(have_mntent) ]) + +# +# Check if we have a mremap call (not on Mac OS X) +# +AC_DEFUN([AC_HAVE_MREMAP], + [ AC_CHECK_DECL([mremap], + have_mremap=yes, + [], + [#define _GNU_SOURCE + #include ] + ) + AC_SUBST(have_mremap) + ])