diff -ru libeatmydata-9-orig/Makefile libeatmydata-9/Makefile
--- libeatmydata-9-orig/Makefile	Tue May 12 03:11:01 2009
+++ libeatmydata-9/Makefile	Fri Mar  5 02:50:33 2010
@@ -4,13 +4,13 @@
 	rm -f libeatmydata.so* fsynctest
 
 libs: eatmydata.c
-	gcc -shared -Wl,-soname,libeatmydata.so.1  -ldl -o libeatmydata.so.1.0  eatmydata.c -fPIC
+	gcc -shared -Wl,-h,libeatmydata.so.1  -ldl -o libeatmydata.so.1.0  eatmydata.c -fPIC
 	@rm -f libeatmydata.so.1 libeatmydata.so
 	ln -s libeatmydata.so.1.0 libeatmydata.so.1
 	ln -s libeatmydata.so.1 libeatmydata.so
 
 fsynctest: fsynctest.c
-	gcc -o fsynctest fsynctest.c
+	gcc -o fsynctest fsynctest.c -lrt # -lrt for fdatasync() on Solaris.
 
 test: runfsynctest
 
diff -ru libeatmydata-9-orig/fsynctest.c libeatmydata-9/fsynctest.c
--- libeatmydata-9-orig/fsynctest.c	Tue May 12 03:11:01 2009
+++ libeatmydata-9/fsynctest.c	Fri Mar  5 02:53:52 2010
@@ -22,10 +22,16 @@
 int main(int argc, char* argv[])
 {
 	int fd;
+	int i;
 	fd= open(argv[0],O_RDONLY|O_SYNC|O_DSYNC);
-	fsync(fd);
-	fdatasync(fd);
-	sync();
+	for (i = 0; i < 1000; ++i) {
+		write(fd, "a", 1);
+		fsync(fd);
+		write(fd, "a", 1);
+		fdatasync(fd);
+		write(fd, "a", 1);
+		sync();
+	}
 	close(fd);
 	return 0;
 }

