From 5272165c3f1f0db5aeb483028c68bf86043653f3 Mon Sep 17 00:00:00 2001 From: Jose Alarcon Date: Tue, 22 Aug 2017 08:05:38 +0300 Subject: Dhrystone: add recipe 2.1 Dhrystone is a synthetic computing benchmark program developed in 1984 by Reinhold P. Weicker intended to be representative of system (integer) programming. https://en.wikipedia.org/wiki/Dhrystone Signed-off-by: Jose Alarcon Signed-off-by: Martin Jansa --- .../dhrystone/dhrystone-2.1/dhrystone.patch | 81 ++++++++++++++++++++++ .../recipes-benchmark/dhrystone/dhrystone_2.1.bb | 26 +++++++ 2 files changed, 107 insertions(+) create mode 100644 meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch create mode 100644 meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch new file mode 100644 index 000000000..6a5350c37 --- /dev/null +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch @@ -0,0 +1,81 @@ +dhrystone: fix compilation problems + +This patch fixes two compilation errors with original +dhrystone sources: +* Redefinition of times() with wrong return type + - Fixed by commenting out the unnecessary redefinition +* Undefined identifier HZ + - Originally HZ was supposed to be the clock frequency + value for times() + - For Linux, the frequency should come from sysconf + - This patch defines global varible HZ and initializes + it from sysconf + +Additionally, this patch adds a simple Makefile. + +Upstream-status: Pending + +Sign-off-by: Kimmo Surakka +Signed-off-by: Jose Alarcon +--- + +diff -Naur dhry.orig/dhry_1.c dhry/dhry_1.c +--- dhry.orig/dhry_1.c 2015-07-20 14:25:58.059945353 +0300 ++++ dhry/dhry_1.c 2015-07-20 12:43:25.318945353 +0300 +@@ -45,11 +45,15 @@ + + #ifdef TIMES + struct tms time_info; +-extern int times (); ++/* extern int times (); */ + /* see library function "times" */ + #define Too_Small_Time 120 + /* Measurements should last at least about 2 seconds */ + #endif ++#ifndef HZ ++#include /* sysconf */ ++ long HZ; ++#endif + #ifdef TIME + extern long time(); + /* see library function "time" */ +@@ -84,6 +88,9 @@ + + /* Initializations */ + ++#ifndef HZ ++ HZ = sysconf(_SC_CLK_TCK); ++#endif + Next_Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type)); + Ptr_Glob = (Rec_Pointer) malloc (sizeof (Rec_Type)); + +diff -Naur dhry.orig/dhry.h dhry/dhry.h +--- dhry.orig/dhry.h 2015-07-20 14:25:58.054945353 +0300 ++++ dhry/dhry.h 2015-07-20 12:42:59.903945353 +0300 +@@ -420,4 +420,6 @@ + } variant; + } Rec_Type, *Rec_Pointer; + +- ++#ifndef HZ ++ extern long HZ; ++#endif +diff -Naur dhry.orig/Makefile dhry/Makefile +--- dhry.orig/Makefile 1970-01-01 02:00:00.000000000 +0200 ++++ dhry/Makefile 2015-07-20 14:10:45.832945353 +0300 +@@ -0,0 +1,15 @@ ++CC=gcc ++ ++all: dhry ++ ++dhry: dhry_1.o dhry_2.o ++ $(CC) $(LDFLAGS) -o $@ $^ $(LOADLIBES) $(LDLIBS) ++ ++dhry_1.o: dhry_1.c dhry.h ++ ++dhry_2.o: dhry_2.c dhry.h ++ ++clean: ++ rm -f *.o *~ ++ ++.PHONY: all clean diff --git a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb new file mode 100644 index 000000000..17e8c700c --- /dev/null +++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb @@ -0,0 +1,26 @@ +SUMMARY = "Dhrystone CPU benchmark" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/PD;md5=b3597d12946881e13cb3b548d1173851" + +SRC_URI = "http://www.netlib.org/benchmark/dhry-c;downloadfilename=dhry-c.shar \ + file://dhrystone.patch" +SRC_URI[md5sum] = "75aa5909c174eed98c134be2f56307da" +SRC_URI[sha256sum] = "038a7e9169787125c3451a6c941f3aca5db2d2f3863871afcdce154ef17f4e3e" + +# Need to override Makefile variables +EXTRA_OEMAKE = "-e MAKEFLAGS=" + +do_unpack() { + [ -d ${S} ] || mkdir -p ${S} + cd ${S} + sh ${DL_DIR}/dhry-c.shar +} +do_install() { + install -d ${D}${bindir} + install -m 0755 ${S}/dhry ${D}${bindir} +} + +# Prevent procedure merging as required by dhrystone.c: +CFLAGS += "-fno-lto" + +LDFLAGS += "-fno-lto" -- cgit v1.2.3-54-g00ecf