| 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 |