0
0
Fork 0
haikuports/app-benchmarks/iozone/patches/iozone-3.492.patchset

357 lines
13 KiB
Plaintext

From d2bb34270a3c68941f3b117a2e83a3e20e3b6a9b 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 70010f4..f37db06 100644
--- a/src/current/fileop.c
+++ b/src/current/fileop.c
@@ -145,14 +145,15 @@ int dirlen;
/************************************************************************/
void purge_buffer_cache()
{
- if (!mountname)
- return;
+
char cwd[PATH_MAX];
char command[1024];
int ret,i;
junkp=(int *)getcwd(cwd, sizeof(cwd));
+ if (!mountname)
+ return;
junk=chdir("/");
strcpy(command,"umount ");
strcat(command, mountname);
@@ -254,7 +255,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");
@@ -462,7 +463,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
*/
@@ -529,7 +530,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
@@ -552,7 +553,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
@@ -575,7 +576,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
@@ -601,9 +602,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 5407795..727a053 100644
--- a/src/current/iozone.c
+++ b/src/current/iozone.c
@@ -74,7 +74,7 @@
#include <windows.h>
#include <errno.h>
#else
-#if defined(linux) || defined(solaris) || defined(IOZ_macosx) || defined(__AIX__) || defined(__FreeBSD__) || defined(_HPUX_SOURCE) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+#if defined(linux) || defined(solaris) || defined(IOZ_macosx) || defined(__AIX__) || defined(__FreeBSD__) || defined(_HPUX_SOURCE) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(Haiku)
#include <errno.h>
#else
extern int errno; /* imported for errors */
@@ -106,7 +106,7 @@ extern int h_errno; /* imported for errors */
syscall(__NR_sched_setaffinity, (pid_t)pid, (size_t)size, (void *)cpuset)
#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
@@ -118,7 +118,7 @@ int atoi();
int close();
int unlink();
int main();
-#if !defined(linux)
+#if !defined(linux) && !defined(Haiku)
int wait();
#endif
int fsync();
@@ -296,7 +296,7 @@ THISVERSION,
#include <stdio.h>
#include <signal.h>
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows) || defined(Haiku)
#ifndef my_sig_t
typedef void (*my_sig_t)(int);
#endif
@@ -313,6 +313,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
@@ -444,7 +451,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
@@ -1032,7 +1039,7 @@ float do_compute(float); /* compute cycle simulation */
void begin(off64_t,long long);
void record_command_line(int, char **);
void show_help(void); /* show development help */
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows) || defined(Haiku)
my_sig_t signal_handler(void); /* clean up if user interrupts us */
#else
sighandler_t signal_handler(void); /* clean up if user interrupts us */
@@ -1925,7 +1932,7 @@ char **argv;
argvsave=argv;
#ifndef NO_SIGNAL
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows) || defined(Haiku)
signal((int) SIGINT, (my_sig_t) signal_handler); /* handle user interrupt */
signal((int) SIGTERM, (my_sig_t) signal_handler); /* handle kill from shell */
#else
@@ -2704,6 +2711,9 @@ char **argv;
sprintf(splash[splash_line++],"\tDedup+compress enabled\n ");
break;
case 'R': /* Speical Windows option to read filelist from a input file. Experimental */
+ {
+ struct stat outbuf;
+ int result;
mfflag++;
subarg = argv[optind++];
if(subarg==(char *)0)
@@ -2713,8 +2723,6 @@ char **argv;
}
sprintf(splash[splash_line++],"\tFilenames from a file option enabled. File: %s\n ",subarg);
/* filename should be used instead of filelist */
- struct stat outbuf;
- int result;
result = stat(subarg, &outbuf);
if(result == -1) {
printf("Failed to stat the iozone input file: %s\n",argv[optind]);
@@ -2755,7 +2763,7 @@ char **argv;
}
}
break;
-
+ }
case 'c': /* Argument is the controlling host name */
/* I am a client for distributed Iozone */
subarg=argv[optind++];
@@ -3730,13 +3738,13 @@ void show_help()
******************************************************************/
#ifdef HAVE_ANSIC_C
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows) || defined(Haiku)
my_sig_t signal_handler(void)
#else
sighandler_t signal_handler(void)
#endif
#else
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__APPLE__) || defined(__DragonFly__) || defined(__NetBSD__) || defined(solaris) || defined(Windows) || defined(Haiku)
my_sig_t signal_handler()
#else
sighandler_t signal_handler()
@@ -24871,7 +24879,7 @@ int main(void)
int false = 0;
int true = 1;
#else
-typedef enum { false = 0, true } boolean;
+//typedef enum { false = 0, true } boolean;
#endif
typedef struct sockaddr_in sockaddr_in_t;
typedef struct sockaddr_in6 sockaddr_in6_t;
@@ -25285,11 +25293,12 @@ void * thread_fwrite_test( x)
FILE *stream = NULL;
int First_Run[MAXSTREAMS];
int kk;
+ double burst_acc_time_sec;
for(kk=0;kk<MAXSTREAMS;kk++)
First_Run[kk]=1;
- double burst_acc_time_sec = 0;
+ burst_acc_time_sec = 0;
if(compute_flag)
delay=compute_time;
@@ -25749,6 +25758,10 @@ void * thread_fread_test( x)
char tmpname[256];
FILE *thread_wqfd;
FILE *thread_Lwqfd;
+ char *stdio_buf;
+ char *filename;
+ long long Index = 0;
+ FILE *stream = NULL;
if(compute_flag)
delay=compute_time;
@@ -25757,10 +25770,6 @@ void * thread_fread_test( x)
thread_wqfd=w_traj_fd=thread_Lwqfd=(FILE *)0;
traj_offset=walltime=cputime=0;
anwser=bind_cpu=0;
- char *stdio_buf;
- long long Index = 0;
- FILE *stream = NULL;
- char *filename;
if(w_traj_flag)
{
diff --git a/src/current/iozone_visualizer.pl b/src/current/iozone_visualizer.pl
index 5d5a52c..9ebd809 100755
--- a/src/current/iozone_visualizer.pl
+++ b/src/current/iozone_visualizer.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/env perl
+#!/boot/common/bin/perl
use warnings;
use strict;
diff --git a/src/current/libbif.c b/src/current/libbif.c
index 5e14e5f..b54b71c 100644
--- a/src/current/libbif.c
+++ b/src/current/libbif.c
@@ -17,7 +17,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>
@@ -27,7 +27,7 @@
#include <string.h>
#endif
-#if defined(linux) || defined(__DragonFly__) || defined(IOZ_macosx) || defined(__NetBSD__) || defined(Windows)
+#if defined(linux) || defined(__DragonFly__) || defined(IOZ_macosx) || defined(__NetBSD__) || defined(Windows) || defined(Haiku)
#include <unistd.h>
#include <stdlib.h>
#endif
diff --git a/src/current/makefile b/src/current/makefile
index 3a54701..7da4813 100644
--- a/src/current/makefile
+++ b/src/current/makefile
@@ -42,6 +42,7 @@ all:
@echo " -> freebsd64 (64bit) <-"
@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) <-"
@@ -97,6 +98,12 @@ rpm:
cp ../../iozone*.tar /home/capps/rpmbuild/SOURCES/
rpmbuild -ba --buildroot /home/capps/rpmbuild/BUILDROOT 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.
@@ -647,6 +654,16 @@ netbsd-AMD64: iozone_netbsd-AMD64.o libbif.o libasync.o fileop_netbsd-AMD64.o p
# 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)"
@@ -849,6 +866,13 @@ iozone_linux.o: iozone.c libbif.c libasync.c
$(CC) -Wmissing-prototypes -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 3b21055..a83580c 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.30.2