blob: b5071aea6aab38e01817f95c9b17c7a031818bf6 [file] [log] [blame]
From 1a4c9ebbb8731f2e3631d77b7eeaf3c373141d88 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
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 <raj.khem@gmail.com>
---
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 d38dc7e..706eca6 100644
--- a/include/builddefs.in
+++ b/include/builddefs.in
@@ -94,6 +94,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 484e2b5..2751dcb 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -53,10 +53,13 @@ else
LSRCFILES += fiemap.c
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 6469179..678b3d7 100644
--- a/io/io.h
+++ b/io/io.h
@@ -146,7 +146,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