Don't build mremap (in xfs_io) on platforms where it has no support. Signed-off-by: Jan Tulak <jtulak@xxxxxxxxxx> --- configure.ac | 1 + include/builddefs.in | 1 + include/darwin.h | 1 + io/mmap.c | 8 ++++++++ m4/package_libcdev.m4 | 13 +++++++++++++ 5 files changed, 24 insertions(+) diff --git a/configure.ac b/configure.ac index 5d8486e..7cb87bc 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 31e21ba..c1797fd 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 0313f46..16ead12 100644 --- a/include/darwin.h +++ b/include/darwin.h @@ -33,6 +33,7 @@ #include <mach/mach_time.h> #include <inttypes.h> #include <stdio.h> +#include <sys/mman.h> #include <machine/endian.h> #define __BYTE_ORDER BYTE_ORDER diff --git a/io/mmap.c b/io/mmap.c index f26276e..7093650 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 5e900ab..b6a7a54 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 <sys/mman.h>] + ) + AC_SUBST(have_mremap) + ]) -- 2.4.3 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs