[Ocfs2-test-devel] [PATCH 2/2] Ocfs2-test: Modify splice_test correspondingly after moving splice() to api-compat.

Tristan Ye tristan.ye at oracle.com
Tue Apr 14 21:03:07 PDT 2009


Move splice() call to api-compat from splice_test.h,now ocfs2-test
will use our private splice() version defined in api-compat headers
only if the public version in bits/fcntl.h was unavailable. otherwise
we'd rather use the public one instead by default.

Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
---
 Makefile                                           |    3 ++-
 .../splice_test.h => api-compat/include/splice.h   |   10 ++++------
 configure.in                                       |    9 +++++++++
 programs/splice/Makefile                           |    4 +++-
 programs/splice/splice_read.c                      |    9 ++++++++-
 programs/splice/splice_write.c                     |    9 ++++++++-
 6 files changed, 34 insertions(+), 10 deletions(-)
 rename programs/splice/splice_test.h => api-compat/include/splice.h (81%)

diff --git a/Makefile b/Makefile
index 3988a39..c412e61 100644
--- a/Makefile
+++ b/Makefile
@@ -26,7 +26,8 @@ SUBDIRS = programs utilities tests suites
 
 SUBDIRS += vendor
 
-API_COMPAT_FILES =
+API_COMPAT_FILES = \
+	api-compat/include/splice.h
 
 DIST_FILES = \
 	COPYING					\
diff --git a/programs/splice/splice_test.h b/api-compat/include/splice.h
similarity index 81%
rename from programs/splice/splice_test.h
rename to api-compat/include/splice.h
index 5113bbb..08966c1 100644
--- a/programs/splice/splice_test.h
+++ b/api-compat/include/splice.h
@@ -1,11 +1,8 @@
-#define _GNU_SOURCE
-#include <stdio.h>
-#include <stdlib.h>
+#ifndef API_SPLICE_H
+#define API_SPLICE_H
+
 #include <unistd.h>
 #include <fcntl.h>
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
 
 #if defined(__i386__)
 
@@ -37,3 +34,4 @@ int splice(int fdin, loff_t *off_in, int fdout,
 	return syscall(__NR_splice, fdin, off_in, fdout, off_out, len, flags);
 }
 
+#endif
diff --git a/configure.in b/configure.in
index da5cd14..c45df62 100644
--- a/configure.in
+++ b/configure.in
@@ -130,6 +130,15 @@ AM_PATH_PYTHON(2.3, , AC_MSG_ERROR([could not find Python 2.3 or higher.]))
 API_COMPAT_HEADERS=""
 API_COMPAT_CFLAGS=""
 
+splice_compat_header=""
+OCFS2_CHECK_HEADERS([splice() in bits/fcntl.h], bits/fcntl.h,
+  , splice_compat_header="splice.h", [splice (int __fdin])
+API_COMPAT_HEADERS="$API_COMPAT_HEADERS $splice_compat_header"
+
+for h in $API_COMPAT_HEADERS; do
+  API_COMPAT_CFLAGS="$API_COMPAT_CFLAGS -include \$(TOPDIR)/api-compat/include/$h"
+done
+
 AC_SUBST(API_COMPAT_CFLAGS)
 
 AC_CONFIG_FILES([
diff --git a/programs/splice/Makefile b/programs/splice/Makefile
index f1ecd1a..37159bf 100644
--- a/programs/splice/Makefile
+++ b/programs/splice/Makefile
@@ -6,7 +6,9 @@ TESTS = splice_read splice_write
 
 CFLAGS = -O2 -Wall -g
 
-SPLICE_READ_SOURCES = splice_read.c splice_test.h
+CFLAGS += $(EXTRA_CFLAGS)
+
+SPLICE_READ_SOURCES = splice_read.c
 SPLICE_READ_OBJECTS = $(patsubst %.c,%.o,$(SPLICE_READ_SOURCES))
 SPLICE_WRITE_SOURCES = splice_write.c
 SPLICE_WRITE_OBJECTS = $(patsubst %.c,%.o,$(SPLICE_WRITE_SOURCES))
diff --git a/programs/splice/splice_read.c b/programs/splice/splice_read.c
index c25522e..42e29bf 100644
--- a/programs/splice/splice_read.c
+++ b/programs/splice/splice_read.c
@@ -1,5 +1,12 @@
 /* splice_read.c */
-#include "splice_test.h"
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
 
 int main(int argc, char *argv[])
 {
diff --git a/programs/splice/splice_write.c b/programs/splice/splice_write.c
index a4d8c1a..e273fbc 100644
--- a/programs/splice/splice_write.c
+++ b/programs/splice/splice_write.c
@@ -1,5 +1,12 @@
 /* splice_write.c */
-#include "splice_test.h"
+#define _GNU_SOURCE
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <errno.h>
+#include <limits.h>
 
 int main(int argc, char *argv[])
 {
-- 
1.5.5




More information about the Ocfs2-test-devel mailing list