Files
haikuports/app-benchmarks/iozone/patches/iozone-3.326.patchset
2017-08-26 13:35:15 +02:00

250 lines
7.6 KiB
Plaintext

From 0f41a2987ab4de6d04b395b88bd506e699a42d73 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 26 Aug 2017 13:21:47 +0200
Subject: Haiku patch
diff --git a/src/current/fileop.c b/src/current/fileop.c
index 57ddf68..d6fb79c 100644
--- a/src/current/fileop.c
+++ b/src/current/fileop.c
@@ -116,7 +116,7 @@ void file_unlink(int);
void file_read(int);
void splash(void);
void usage(void);
-void bzero();
+//void bzero();
void clear_stats();
int validate(char *, int , char );
@@ -138,14 +138,15 @@ int dirlen;
/************************************************************************/
void purge_buffer_cache()
{
- if (!mountname)
- return;
+
char cwd[PATH_MAX];
char command[1024];
int ret,i;
getcwd(cwd, sizeof(cwd));
+ if (!mountname)
+ return;
chdir("/");
strcpy(command,"umount ");
strcat(command, mountname);
@@ -242,7 +243,7 @@ int main(int argc, char **argv)
printf("\nFileop: Working in %s, File size is %d, Output is in Ops/sec. (A=Avg, B=Best, W=Worst)\n", thedir, sz);
if(!verbose)
{
-#ifdef Windows
+#if defined(Windows) || defined(Haiku)
printf(" . %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %7s %10s\n",
"mkdir","chdir","rmdir","create","open","read","write","close","stat",
"access","chmod","readdir","delete"," Total_files");
@@ -450,7 +451,7 @@ int main(int argc, char **argv)
printf(" Worst readdir(s)/sec = %12.2f (%12.9f seconds/op)\n\n",
1/stats[_STAT_READDIR].worst,stats[_STAT_READDIR].worst);
}
-#if !defined(Windows)
+#if 0
/*
* link test
*/
@@ -517,7 +518,7 @@ int main(int argc, char **argv)
printf("%7.0f ",stats[_STAT_ACCESS].counter/stats[_STAT_ACCESS].total_time);
printf("%7.0f ",stats[_STAT_CHMOD].counter/stats[_STAT_CHMOD].total_time);
printf("%7.0f ",stats[_STAT_READDIR].counter/stats[_STAT_READDIR].total_time);
-#ifndef Windows
+#if !defined(Windows) || !defined(Haiku)
printf("%7.0f ",stats[_STAT_LINK].counter/stats[_STAT_LINK].total_time);
printf("%7.0f ",stats[_STAT_UNLINK].counter/stats[_STAT_UNLINK].total_time);
#endif
@@ -540,7 +541,7 @@ int main(int argc, char **argv)
printf("%7.0f ",1/stats[_STAT_ACCESS].best);
printf("%7.0f ",1/stats[_STAT_CHMOD].best);
printf("%7.0f ",1/stats[_STAT_READDIR].best);
-#ifndef Windows
+#if !defined(Windows) || !defined(Haiku)
printf("%7.0f ",1/stats[_STAT_LINK].best);
printf("%7.0f ",1/stats[_STAT_UNLINK].best);
#endif
@@ -563,7 +564,7 @@ int main(int argc, char **argv)
printf("%7.0f ",1/stats[_STAT_ACCESS].worst);
printf("%7.0f ",1/stats[_STAT_CHMOD].worst);
printf("%7.0f ",1/stats[_STAT_READDIR].worst);
-#ifndef Windows
+#if !defined(Windows) || !defined(Haiku)
printf("%7.0f ",1/stats[_STAT_LINK].worst);
printf("%7.0f ",1/stats[_STAT_UNLINK].worst);
#endif
@@ -589,9 +590,10 @@ dir_create(int x)
{
sprintf(buf,"fileop_L1_%d",i);
stats[_STAT_DIR_CREATE].starttime=time_so_far();
- ret=mkdir(buf,0777);
+ ret=mkdir(buf, 0777);
if(ret < 0)
{
+ printf("ret = %d", ret);
printf("Mkdir failed\n");
exit(1);
}
diff --git a/src/current/iozone.c b/src/current/iozone.c
index 90cee47..bcef6f5 100644
--- a/src/current/iozone.c
+++ b/src/current/iozone.c
@@ -57,7 +57,7 @@
#include <Windows.h>
int errno;
#else
-#if defined(linux)
+#if defined(linux) || defined(Haiku)
#include <errno.h>
#else
extern int errno; /* imported for errors */
@@ -79,7 +79,7 @@ extern int h_errno; /* imported for errors */
#include <pthread.h>
#endif
-#if defined(HAVE_ANSIC_C) && defined(linux)
+#if defined(HAVE_ANSIC_C) && (defined(linux) || defined(Haiku))
#include <stdlib.h>
#include <sys/wait.h>
#endif
@@ -92,7 +92,7 @@ int close();
int unlink();
int main();
void record_command_line();
-#if !defined(linux)
+#if !defined(linux) && !defined(Haiku)
int wait();
#endif
int fsync();
@@ -271,6 +271,13 @@ THISVERSION,
#include <string.h>
#endif
+#if defined(__HAIKU__)
+#include <malloc.h>
+#include <stdlib.h>
+#include <string.h>
+#endif
+
+
#if defined (__FreeBSD__) || defined(__OpenBSD__) || defined(__bsdi__) || defined(__APPLE__) || defined(__DragonFly__)
#ifndef O_SYNC
#define O_SYNC O_FSYNC
@@ -390,7 +397,7 @@ typedef long long off64_t;
#define MAP_ANONYMOUS MAP_ANON
#endif
-#if defined(SCO_Unixware_gcc) || defined(solaris) || defined(UWIN) || defined(SCO)
+#if defined(SCO_Unixware_gcc) || defined(solaris) || defined(UWIN) || defined(SCO) || defined(Haiku)
#define MAP_FILE (0)
#endif
diff --git a/src/current/iozone_visualizer.pl b/src/current/iozone_visualizer.pl
index a5a7d2d..4e7ba23 100755
--- a/src/current/iozone_visualizer.pl
+++ b/src/current/iozone_visualizer.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/boot/common/bin/perl
use warnings;
use strict;
diff --git a/src/current/libbif.c b/src/current/libbif.c
index 406d3c2..9c5ed32 100644
--- a/src/current/libbif.c
+++ b/src/current/libbif.c
@@ -14,7 +14,7 @@
#include <sys/types.h>
#include <stdio.h>
#include <sys/file.h>
-#if defined(__AIX__) || defined(__FreeBSD__) || defined(__DragonFly__)
+#if defined(__AIX__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(Haiku)
#include <fcntl.h>
#else
#include <sys/fcntl.h>
@@ -24,7 +24,7 @@
#include <string.h>
#endif
-#if defined(linux) || defined(__DragonFly__) || defined(macosx)
+#if defined(linux) || defined(__DragonFly__) || defined(macosx) || defined(Haiku)
#include <unistd.h>
#include <stdlib.h>
#endif
diff --git a/src/current/makefile b/src/current/makefile
index 994a2b4..9c61709 100644
--- a/src/current/makefile
+++ b/src/current/makefile
@@ -30,6 +30,7 @@ all:
@echo " -> freebsd (32bit) <-"
@echo " -> generic (32bit) <-"
@echo " -> ghpux (32bit) <-"
+ @echo " -> haiku (32bit) <-"
@echo " -> hpuxs-11.0 (simple) (32bit) <-"
@echo " -> hpux-11.0w (64bit) <-"
@echo " -> hpuxs-11.0w (64bit) <-"
@@ -83,6 +84,12 @@ rpm:
cp ../../iozone*.tar /usr/src/red*/SO*
rpmbuild -ba spec.in
+#
+# GNU 'C' compiler Linux build with threads, largefiles, async I/O
+#
+haiku: iozone_haiku.o libbif.o fileop_haiku.o
+ $(CC) -O3 $(LDFLAGS) -lnetwork iozone_haiku.o libbif.o -o iozone
+ $(CC) -O3 -lnetwork fileop_haiku.o -o fileop
#
# Turn on the optimizer, largefiles, Posix async I/O and threads.
@@ -529,6 +536,16 @@ netbsd: iozone_netbsd.o libbif.o fileop_netbsd.o
# Now for the machine specific stuff
#
+iozone_haiku.o: iozone.c libbif.c
+ @echo ""
+ @echo "Building iozone for Haiku"
+ @echo ""
+ $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C -DHAVE_PREAD \
+ -DNO_MADVISE -DHaiku $(CFLAGS) iozone.c \
+ -DNAME='"haiku"' -o iozone_haiku.o
+ $(CC) -Wall -c -O3 -Dunix -DHAVE_ANSIC_C \
+ -DNO_MADVISE -DHaiku $(CFLAGS) libbif.c -o libbif.o
+
iozone_hpux.o: iozone.c libbif.c
@echo ""
@echo "Building iozone for HP-UX (9.05)"
@@ -695,6 +712,13 @@ iozone_linux.o: iozone.c libbif.c libasync.c
$(CC) -Wall -c -O3 -Dunix -Dlinux -DHAVE_ANSIC_C -DASYNC_IO \
-D_LARGEFILE64_SOURCE $(CFLAGS) libasync.c -o libasync.o
+fileop_haiku.o: fileop.c
+ @echo ""
+ @echo "Building fileop for Haiku"
+ @echo ""
+ $(CC) -c -O $(CFLAGS) -DHaiku fileop.c -o fileop_haiku.o
+
+
fileop_AIX.o: fileop.c
@echo ""
@echo "Building fileop for AIX"
diff --git a/src/current/report.pl b/src/current/report.pl
index 76943f3..d6976e2 100755
--- a/src/current/report.pl
+++ b/src/current/report.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/boot/common/bin/perl
#
# arguments: one of more report files
#
--
2.7.0