From f8a22f16c03e51d3c779b12f37d362faaa0ecf31 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 31 Jan 2018 21:28:53 -0800 Subject: [PATCH] build: Check for sync_file_range libc function glibc 2.27 now has sync_file_range() Upstream-Status: Pending Signed-off-by: Khem Raj --- include/builddefs.in | 1 + io/Makefile | 5 ++++- io/io.h | 2 +- io/sync_file_range.c | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/builddefs.in b/include/builddefs.in index b895949..a388c83 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -95,6 +95,7 @@ HAVE_FIEMAP = @have_fiemap@ HAVE_PREADV = @have_preadv@ HAVE_PWRITEV2 = @have_pwritev2@ HAVE_COPY_FILE_RANGE = @have_copy_file_range@ +HAVE_NR_COPY_FILE_RANGE = @have_nr_copy_file_range@ HAVE_SYNC_FILE_RANGE = @have_sync_file_range@ HAVE_SYNCFS = @have_syncfs@ HAVE_READDIR = @have_readdir@ diff --git a/io/Makefile b/io/Makefile index 00ede48..dd001b0 100644 --- a/io/Makefile +++ b/io/Makefile @@ -60,10 +60,13 @@ CFILES += inject.c resblks.c LCFLAGS += -DHAVE_INJECT -DHAVE_RESBLKS endif -ifeq ($(HAVE_COPY_FILE_RANGE),yes) +ifeq ($(HAVE_NR_COPY_FILE_RANGE),yes) CFILES += copy_file_range.c +LCFLAGS += -DHAVE_NR_COPY_FILE_RANGE +ifeq ($(HAVE_COPY_FILE_RANGE),yes) LCFLAGS += -DHAVE_COPY_FILE_RANGE endif +endif ifeq ($(HAVE_SYNC_FILE_RANGE),yes) CFILES += sync_file_range.c diff --git a/io/io.h b/io/io.h index e1f3d95..fe2e6a2 100644 --- a/io/io.h +++ b/io/io.h @@ -151,7 +151,7 @@ extern void fiemap_init(void); #define fiemap_init() do { } while (0) #endif -#ifdef HAVE_COPY_FILE_RANGE +#if defined(HAVE_NR_COPY_FILE_RANGE) && !defined(HAVE_COPY_FILE_RANGE) extern void copy_range_init(void); #else #define copy_range_init() do { } while (0) diff --git a/io/sync_file_range.c b/io/sync_file_range.c index 30bbc93..6c49d73 100644 --- a/io/sync_file_range.c +++ b/io/sync_file_range.c @@ -4,6 +4,7 @@ * All Rights Reserved. */ +#ifndef HAVE_COPY_FILE_RANGE #include "command.h" #include "input.h" #include "init.h" @@ -92,3 +93,5 @@ sync_range_init(void) add_command(&sync_range_cmd); } + +#endif