diff --git a/benchmarks/unixbench/Makefile b/benchmarks/unixbench/Makefile index 6994ae3713f4..81d71c91c934 100644 --- a/benchmarks/unixbench/Makefile +++ b/benchmarks/unixbench/Makefile @@ -1,49 +1,53 @@ PORTNAME= unixbench DISTVERSIONPREFIX= v -DISTVERSION= 5.1.3 -PORTREVISION= 2 +DISTVERSION= 5.1.3-51 +DISTVERSIONSUFFIX= -g6705203 CATEGORIES= benchmarks MAINTAINER= pizzamig@FreeBSD.org COMMENT= BYTE magazine's Public Domain benchmark for UNIX WWW= https://github.com/kdlucas/byte-unixbench LICENSE= GPLv2 RUN_DEPENDS= x11perf:x11/x11perf -USES= gmake perl5 shebangfix +USES= gmake gl perl5 shebangfix xorg USE_GITHUB= yes GH_ACCOUNT= kdlucas GH_PROJECT= byte-unixbench WRKSRC_SUBDIR= UnixBench +USE_GL= gl +USE_XORG= x11 xext +CFLAGS+= -I${LOCALBASE}/include \ + -L${LOCALBASE}/lib SUB_FILES= unixbench SHEBANG_FILES= Run pgms/gfx-x11 do-install: ${INSTALL_SCRIPT} ${WRKDIR}/unixbench ${STAGEDIR}${PREFIX}/bin/ ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/unixbench ${INSTALL_SCRIPT} ${WRKSRC}/Run ${STAGEDIR}${PREFIX}/libexec/unixbench ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/unixbench/pgms for f in ${WRKSRC}/pgms/* ; do \ case $$f in \ *.sh|*gfx-x11) \ ${INSTALL_SCRIPT} $${f} \ ${STAGEDIR}${PREFIX}/libexec/unixbench/pgms/ ;; \ *.logo|*.base) \ ${INSTALL_DATA} $${f} \ ${STAGEDIR}${PREFIX}/libexec/unixbench/pgms/ ;; \ *.orig|*.rej|*~) \ ;;\ *) \ ${INSTALL_PROGRAM} $${f} \ ${STAGEDIR}${PREFIX}/libexec/unixbench/pgms/ ;; \ esac ; \ done ${MKDIR} ${STAGEDIR}${PREFIX}/libexec/unixbench/testdir ${INSTALL_DATA} ${WRKSRC}/testdir/* ${STAGEDIR}${PREFIX}/libexec/unixbench/testdir/ ${INSTALL_DATA} ${WRKSRC}/README ${STAGEDIR}${PREFIX}/libexec/unixbench/ ${INSTALL_DATA} ${WRKSRC}/Makefile ${STAGEDIR}${PREFIX}/libexec/unixbench/ .include <bsd.port.mk> diff --git a/benchmarks/unixbench/distinfo b/benchmarks/unixbench/distinfo index 0916f4bbfc18..e324f108b1a3 100644 --- a/benchmarks/unixbench/distinfo +++ b/benchmarks/unixbench/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1503481858 -SHA256 (kdlucas-byte-unixbench-v5.1.3_GH0.tar.gz) = 3a6bb00f270a5329682dff20fd2c1ab5332ef046eb54a96a0d7bd371005d31a3 -SIZE (kdlucas-byte-unixbench-v5.1.3_GH0.tar.gz) = 145908 +TIMESTAMP = 1675975375 +SHA256 (kdlucas-byte-unixbench-v5.1.3-51-g6705203_GH0.tar.gz) = d94e504f6aac71ada43a3f0a92b7b29fe004da50eb0d40dacc065e4dbfa1f5df +SIZE (kdlucas-byte-unixbench-v5.1.3-51-g6705203_GH0.tar.gz) = 155193 diff --git a/benchmarks/unixbench/files/patch-Makefile b/benchmarks/unixbench/files/patch-Makefile index f0ddc57d3c29..282945fef972 100644 --- a/benchmarks/unixbench/files/patch-Makefile +++ b/benchmarks/unixbench/files/patch-Makefile @@ -1,46 +1,39 @@ ---- Makefile.orig 2015-06-04 17:20:18 UTC -+++ Makefile -@@ -38,7 +38,7 @@ - ############################################################################## - - SHELL = /bin/sh -- -+HZ = 128 - # GRAPHICS TESTS: Uncomment the definition of "GRAPHIC_TESTS" to enable - # the building of the graphics benchmarks. This will require the - # X11 libraries on your system. -@@ -53,7 +53,7 @@ GL_LIBS = -lGL -lXext -lX11 +--- Makefile.orig 2023-02-07 23:18:07.000000000 +0100 ++++ Makefile 2023-02-09 21:57:42.966634000 +0100 +@@ -46,7 +46,7 @@ + # X11 libraries on your system. (e.g. libX11-devel mesa-libGL-devel) + # + # Comment the line out to disable these tests. +-# GRAPHIC_TESTS = defined ++GRAPHIC_TESTS = defined + + # Set "GL_LIBS" to the libraries needed to link a GL program. + GL_LIBS = -lGL -lXext -lX11 +@@ -55,7 +55,7 @@ # COMPILER CONFIGURATION: Set "CC" to the name of the compiler to use # to build the binary benchmarks. You should also set "$cCompiler" in the # Run script to the name of the compiler you want to test. -CC=gcc +#CC=gcc # OPTIMISATION SETTINGS: - -@@ -71,14 +71,14 @@ CC=gcc - # -m386 -malign-loops=1 -malign-jumps=1 -malign-functions=1 - - ## For Solaris 2, or general-purpose GCC 2.7.x --OPTON = -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall -+OPTON = -O2 -fomit-frame-pointer -ffast-math -Wall - - ## For Digital Unix v4.x, with DEC cc v5.x - #OPTON = -O4 - #CFLAGS = -DTIME -std1 -verbose -w0 - - ## generic gcc CFLAGS. -DTIME must be included. --CFLAGS = -DTIME -Wall -pedantic -ansi -+CFLAGS += -DTIME -Wall -pedantic -ansi + # Use gcc option if defined UB_GCC_OPTIONS via "Environment variable" or "Command-line arguments". +@@ -87,7 +87,7 @@ + ## (-ffast-math) disables strict IEEE or ISO rules/specifications for math funcs + OPTON = -O3 -ffast-math + +- ## OS detection. Comment out if gmake syntax not supported by other 'make'. ++ ## OS detection. Comment out if gmake syntax not supported by other 'make'. + OSNAME:=$(shell uname -s) + ARCH := $(shell uname -p) + ifeq ($(OSNAME),Linux) +@@ -113,6 +113,9 @@ + CFLAGS += -Wa,-q + endif + ++ ifeq ($(OSNAME),FreeBSD) ++ OPTON += -march=native -mtune=native -fomit-frame-pointer ++ endif + endif - ############################################################################## -@@ -90,8 +90,6 @@ CFLAGS = -DTIME -Wall -pedantic -ansi - PROGDIR = ./pgms - SRCDIR = ./src - TESTDIR = ./testdir --RESULTDIR = ./results --TMPDIR = ./tmp - # other directories - INCLDIR = /usr/include - LIBDIR = /lib diff --git a/benchmarks/unixbench/files/patch-Run b/benchmarks/unixbench/files/patch-Run index 0c0c51fc42e0..0d9a131601f9 100644 --- a/benchmarks/unixbench/files/patch-Run +++ b/benchmarks/unixbench/files/patch-Run @@ -1,90 +1,134 @@ ---- Run.orig 2020-06-11 08:18:10 UTC -+++ Run -@@ -91,10 +91,10 @@ chomp($BASEDIR); - my $BINDIR = getDir('UB_BINDIR', $BASEDIR . "/pgms"); +--- Run.orig 2023-02-09 22:21:08.690117000 +0100 ++++ Run 2023-02-09 22:20:31.633214000 +0100 +@@ -91,10 +91,10 @@ + my $BINDIR = getDir('UB_BINDIR', $FindBin::Bin . "/pgms"); # Temp directory, for temp files. --my $TMPDIR = getDir('UB_TMPDIR', $BASEDIR . "/tmp"); +-my $TMPDIR = getDir('UB_TMPDIR', $FindBin::Bin . "/tmp"); +my $TMPDIR = "/tmp"; # Directory to put results in. --my $RESULTDIR = getDir('UB_RESULTDIR', $BASEDIR . "/results"); +-my $RESULTDIR = getDir('UB_RESULTDIR', $FindBin::Bin . "/results"); +my $RESULTDIR = "/tmp"; # Directory where the tests are executed. - my $TESTDIR = getDir('UB_TESTDIR', $BASEDIR . "/testdir"); -@@ -672,6 +672,18 @@ sub processCpuFlags { - # these fields: - # describing the model etc. Returns undef if the information can't be got. + my $TESTDIR = getDir('UB_TESTDIR', $FindBin::Bin . "/testdir"); +@@ -698,6 +698,18 @@ + # future: on systems without /proc/cpuinfo, might check for Perl modules: + # Sys::Info::Device::CPU or Sys::CpuAffinity sub getCpuInfo { + my $ncpu = getCmdOutput("sysctl -n hw.ncpu"); + my $cpus = [ ]; + my $i; + for ($i=0;$i<$ncpu;$i++) { + $cpus->[$i]{'model'} = getCmdOutput("sysctl -n hw.model"); + $cpus->[$i]{'bogo'} = 0; + $cpus->[$i]{'flags'} = getCmdOutput("sysctl -n hw.machine"); + } + $cpus; +} + +sub getCpuInfoBak { - open(my $fd, "<", "/proc/cpuinfo") || return undef; - - my $cpus = [ ]; -@@ -735,12 +747,10 @@ sub getSystemInfo { + if (!("$^O" eq "darwin")) { + open(my $fd, "<", "/proc/cpuinfo") || return undef; +@@ -815,15 +827,11 @@ # Get the language info. my $lang = getCmdOutput("printenv LANG"); -- my $map = getCmdOutput("locale -k LC_CTYPE | grep charmap"); -+ my $map = getCmdOutput("locale -k | grep charmap"); + my $map = $^O ne "aix" +- ? getCmdOutput("locale -k LC_CTYPE | grep charmap") || "" ++ ? getCmdOutput("locale -k | grep charmap") || "" + : getCmdOutput("locale charmap") || ""; $map =~ s/.*=//; -- my $coll = getCmdOutput("locale -k LC_COLLATE | grep collate-codeset"); +- my $coll = $^O ne "aix" +- ? getCmdOutput("locale -k LC_COLLATE | grep collate-codeset") || "" +- : getCmdOutput("locale | grep LC_COLLATE") || ""; - $coll =~ s/.*=//; - $info->{'language'} = sprintf "%s (charmap=%s, collate=%s)", - $lang, $map, $coll; + $info->{'language'} = sprintf "%s (charmap=%s)", + $lang, $map; # Get details on the CPUs, if possible. my $cpus = getCpuInfo(); -@@ -750,10 +760,9 @@ sub getSystemInfo { +@@ -839,10 +847,9 @@ } # Get graphics hardware info. - $info->{'graphics'} = getCmdOutput("3dinfo | cut -f1 -d\'(\'"); -+ # $info->{'graphics'} = getCmdOutput("3dinfo | cut -f1 -d\'(\'"); ++ #$info->{'graphics'} = getCmdOutput("3dinfo | cut -f1 -d\'(\'"); # Get system run state, load and usage info. -- $info->{'runlevel'} = getCmdOutput("runlevel | cut -f2 -d\" \""); +- $info->{'runlevel'} = getCmdOutput("who -r | awk '{print \$3}'"); $info->{'load'} = getCmdOutput("uptime"); $info->{'numUsers'} = getCmdOutput("who | wc -l"); -@@ -781,6 +790,7 @@ sub abortRun { +@@ -870,6 +877,7 @@ # Do checks that everything's ready for testing. sub preChecks { -+ return; ++ return; # Set the language. $ENV{'LANG'} = $language; -@@ -1386,7 +1396,7 @@ sub displaySystem { +@@ -1476,7 +1484,7 @@ } # Display system load and usage info. - printf $fd " %s; runlevel %s\n\n", $info->{'load'}, $info->{'runlevel'}; + printf $fd " %s; \n\n", $info->{'load'}; } -@@ -1603,8 +1613,8 @@ sub displaySystemHtml { +@@ -1587,7 +1595,7 @@ + + # Write CSV Headers. + # e.g.: "Concurrency,Dhrystone 2 using register variables,Double-Precision Whetstone" +-# ++# + sub summarizeRunCsvHeader { + my ( $results, $reportFd ) = @_; + +@@ -1612,7 +1620,7 @@ + + # Write concurrency value. + printf $reportFd "%d", $results->{'copies'}; +- ++ + # Write test results. + my $isFirstColumn = 1; + foreach my $bench (@{$results->{'list'}}) { +@@ -1735,8 +1743,8 @@ # Display system runlevel, load and usage info. printf $fd "<tr>\n"; printf $fd " <td><b>Uptime:</b></td>\n"; - printf $fd " <td colspan=2>%s; runlevel %s</td>\n", - $info->{'load'}, $info->{'runlevel'}; + printf $fd " <td colspan=2>%s</td>\n", + $info->{'load'}; printf $fd "</tr>\n"; printf $fd "</table></p>\n\n"; +@@ -1896,7 +1904,7 @@ + $tests = $index; + } + +- # Create directories. ++ # Create directories. + my @creatingDirectories = ( ${TMPDIR}, ${RESULTDIR} ); + createDirrectoriesIfNotExists(@creatingDirectories); + +@@ -1937,7 +1945,7 @@ + my $isOutputFormatCsv = defined($ubOutputCsv) && $ubOutputCsv eq "true"; + # If write CSV, header needs only once. + my $is_csv_header_written = 0; +- ++ + # Open the log file for writing. + open(my $reportFd, ">", $reportFile) || + die("Run: can't write to $reportFile\n"); +@@ -1998,4 +2006,3 @@ + + + exit(main(@ARGV)); +- diff --git a/benchmarks/unixbench/files/patch-src_big.c b/benchmarks/unixbench/files/patch-src_big.c deleted file mode 100644 index 7790317c2b9e..000000000000 --- a/benchmarks/unixbench/files/patch-src_big.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/big.c.orig 2015-06-04 17:20:18 UTC -+++ src/big.c -@@ -583,7 +583,7 @@ void dumpwork(void) - void fatal(char *s) - { - int i; -- fprintf(stderr, s); -+ fprintf(stderr, "%s", s); - fflush(stderr); - perror("Reason?"); - fflush(stderr); diff --git a/benchmarks/unixbench/files/patch-src_dhry__1.c b/benchmarks/unixbench/files/patch-src_dhry__1.c deleted file mode 100644 index 26b7ced39c54..000000000000 --- a/benchmarks/unixbench/files/patch-src_dhry__1.c +++ /dev/null @@ -1,19 +0,0 @@ ---- src/dhry_1.c.orig 2015-06-04 17:20:18 UTC -+++ src/dhry_1.c -@@ -34,6 +34,7 @@ - ***************************************************************************/ - char SCCSid[] = "@(#) @(#)dhry_1.c:3.4 -- 5/15/91 19:30:21"; - -+#include <sys/types.h> - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -81,7 +82,7 @@ extern int times (); - /* Measurements should last at least about 2 seconds */ - #endif - #ifdef TIME --extern long time(); -+extern time_t time(); - /* see library function "time" */ - #define Too_Small_Time 2 - /* Measurements should last at least 2 seconds */ diff --git a/benchmarks/unixbench/files/patch-src_syscall.c b/benchmarks/unixbench/files/patch-src_syscall.c deleted file mode 100644 index 9e920f1e1390..000000000000 --- a/benchmarks/unixbench/files/patch-src_syscall.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/syscall.c.orig 2015-06-04 17:20:18 UTC -+++ src/syscall.c -@@ -90,7 +90,7 @@ char *argv[]; - fprintf(stderr,"%s: fork failed\n", argv[0]); - exit(1); - } else if (pid == 0) { -- execl("/bin/true", (char *) 0); -+ execl("/bin/true", (char *) 0, (char *) 0); - fprintf(stderr,"%s: exec /bin/true failed\n", argv[0]); - exit(1); - } else { diff --git a/benchmarks/unixbench/pkg-descr b/benchmarks/unixbench/pkg-descr index 2fbadcb302f9..9c5a6f61ef0a 100644 --- a/benchmarks/unixbench/pkg-descr +++ b/benchmarks/unixbench/pkg-descr @@ -1 +1,7 @@ UnixBench based on the BYTE UNIX Benchmarks v3. +The purpose of UnixBench is to provide a basic indicator of the performance +of a Unix-like system; hence, multiple tests are used to test various aspects of +the system's performance. These test results are then compared to the scores +from a baseline system to produce an index value, which is generally easier to +handle than the raw scores. The entire set of index values is then combined to +make an overall index for the system. diff --git a/benchmarks/unixbench/pkg-plist b/benchmarks/unixbench/pkg-plist index 6b7d6d2b3a39..d2e93d5c4ee3 100644 --- a/benchmarks/unixbench/pkg-plist +++ b/benchmarks/unixbench/pkg-plist @@ -1,31 +1,32 @@ bin/unixbench libexec/unixbench/Makefile libexec/unixbench/README libexec/unixbench/Run libexec/unixbench/pgms/arithoh libexec/unixbench/pgms/context1 libexec/unixbench/pgms/dhry2 libexec/unixbench/pgms/dhry2reg libexec/unixbench/pgms/double libexec/unixbench/pgms/execl libexec/unixbench/pgms/float libexec/unixbench/pgms/fstime libexec/unixbench/pgms/gfx-x11 libexec/unixbench/pgms/hanoi libexec/unixbench/pgms/index.base libexec/unixbench/pgms/int libexec/unixbench/pgms/long libexec/unixbench/pgms/looper libexec/unixbench/pgms/multi.sh libexec/unixbench/pgms/pipe libexec/unixbench/pgms/register libexec/unixbench/pgms/short libexec/unixbench/pgms/spawn libexec/unixbench/pgms/syscall libexec/unixbench/pgms/tst.sh +libexec/unixbench/pgms/ubgears libexec/unixbench/pgms/unixbench.logo libexec/unixbench/pgms/whetstone-double libexec/unixbench/testdir/cctest.c libexec/unixbench/testdir/dc.dat libexec/unixbench/testdir/large.txt libexec/unixbench/testdir/sort.src