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