[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