dhrystone: new benchmark package

Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2012.11.x
Mike Frysinger 2010-12-07 16:07:27 -05:00 committed by Peter Korsgaard
parent beb56ca618
commit 9ffc2e809c
10 changed files with 188 additions and 1 deletions

View File

@ -5,7 +5,7 @@
Updated/fixed packages: cloop, m4, openssh, qt, xz
New packages: lsuio, rsh-redone, whetstone
New packages: dhrystone, lsuio, rsh-redone, whetstone
Issues resolved (http://bugs.uclibc.org):

View File

@ -17,6 +17,7 @@ source "package/xz/Config.in"
endmenu
menu "Debugging, profiling and benchmark"
source "package/dhrystone/Config.in"
source "package/dmalloc/Config.in"
source "package/kexec/Config.in"
source "package/lmbench/Config.in"

View File

@ -0,0 +1,6 @@
config BR2_PACKAGE_DHRYSTONE
bool "dhrystone"
help
easy-to-use integer benchmark
http://www.netlib.org/benchmark/dhry-c

View File

@ -0,0 +1,12 @@
CPPFLAGS += -DNO_PROTOTYPES=1
LDLIBS += -lm
all: dhrystone
dhrystone: dhry_1.o dhry_2.o
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LDLIBS)
clean:
rm -f *.o dhrystone
.PHONY: all clean

View File

@ -0,0 +1,17 @@
Get HZ value from system rather than requiring via CPPFLAGS
Patch by Robin Getz <rgetz@blackfin.uclinux.org>
--- a/dhry.h
+++ b/dhry.h
@@ -359,6 +359,10 @@
/* for "times" */
#endif
+#ifndef HZ
+#include <sys/param.h>
+#endif
+
#define Mic_secs_Per_Second 1000000.0
/* Berkeley UNIX C returns process times in seconds/HZ */

View File

@ -0,0 +1,53 @@
let people specify the number of runs on the command line
Patch by Vivi Li <vivi.li@analog.com>
--- a/dhry_1.c
+++ b/dhry_1.c
@@ -66,7 +70,7 @@
/* end of variables for time measurement */
-main ()
+main(int argc, char *argv[])
/*****/
/* main program, corresponds to procedures */
@@ -101,6 +105,13 @@
/* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */
/* overflow may occur for this array element. */
+ Number_Of_Runs = 0;
+ if ( argc == 2 ) {
+ if (atoi(argv[1]) > 0) {
+ Number_Of_Runs = atoi(argv[1]);
+ }
+ }
+
printf ("\n");
printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
printf ("\n");
@@ -114,13 +125,17 @@
printf ("Program compiled without 'register' attribute\n");
printf ("\n");
}
- printf ("Please give the number of runs through the benchmark: ");
- {
- int n;
- scanf ("%d", &n);
- Number_Of_Runs = n;
+
+ if (!Number_Of_Runs) {
+ printf ("Please give the number of runs through the benchmark: ");
+ fflush (stdout);
+ {
+ int n;
+ scanf ("%d", &n);
+ Number_Of_Runs = n;
+ }
+ printf ("\n");
}
- printf ("\n");
printf ("Execution starts, %d runs through Dhrystone\n", Number_Of_Runs);

View File

@ -0,0 +1,14 @@
trust the exit status of the program
Patch by Robin Getz <rgetz@blackfin.uclinux.org>
--- a/dhry_1.c
+++ b/dhry_1.c
@@ -274,6 +289,7 @@
printf ("\n");
}
+ exit(0);
}

View File

@ -0,0 +1,15 @@
get prototypes for malloc/exit/strcpy
Patch by Mike Frysinger <vapier@gentoo.org>
--- a/dhry.h
+++ b/dhry.h
@@ -388,6 +388,8 @@
/* General definitions: */
#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
/* for strcpy, strcmp */
#define Null 0

View File

@ -0,0 +1,35 @@
Avoid collision with C library using NO_PROTOTYPES found in code already
Patch by Robin Getz <rgetz@blackfin.uclinux.org>
--- a/dhry_1.c
+++ b/dhry_1.c
@@ -28,7 +28,9 @@
int Arr_1_Glob [50];
int Arr_2_Glob [50] [50];
+#ifndef NO_PROTOTYPES
extern char *malloc ();
+#endif
Enumeration Func_1 ();
/* forward declaration necessary since Enumeration may not simply be int */
@@ -45,14 +45,18 @@
#ifdef TIMES
struct tms time_info;
+#ifndef NO_PROTOTYPES
extern int times ();
/* see library function "times" */
+#endif
#define Too_Small_Time 120
/* Measurements should last at least about 2 seconds */
#endif
#ifdef TIME
+#ifndef NO_PROTOTYPES
extern long time();
/* see library function "time" */
+#endif
#define Too_Small_Time 2
/* Measurements should last at least 2 seconds */
#endif

View File

@ -0,0 +1,34 @@
#############################################################
#
# dhrystone
#
#############################################################
DHRYSTONE_VERSION = 2
DHRYSTONE_SOURCE = dhry-c
DHRYSTONE_SITE = http://www.netlib.org/benchmark/
define DHRYSTONE_BUILD_CMDS
$(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D)
endef
define DHRYSTONE_CLEAN_CMDS
$(MAKE) -C $(@D) clean
endef
define DHRYSTONE_INSTALL_TARGET_CMDS
$(INSTALL) -D $(@D)/dhrystone $(TARGET_DIR)/usr/bin/dhrystone
endef
define DHRYSTONE_UNINSTALL_TARGET_CMDS
rm -f $(TARGET_DIR)/usr/bin/dhrystone
endef
$(eval $(call GENTARGETS,package,dhrystone))
$(BUILD_DIR)/dhrystone-$(DHRYSTONE_VERSION)/.stamp_extracted:
@$(call MESSAGE,"Extracting")
$(Q)mkdir -p $(@D)
$(Q)cd $(@D) && $(SHELL) $(DL_DIR)/$($(PKG)_SOURCE)
$(Q)cp $($(PKG)_DIR_PREFIX)/dhrystone/Makefile $(@D)/
$(Q)touch $@