summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-openembedded/meta-oe/recipes-benchmark
diff options
context:
space:
mode:
authorPatrick Williams <patrick@stwcx.xyz>2016-08-17 15:04:38 -0500
committerPatrick Williams <patrick@stwcx.xyz>2016-08-22 16:43:32 +0000
commitb48b7b4109868a8c0ddda090992e936e821c7ea6 (patch)
tree696be8ea782f2548c0f63bb0188f4c8d3eeed681 /import-layers/meta-openembedded/meta-oe/recipes-benchmark
parentd849ec78de728ef9a2d383b92ccfeabf40f8f1d0 (diff)
downloadtalos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.tar.gz
talos-openbmc-b48b7b4109868a8c0ddda090992e936e821c7ea6.zip
Squashed 'import-layers/meta-openembedded/' content from commit 247b126
Change-Id: I40827e9ce5fba63f1cca2a0be44976ae8383b4c0 git-subtree-dir: import-layers/meta-openembedded git-subtree-split: 247b1267bbe95719cd4877d2d3cfbaf2a2f4865a Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Diffstat (limited to 'import-layers/meta-openembedded/meta-oe/recipes-benchmark')
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb32
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch18
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch43
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb52
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt62
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb114
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch52
-rwxr-xr-ximport-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch8
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch17
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch43
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch75
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch99
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch40
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch17
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb66
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch206
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch61
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch160
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch32
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch79
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb79
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch46
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch57
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch49
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb29
48 files changed, 2164 insertions, 0 deletions
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
new file mode 100644
index 000000000..d97ff0a5b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Analyze Suspend"
+DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \
+the activity between suspend and resume, allowing them to identify \
+inefficiencies and bottlenecks."
+HOMEPAGE = "https://01.org/suspendresume"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
+
+# Apart from the listed RDEPENDS, analyze-suspend depends on some features
+# provided by the kernel. These options are:
+# - CONFIG_PM_DEBUG=y
+# - CONFIG_PM_SLEEP_DEBUG=y
+# - CONFIG_FTRACE=y
+# - CONFIG_FUNCTION_TRACER=y
+# - CONFIG_FUNCTION_GRAPH_TRACER=y
+
+RDEPENDS_${PN} += "python-core python-datetime python-stringold"
+
+PV = "3.2+gitr${SRCPV}"
+SRCREV = "bce3cbec43bc2ce7a8c79b210314dd9d9ac1010b"
+SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https"
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -Dm 0755 analyze_suspend.py ${D}${bindir}/analyze_suspend.py
+ install -Dm 0644 README ${D}${docdir}/analyze-suspend/README
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
new file mode 100644
index 000000000..2c1217e34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Tests large file IO and creation/deletion of small files"
+HOMEPAGE = "http://www.coker.com.au/bonnie++/"
+SECTION = "benchmark/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
+
+SRC_URI = "http://www.coker.com.au/bonnie++/${BPN}-${PV}.tgz \
+ file://gcc-4.3-fixes.patch \
+"
+SRC_URI[md5sum] = "750aa5b5051263a99c6c195888c74968"
+SRC_URI[sha256sum] = "cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb"
+
+inherit autotools-brokensep
+
+SCRIPTS = "bon_csv2html bon_csv2txt"
+EXES = "bonnie++ zcav"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -d ${D}/${bindir}
+ install -d ${D}/${sbindir}
+ install -m 0755 ${EXES} ${D}/${sbindir}
+ install -m 0755 ${SCRIPTS} ${D}/${bindir}
+}
+
+PACKAGES =+ "bonnie-scripts"
+
+FILES_${PN} = "${sbindir}"
+FILES_bonnie-scripts = "${bindir}"
+
+RDEPENDS_bonnie-scripts += "perl"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
new file mode 100644
index 000000000..67f1b7494
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
@@ -0,0 +1,19 @@
+Includes string.h to one of the source file.
+
+Upstream-Status: Inappropriate [not author.]
+---
+ zcav.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: bonnie++-1.03a/zcav.cpp
+===================================================================
+--- bonnie++-1.03a.orig/zcav.cpp
++++ bonnie++-1.03a/zcav.cpp
+@@ -15,6 +15,7 @@ using namespace std;
+ #else
+ #include <vector.h>
+ #endif
++#include <string.h>
+
+ // Read the specified number of megabytes of data from the fd and return the
+ // amount of time elapsed in seconds.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
new file mode 100644
index 000000000..14e3fc4f3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
@@ -0,0 +1,30 @@
+SUMMARY = "CPU burn app that loads the NEON coprocessor fully"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://burn.S;md5=823abc72c2cd448e87df9bc5355a4456"
+
+DL_DIR_append = "/${PN}-${PV}"
+
+# Ensure to make this available for machine which has neon
+COMPATIBLE_MACHINE = "(${@bb.utils.contains("TUNE_FEATURES", "neon", "${MACHINE}", "Invalid!", d)})"
+
+SRC_URI = "http://hardwarebug.org/files/burn.S;name=mru \
+ https://raw.githubusercontent.com/ssvb/cpuburn-arm/dd5c5ba58d2b0b23cfab4a286f9d3f5510000f20/cpuburn-a8.S;name=ssvb"
+
+SRC_URI[mru.md5sum] = "823abc72c2cd448e87df9bc5355a4456"
+SRC_URI[mru.sha256sum] = "01d9fc04f83740c513c25401dcc89c11b2a5a6013e70bfca42b7b02129f88cd2"
+SRC_URI[ssvb.md5sum] = "ba0ef2939a3b3b487523448c67544e94"
+SRC_URI[ssvb.sha256sum] = "ce42ebdc71c876a33d9f7534355ef76cefa0d00ddb19ad69cf05a266c861d08d"
+
+S = "${WORKDIR}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-neona8
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/burn ${D}${bindir}/burn-neon
+ install -m 0755 ${S}/burn-neona8 ${D}${bindir}/
+}
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
new file mode 100644
index 000000000..1915e4c2e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "The dbench (disk) and tbench (TCP) benchmarks"
+SUMMARY_dbench = "Filesystem load benchmark"
+SUMMARY_tbench = "TCP load benchmark"
+HOMEPAGE = "http://samba.org/ftp/tridge/dbench/"
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "popt"
+
+SRC_URI = "\
+ http://samba.org/ftp/tridge/dbench/dbench-${PV}.tar.gz \
+ file://destdir.patch \
+ file://makefile.patch"
+
+inherit autotools
+
+PACKAGES =+ "tbench tbench-dbg"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+FILES_tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
+FILES_tbench-dbg += "${bindir}/.debug/tbench*"
+
+SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
+SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch
new file mode 100644
index 000000000..4cd2a35f5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/destdir.patch
@@ -0,0 +1,28 @@
+Append $(DESTDIR) to all $(bindir), $(datadir) and $(mandir). Got
+this patch from OE commit id 709c4d66e0b107ca606941b988bad717c0b45d9b
+
+Upstream-Status: Inappropriate [not author]
+
+Index: dbench-3.04/Makefile.in
+===================================================================
+--- dbench-3.04.orig/Makefile.in 2006-09-17 20:21:07.000000000 +0200
++++ dbench-3.04/Makefile.in 2006-09-17 20:21:36.000000000 +0200
+@@ -32,12 +32,12 @@
+
+ # Careful here: don't install client.txt over itself.
+ install: all
+- ${INSTALLCMD} -d $(bindir) $(datadir) $(mandir)
+- ${INSTALLCMD} dbench tbench tbench_srv $(bindir)
+- ${INSTALLCMD} client.txt $(datadir)
+- ${INSTALLCMD} -m644 dbench.1 $(mandir)
+- ln -sf dbench.1 $(mandir)/tbench.1
+- ln -sf dbench.1 $(mandir)/tbench_srv.1
++ ${INSTALLCMD} -d $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) $(DESTDIR)$(mandir)
++ ${INSTALLCMD} dbench tbench tbench_srv $(DESTDIR)$(bindir)
++ ${INSTALLCMD} @top_srcdir@/client.txt $(DESTDIR)$(datadir)
++ ${INSTALLCMD} -m644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
++ ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench.1
++ ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench_srv.1
+
+ clean:
+ rm -f *.o *~ dbench tbench tbench_srv
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch
new file mode 100644
index 000000000..11fb4ffbd
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/dbench/files/makefile.patch
@@ -0,0 +1,18 @@
+Add space between install -m option and its argument. Got this patch from
+OE 709c4d66e0b107ca606941b988bad717c0b45d9b
+
+Upstream-Status: Inappropriate [not author]
+
+Index: dbench-4.0/Makefile.in
+===================================================================
+--- dbench-4.0.orig/Makefile.in
++++ dbench-4.0/Makefile.in
+@@ -35,7 +35,7 @@ install: all
+ ${INSTALLCMD} -d $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) $(DESTDIR)$(mandir)
+ ${INSTALLCMD} dbench tbench tbench_srv $(DESTDIR)$(bindir)
+ ${INSTALLCMD} @top_srcdir@/client.txt $(DESTDIR)$(datadir)
+- ${INSTALLCMD} -m644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
++ ${INSTALLCMD} -m 644 @top_srcdir@/dbench.1 $(DESTDIR)$(mandir)
+ ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench.1
+ ln -sf dbench.1 $(DESTDIR)$(mandir)/tbench_srv.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb
new file mode 100644
index 000000000..db6717300
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/fio/fio_2.2.6.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Filesystem and hardware benchmark and stress tool"
+DESCRIPTION = "fio is an I/O tool meant to be used both for benchmark and \
+stress/hardware verification. It has support for a number of I/O engines, \
+I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, \
+and much more. It can work on block devices as well as files. fio accepts \
+job descriptions in a simple-to-understand text format. Several example job \
+files are included. fio displays all sorts of I/O performance information."
+HOMEPAGE = "http://freecode.com/projects/fio"
+SECTION = "console/tests"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "libaio zlib"
+
+PACKAGECONFIG_NUMA = "numa"
+# ARM does not currently support NUMA
+PACKAGECONFIG_NUMA_arm = ""
+
+PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
+PACKAGECONFIG[numa] = ",--disable-numa,numactl"
+
+# rev for v2.2.6
+SRCREV = "f52c9691bc8c285f3445235c69acdfd6de7f9b82"
+SRC_URI = "git://git.kernel.dk/fio.git"
+
+S = "${WORKDIR}/git"
+
+# avoids build breaks when using no-static-libs.inc
+DISABLE_STATIC = ""
+
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
+
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} prefix=${prefix} mandir=${mandir}
+ install -d ${D}/${docdir}/${PN}
+ cp -R --no-dereference --preserve=mode,links -v ${S}/examples ${D}/${docdir}/${PN}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
new file mode 100644
index 000000000..439508102
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch
@@ -0,0 +1,34 @@
+From 9c74ec83e2929b1d5ab65d5137b6ba42edeb332d Mon Sep 17 00:00:00 2001
+From: Yong Gan <b45748@freescale.com>
+Date: Tue, 27 Oct 2015 18:15:20 +0800
+Subject: [PATCH] Fix: wl_surface should be destoryed after the wl_window
+ destroyed.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/issues/12]
+
+Signed-off-by: Yong Gan <b45748@freescale.com>
+
+---
+ src/native-state-wayland.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/native-state-wayland.cpp b/src/native-state-wayland.cpp
+index 41fc743..cdcdf34 100644
+--- a/src/native-state-wayland.cpp
++++ b/src/native-state-wayland.cpp
+@@ -56,10 +56,10 @@ NativeStateWayland::~NativeStateWayland()
+ wl_shell_surface_destroy(window_->shell_surface);
+ if (window_->opaque_reqion)
+ wl_region_destroy(window_->opaque_reqion);
+- if (window_->surface)
+- wl_surface_destroy(window_->surface);
+ if (window_->native)
+ wl_egl_window_destroy(window_->native);
++ if (window_->surface)
++ wl_surface_destroy(window_->surface);
+ delete window_;
+ }
+
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
new file mode 100644
index 000000000..ff13329ae
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
@@ -0,0 +1,43 @@
+From: Otavio Salvador <otavio@ossystems.com.br>
+Subject: [PATCH] build: Check packages to be used by the enabled flavors
+Organization: O.S. Systems Software LTDA.
+
+The packages shouldn't be dynamically detected otherwise the build
+predictability is lost. We now have all packages as mandatory but
+dependent of the flavors which use them.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ wscript | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/wscript b/wscript
+index cab62a3..e7eaed0 100644
+--- a/wscript
++++ b/wscript
+@@ -121,13 +121,17 @@ def configure(ctx):
+ ('mirclient','mirclient', '0.13', list_contains(Options.options.flavors, 'mir')),
+ ('wayland-client','wayland-client', None, list_contains(Options.options.flavors, 'wayland')),
+ ('wayland-egl','wayland-egl', None, list_contains(Options.options.flavors, 'wayland'))]
+- for (pkg, uselib, atleast, mandatory) in opt_pkgs:
++ for (pkg, uselib, atleast, check) in opt_pkgs:
++ # Check packages required by the flavors
++ if not check:
++ continue
++
+ if atleast is None:
+ ctx.check_cfg(package = pkg, uselib_store = uselib,
+- args = '--cflags --libs', mandatory = mandatory)
++ args = '--cflags --libs', mandatory = True)
+ else:
+ ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast,
+- args = '--cflags --libs', mandatory = mandatory)
++ args = '--cflags --libs', mandatory = True)
+
+
+ # Prepend CXX flags so that they can be overriden by the
+--
+2.4.6
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
new file mode 100644
index 000000000..e29921b52
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -0,0 +1,52 @@
+SUMMARY = "OpenGL (ES) 2.0 benchmark"
+DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
+It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
+HOMEPAGE = "https://launchpad.net/glmark2"
+BUGTRACKER = "https://bugs.launchpad.net/glmark2"
+
+LICENSE = "GPLv3+ & SGIv1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
+
+DEPENDS = "libpng12 jpeg"
+
+PV = "2014.03+${SRCPV}"
+
+SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
+ file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \
+ file://0001-Fix-wl_surface-should-be-destoryed-after-the-wl_wind.patch"
+SRCREV = "fa71af2dfab711fac87b9504b6fc9862f44bf72a"
+
+S = "${WORKDIR}/git"
+
+inherit waf pkgconfig
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \
+ drm-gl drm-gles2"
+
+PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
+PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
+PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm"
+PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm"
+PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
+PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
+
+python __anonymous() {
+ packageconfig = (d.getVar("PACKAGECONFIG", True) or "").split()
+ flavors = []
+ if "x11-gles2" in packageconfig:
+ flavors.append("x11-glesv2")
+ if "x11-gl" in packageconfig:
+ flavors.append("x11-gl")
+ if "wayland-gles2" in packageconfig:
+ flavors.append("wayland-glesv2")
+ if "wayland-gl" in packageconfig:
+ flavors.append("wayland-gl")
+ if "drm-gles2" in packageconfig:
+ flavors.append("drm-glesv2")
+ if "drm-gl" in packageconfig:
+ flavors.append("drm-gl")
+ if flavors:
+ d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors))
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt
new file mode 100644
index 000000000..3468fa929
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3/copyright.txt
@@ -0,0 +1,62 @@
+LICENSE:
+
+ Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
+
+ License to freely use and distribute this software is hereby granted
+ by the author, subject to the condition that this copyright notice
+ remains intact. The author retains the exclusive right to publish
+ derivative works based on this work, including, but not limited to
+ revised versions of this work.
+
+
+
+Below is author reply to question about distributing iozone3 in
+OpenEmbedded:
+
+========================================================================
+
+Marcin,
+
+ Re-distribution is permitted as long as the copyright is
+ maintained and the source code is not changed. I do not
+ see a problem with your mods to enable fileop for Linux-arm,
+ as these mods have been returned to the Iozone folks,
+ and they have been accepted for inclusion in the next
+ release :-)
+
+Thank you for your contribution,
+Don Capps
+
+----- Original Message -----
+From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
+<wnorcott@us.oracle.com>
+Sent: Sunday, October 29, 2006 4:55 PM
+Subject: iozone3 263 patch for arm and License question
+
+
+> Morning
+>
+> I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+> other developers. Currently OE is used to build few distributions for
+> misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+> machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+>
+> According to your distribution of derivations is forbidden. Packaging
+> iozone3 in OpenEmbedded will not involve any source code changes. But
+> when I was building it for ARM I discovered that fileop binary was not
+> built - so I created patch for it (attached). Not yet tested it on target
+> device.
+>
+> Thus, I seek your written permission via e-mail to distribute a package of
+> the unmodified source code and also a package of the pre-compiled binary.
+> Your copyright statement will be included in the package.
+>
+>
+> 1. http://www.openembedded.org/
+>
+> Regards
+> --
+> JID: hrw-jabber.org
+> OpenEmbedded developer/consultant
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb
new file mode 100644
index 000000000..14373b9e0
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iozone3/iozone3_414.bb
@@ -0,0 +1,114 @@
+SUMMARY = "Filesystem and Disk Benchmarking Tool"
+HOMEPAGE = "http://www.iozone.org/"
+AUTHOR = "Don Capps <don.capps2@verizon.net>, William D. Norcott <wnorcott@us.oracle.com>"
+SECTION = "console/tests"
+LICENSE = "iozone3"
+LIC_FILES_CHKSUM = "file://iozone.c;beginline=266;endline=270;md5=ab42a6185fd0443978871f11a007ac0b"
+
+SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
+ file://copyright.txt \
+"
+SRC_URI[md5sum] = "a40dcda593f5841d0aaffe9f21172020"
+SRC_URI[sha256sum] = "9f60e854d7bc5bc3de15355cf5621e15098bd744a26845d11730b3060f4a5fff"
+
+S = "${WORKDIR}/${BPN}_${PV}/src/current/"
+
+#
+# All other arches can use the default OEMAKE except those
+# explicitly listed below. Another, the iozone3 Makefile
+# needs to be told about the cross-compiler explicitly here.
+#
+EXTRA_OEMAKE_powerpc = "linux-powerpc CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_powerpc64 = "linux-powerpc64 CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE_arm = "linux-arm CC='${CC}' GCC='${CC}'"
+EXTRA_OEMAKE = "linux CC='${CC}' GCC='${CC}'"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ install -d ${D}${bindir} \
+ ${D}${mandir}/man1 \
+ ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/iozone ${D}${bindir}
+ install -m 0755 ${S}/fileop ${D}${bindir}
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/iozone.1 ${D}${mandir}/man1/
+ install -m 0644 ${WORKDIR}/copyright.txt ${D}${datadir}/doc/${BPN}/
+
+ install -m 0644 ${S}/*.dem ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/client_list ${D}${datadir}/doc/${BPN}/examples
+ install -m 0644 ${S}/Gnuplot.txt ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0755 ${S}/Generate_Graphs ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/gengnuplot.sh ${D}${datadir}/doc/${BPN}/examples
+ install -m 0755 ${S}/report.pl ${D}${datadir}/doc/${BPN}/examples
+
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Iozone_ps.gz ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/IOzone_msword_98.pdf ${D}${datadir}/doc/${BPN}/
+ install -m 0644 ${WORKDIR}/${BPN}_${PV}/docs/Run_rules.doc ${D}${datadir}/doc/${BPN}/
+}
+
+FILES_${PN} += "${datadir}/doc/${PN}/copyright.txt"
+
+# LICENSE:
+#
+# Copyright 1991, 1992, 1994, 1998, 1999, 2002 William D. Norcott
+#
+# License to freely use and distribute this software is hereby granted
+# by the author, subject to the condition that this copyright notice
+# remains intact. The author retains the exclusive right to publish
+# derivative works based on this work, including, but not limited to
+# revised versions of this work.
+#
+
+#
+# Below is author reply to question about distributing iozone3 in
+# OpenEmbedded:
+#
+# ========================================================================
+#
+# Marcin,
+#
+# Re-distribution is permitted as long as the copyright is
+# maintained and the source code is not changed. I do not
+# see a problem with your mods to enable fileop for Linux-arm,
+# as these mods have been returned to the Iozone folks,
+# and they have been accepted for inclusion in the next
+# release :-)
+#
+# Thank you for your contribution,
+# Don Capps
+#
+# ----- Original Message -----
+# From: "Marcin Juszkiewicz" <firma@hrw.one.pl>
+# To: "Don Capps" <don.capps2@verizon.net>; "William D. Norcott"
+# <wnorcott@us.oracle.com>
+# Sent: Sunday, October 29, 2006 4:55 PM
+# Subject: iozone3 263 patch for arm and License question
+#
+#
+# > Morning
+# >
+# > I want to include iozone3 in OpenEmbedded [1] metadata to give it for
+# > other developers. Currently OE is used to build few distributions for
+# > misc platforms: ARM, SH3, SH4, x86, PowerPC and different types of
+# > machines (PDA, settopbox, devboards, desktops, thin clients, routers).
+# >
+# > According to your distribution of derivations is forbidden. Packaging
+# > iozone3 in OpenEmbedded will not involve any source code changes. But
+# > when I was building it for ARM I discovered that fileop binary was not
+# > built - so I created patch for it (attached). Not yet tested it on target
+# > device.
+# >
+# > Thus, I seek your written permission via e-mail to distribute a package of
+# > the unmodified source code and also a package of the pre-compiled binary.
+# > Your copyright statement will be included in the package.
+# >
+# >
+# > 1. http://www.openembedded.org/
+# >
+# > Regards
+# > --
+# > JID: hrw-jabber.org
+# > OpenEmbedded developer/consultant
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch
new file mode 100644
index 000000000..e8a029790
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/0001-fix-out-of-tree-config.patch
@@ -0,0 +1,52 @@
+iperf: fix out of tree configuration
+
+The configure step uses a package header to check for support of types/declares,
+this package header encapsulates all the required system header for providing
+the needed resources. When configured from an out of tree directory the package
+header is not found due to the hard path.
+We now make the path for package header relative to our 'srcdir' so it is
+found appropriately.
+
+Signed-off-by: Awais Belal <awais_belal@mentor.com>
+---
+diff --git a/configure.ac b/configure.ac
+index 2b3fd20..d420f9e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -176,8 +176,8 @@ dnl Check for system services
+
+ dnl check for multicast
+ if test "$ac_cv_multicast" != no; then
+- AC_CHECK_TYPES(struct ip_mreq,,,[#include "compat/headers_slim.h"])
+- AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"])
++ AC_CHECK_TYPES(struct ip_mreq,,,[#include "${srcdir}/compat/headers_slim.h"])
++ AC_CHECK_DECLS(IP_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"])
+ AC_MSG_CHECKING(for multicast support)
+ ac_cv_multicast=no
+ if test "$ac_cv_have_decl_IP_ADD_MEMBERSHIP" = yes; then
+@@ -193,9 +193,9 @@ fi
+
+ dnl check for IPv6
+ if test "$ac_cv_have_ipv6" != no; then
+- AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "compat/headers_slim.h"])
+- AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "compat/headers_slim.h"])
+- AC_CHECK_DECLS(AF_INET6,,,[#include "compat/headers_slim.h"])
++ AC_CHECK_TYPES(struct sockaddr_storage,,,[#include "${srcdir}/compat/headers_slim.h"])
++ AC_CHECK_TYPES(struct sockaddr_in6,,,[#include "${srcdir}/compat/headers_slim.h"])
++ AC_CHECK_DECLS(AF_INET6,,,[#include "${srcdir}/compat/headers_slim.h"])
+ AC_MSG_CHECKING(for IPv6 headers and structures)
+ ac_cv_have_ipv6=no
+ if test "$ac_cv_type_struct_sockaddr_storage" = yes; then
+@@ -211,9 +211,9 @@ fi
+
+ if test "$ac_cv_have_ipv6" = yes; then
+ if test "$ac_cv_multicast" = yes; then
+- AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "compat/headers_slim.h"])
+- AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "compat/headers_slim.h"])
+- AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "compat/headers_slim.h"])
++ AC_CHECK_TYPES(struct ipv6_mreq,,,[#include "${srcdir}/compat/headers_slim.h"])
++ AC_CHECK_DECLS(IPV6_ADD_MEMBERSHIP,,,[#include "${srcdir}/compat/headers_slim.h"])
++ AC_CHECK_DECLS(IPV6_MULTICAST_HOPS,,,[#include "${srcdir}/compat/headers_slim.h"])
+ AC_MSG_CHECKING(for IPv6 multicast support)
+ ac_cv_have_ipv6_multicast=no
+ if test "$ac_cv_type_struct_ipv6_mreq" = yes; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
new file mode 100755
index 000000000..12e8f4631
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf-2.0.5/iperf-2.0.5_ManPage.patch
@@ -0,0 +1,8 @@
+diff --git iperf-2.0.5/man/Makefile.am iperf-2.0.5/man/Makefile.am
+ index ed97bc6..728873f 100644
+--- iperf-2.0.5/man/Makefile.am
++++ iperf-2.0.5/man/Makefile.am
+@@ -1,2 +1 @@
+-man_MANS = iperf.1
+-dist_man_MANS = $(man_MANS)
++dist_man_MANS = iperf.1
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
new file mode 100644
index 000000000..4e667928f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf/iperf_2.0.5.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
+HOMEPAGE = "http://dast.nlanr.net/Projects/Iperf/"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e8478eae9f479e39bc34975193360298"
+
+SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf/${BP}.tar.gz \
+ file://iperf-2.0.5_ManPage.patch \
+ file://0001-fix-out-of-tree-config.patch \
+ "
+
+SRC_URI[md5sum] = "44b5536b67719f4250faed632a3cd016"
+SRC_URI[sha256sum] = "636b4eff0431cea80667ea85a67ce4c68698760a9837e1e9d13096d20362265b"
+
+S = "${WORKDIR}/${BP}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
new file mode 100644
index 000000000..06c394e5c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
@@ -0,0 +1,17 @@
+Pass the 'foreign' option to automake to enable iperf3 to build.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Chunrong Guo <b40290@freescale.com>
+
+--- a/configure.ac 2015-10-19 02:49:30.471867352 -0500
++++ b/configure.ac 2015-10-19 02:46:36.207873572 -0500
+@@ -33,7 +33,7 @@
+
+
+ # Initialize the automake system
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AM_MAINTAINER_MODE
+ AM_CONFIG_HEADER(src/iperf_config.h)
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
new file mode 100644
index 000000000..4a0f28ec7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_git.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Network benchmark tool"
+DESCRIPTION = "\
+iperf is a tool for active measurements of the maximum achievable bandwidth \
+on IP networks. It supports tuning of various parameters related to timing, \
+protocols, and buffers. For each test it reports the bandwidth, loss, and \
+other parameters."
+HOMEPAGE = "http://software.es.net/iperf/"
+SECTION = "console/network"
+BUGTRACKER = "https://github.com/esnet/iperf/issues"
+AUTHOR = "ESNET <info@es.net>, Lawrence Berkeley National Laboratory <websupport@lbl.gov>"
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=062ab1bc33fae1926387ac1274cb0873"
+
+SRC_URI = "\
+ git://github.com/esnet/iperf.git \
+ file://automake-foreign.patch \
+"
+
+PV = "3.1+gitr${SRCPV}"
+SRCREV = "e396134952a01199326665d1df7c51ae9e62e945"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch
new file mode 100644
index 000000000..0b8d0e4d5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-install-perl-lib-to-directory-perl-instead-of-perl5.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Inappropriate [oe-core specific]
+
+libhugetlbfs depends on perl, and perl installs a directory 'perl'
+and make a symlink 'perl5' to it. So just install perl libs in
+libhugetlbfs to directory 'perl' instead of 'perl5'. This can avoid
+the following error:
+| CalledProcessError: Command 'tar -cf - -C .../perl/5.14.3-r1/sysroot-destdir
+| -ps . | tar -xf - -C .../tmp/sysroots/t4240qds'
+| returned non-zero exit status 2 with output
+| tar: ./usr/lib/perl5: Cannot create symlink to `perl': File exists
+| tar: Exiting with failure status due to previous errors
+
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+
+--- a/Makefileold 2013-10-11 23:07:31.759421318 -0500
++++ b/Makefile 2013-10-11 23:08:01.935571122 -0500
+@@ -173,17 +173,17 @@
+ DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
+
+ ifdef CC32
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ endif
+
+ ifdef CC64
+ ifeq ($(ARCH),x86_64)
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ else
+ ifeq ($(ARCH),aarch64)
+-PMDIR = $(PREFIX)/lib/perl5/TLBC
++PMDIR = $(PREFIX)/lib/perl/TLBC
+ else
+-PMDIR = $(PREFIX)/lib64/perl5/TLBC
++PMDIR = $(PREFIX)/lib64/perl/TLBC
+ endif
+ endif
+ endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
new file mode 100644
index 000000000..3082d7ef5
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
@@ -0,0 +1,43 @@
+From a85fc43243f8bfad12d306a4a0e230fb8b3e828a Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Wed, 21 Aug 2013 15:44:57 +0800
+Subject: [PATCH] run_test.py: not use hard coded path ../obj/hugeadm
+
+Hard coded path makes the script impossible to run out of source tree.
+After 'make install', we can use hugeadm utility under DESTDIR.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ tests/run_tests.py | 12 +++++++++++-
+ 1 files changed, 11 insertions(+), 1 deletions(-)
+
+diff --git a/tests/run_tests.py b/tests/run_tests.py
+index d9a6b35..a9bab8f 100755
+--- a/tests/run_tests.py
++++ b/tests/run_tests.py
+@@ -232,9 +232,19 @@ def get_pagesizes():
+ Use libhugetlbfs' hugeadm utility to get a list of page sizes that have
+ active mount points and at least one huge page allocated to the pool.
+ """
++ local_env = os.environ.copy()
++ local_env["PATH"] = "../obj:%s" % local_env.get("PATH", "")
+ sizes = set()
+ out = ""
+- (rc, out) = bash("../obj/hugeadm --page-sizes")
++ try:
++ p = subprocess.Popen("hugeadm --page-sizes", shell=True, env=local_env, stdout=subprocess.PIPE)
++ rc = p.wait()
++ except KeyboardInterrupt:
++ return sizes
++ except OSError:
++ return sizes
++ out = p.stdout.read().strip()
++
+ if rc != 0 or out == "": return sizes
+
+ for size in out.split("\n"): sizes.add(int(size))
+--
+1.7.3.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
new file mode 100644
index 000000000..676fa8a7a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/fix-lib64-can-not-be-shiped-in-64bit-target.patch
@@ -0,0 +1,75 @@
+Upstream-Status: Inappropriate [oe-core specific]
+
+
+fix the below error:
+ ERROR: QA Issue: libhugetlbfs: Files/directories were installed but not shipped
+ /usr/lib64
+ /usr/lib64/libhugetlbfs.so
+ /usr/lib64/libhugetlbfs.a
+ /usr/lib64/libhugetlbfs_privutils.so
+ /usr/lib64/perl5
+ /usr/lib64/perl5/TLBC
+ /usr/lib64/perl5/TLBC/PerfCollect.pm
+ /usr/lib64/perl5/TLBC/Report.pm
+ /usr/lib64/perl5/TLBC/DataCollect.pm
+ /usr/lib64/perl5/TLBC/OpCollect.pm
+$<50>ERROR: QA run found fatal errors. Please consider fixing them.
+
+
+Signed-off-by: Guo Chunrong <B40290@freescale.com>
+
+--- a/Makefile 2013-09-23 02:28:57.340566998 -0500
++++ b/Makefile 2013-09-23 02:31:05.344569896 -0500
+@@ -33,7 +33,6 @@
+ CPPFLAGS += -D__LIBHUGETLBFS__ -DPPC_NO_SEGMENTS
+
+ ARCH = $(shell uname -m | sed -e s/i.86/i386/)
+-CC = gcc
+
+ CUSTOM_LDSCRIPTS = yes
+
+@@ -59,9 +58,9 @@
+ CUSTOM_LDSCRIPTS = no
+ else
+ ifeq ($(ARCH),aarch64)
+-CC64 = gcc
++CC64 = $(CC)
+ ELF64 = aarch64elf
+-TMPLIB64 = lib64
++TMPLIB64 = lib
+ CUSTOM_LDSCRIPTS = no
+ else
+ ifeq ($(ARCH),i386)
+@@ -72,7 +71,7 @@
+ ifeq ($(ARCH),x86_64)
+ CC64 = $(CC) -m64
+ ELF64 = elf_x86_64
+-TMPLIB64 = lib64
++TMPLIB64 = lib
+ TMPLIB32 = lib
+ ifneq ($(BUILDTYPE),NATIVEONLY)
+ CC32 = $(CC) -m32
+@@ -172,11 +171,23 @@
+ BINDIR = $(PREFIX)/share/libhugetlbfs
+ EXEDIR = $(PREFIX)/bin
+ DOCDIR = $(PREFIX)/share/doc/libhugetlbfs
++
+ ifdef CC32
+ PMDIR = $(PREFIX)/lib/perl5/TLBC
++endif
++
++ifdef CC64
++ifeq ($(ARCH),x86_64)
++PMDIR = $(PREFIX)/lib/perl5/TLBC
++else
++ifeq ($(ARCH),aarch64)
++PMDIR = $(PREFIX)/lib/perl5/TLBC
+ else
+ PMDIR = $(PREFIX)/lib64/perl5/TLBC
+ endif
++endif
++endif
++
+ MANDIR1 = $(PREFIX)/share/man/man1
+ MANDIR3 = $(PREFIX)/share/man/man3
+ MANDIR7 = $(PREFIX)/share/man/man7
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
new file mode 100644
index 000000000..b3fd84312
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
@@ -0,0 +1,99 @@
+From 0a2877400a086e9d6ddd32a80462b7a931921dc2 Mon Sep 17 00:00:00 2001
+From: Chunrong Guo <B40290@freescale.com>
+Date: Sun, 8 Sep 2013 23:21:49 -0500
+Subject: [PATCH] libhugetlbfs: avoid search host library path for cross
+ compilation
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Chunrong Guo <B40290@freescale.com>
+---
+ ldscripts/elf32ppclinux.xB | 2 +-
+ ldscripts/elf32ppclinux.xBDT | 2 +-
+ ldscripts/elf64ppc.xB | 2 +-
+ ldscripts/elf64ppc.xBDT | 2 +-
+ ldscripts/elf_x86_64.xB | 2 +-
+ ldscripts/elf_x86_64.xBDT | 2 +-
+ 6 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/ldscripts/elf32ppclinux.xB b/ldscripts/elf32ppclinux.xB
+index 28ad88d..33d482d 100644
+--- a/ldscripts/elf32ppclinux.xB
++++ b/ldscripts/elf32ppclinux.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
+ "elf32-powerpc")
+ OUTPUT_ARCH(powerpc:common)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf32ppclinux.xBDT b/ldscripts/elf32ppclinux.xBDT
+index 497882b..823475e 100644
+--- a/ldscripts/elf32ppclinux.xBDT
++++ b/ldscripts/elf32ppclinux.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf32-powerpc", "elf32-powerpc",
+ "elf32-powerpc")
+ OUTPUT_ARCH(powerpc:common)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf64ppc.xB b/ldscripts/elf64ppc.xB
+index 1a9c1ab..8cc557d 100644
+--- a/ldscripts/elf64ppc.xB
++++ b/ldscripts/elf64ppc.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc",
+ "elf64-powerpc")
+ OUTPUT_ARCH(powerpc:common64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ PHDRS
+ {
+diff --git a/ldscripts/elf64ppc.xBDT b/ldscripts/elf64ppc.xBDT
+index 5477294..53e0749 100644
+--- a/ldscripts/elf64ppc.xBDT
++++ b/ldscripts/elf64ppc.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-powerpc", "elf64-powerpc",
+ "elf64-powerpc")
+ OUTPUT_ARCH(powerpc:common64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/powerpc64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/powerpc64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT( -lhugetlbfs );
+ PHDRS
+ {
+diff --git a/ldscripts/elf_x86_64.xB b/ldscripts/elf_x86_64.xB
+index ed21a2c..ba50e9f 100644
+--- a/ldscripts/elf_x86_64.xB
++++ b/ldscripts/elf_x86_64.xB
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
+ "elf64-x86-64")
+ OUTPUT_ARCH(i386:x86-64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+diff --git a/ldscripts/elf_x86_64.xBDT b/ldscripts/elf_x86_64.xBDT
+index 1855202..c62d245 100644
+--- a/ldscripts/elf_x86_64.xBDT
++++ b/ldscripts/elf_x86_64.xBDT
+@@ -3,7 +3,7 @@ OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64",
+ "elf64-x86-64")
+ OUTPUT_ARCH(i386:x86-64)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
++/*SEARCH_DIR("/usr/x86_64-linux-gnu/lib64"); SEARCH_DIR("/usr/local/lib64"); SEARCH_DIR("/lib64"); SEARCH_DIR("/usr/lib64"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");*/
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+--
+1.7.9.7
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch
new file mode 100644
index 000000000..b77cfe10e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-using-restrict-as-var-name.patch
@@ -0,0 +1,34 @@
+Avoid using keyword restrict as variable name which causes error with gcc 5.x:
+
+| hugeutils.c: In function '__lh_hugetlbfs_setup_env':
+| hugeutils.c:304:40: error: expected identifier or '(' before 'restrict'
+| char *p, *tok, *exe, buf[MAX_EXE+1], restrict[MAX_EXE];
+| ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/hugeutils.c b/hugeutils.c
+index 53a7fbd..b9d7001 100644
+--- a/hugeutils.c
++++ b/hugeutils.c
+@@ -301,14 +301,14 @@ void hugetlbfs_setup_env()
+
+ env = getenv("HUGETLB_RESTRICT_EXE");
+ if (env) {
+- char *p, *tok, *exe, buf[MAX_EXE+1], restrict[MAX_EXE];
++ char *p, *tok, *exe, buf[MAX_EXE+1], restricted[MAX_EXE];
+ int found = 0;
+
+ exe = get_exe_name(buf, sizeof buf);
+ DEBUG("Found HUGETLB_RESTRICT_EXE, this exe is \"%s\"\n", exe);
+- strncpy(restrict, env, sizeof restrict);
+- restrict[sizeof(restrict)-1] = 0;
+- for (p = restrict; (tok = strtok(p, ":")) != NULL; p = NULL) {
++ strncpy(restricted, env, sizeof restricted);
++ restricted[sizeof(restricted)-1] = 0;
++ for (p = restricted; (tok = strtok(p, ":")) != NULL; p = NULL) {
+ DEBUG(" ...check exe match for \"%s\"\n", tok);
+ if (strcmp(tok, exe) == 0) {
+ found = 1;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
new file mode 100644
index 000000000..15664884b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
@@ -0,0 +1,40 @@
+From 889e52753d30179ba4ac940023cb4ed561436ab8 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 4 Nov 2014 00:49:11 -0800
+Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for cross compilation
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ ldscripts/elf_i386.xB | 1 -
+ ldscripts/elf_i386.xBDT | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/ldscripts/elf_i386.xB b/ldscripts/elf_i386.xB
+index 43fe51c..eae0fa8 100644
+--- a/ldscripts/elf_i386.xB
++++ b/ldscripts/elf_i386.xB
+@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386",
+ "elf32-i386")
+ OUTPUT_ARCH(i386)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+diff --git a/ldscripts/elf_i386.xBDT b/ldscripts/elf_i386.xBDT
+index d72aebe..3bac1b1 100644
+--- a/ldscripts/elf_i386.xBDT
++++ b/ldscripts/elf_i386.xBDT
+@@ -3,7 +3,6 @@ OUTPUT_FORMAT("elf32-i386", "elf32-i386",
+ "elf32-i386")
+ OUTPUT_ARCH(i386)
+ ENTRY(_start)
+-SEARCH_DIR("/usr/i486-linux-gnu/lib"); SEARCH_DIR("/usr/local/lib"); SEARCH_DIR("/lib"); SEARCH_DIR("/usr/lib");
+ INPUT(-lhugetlbfs);
+ /* Do we need any of these for elf?
+ __DYNAMIC = 0; */
+--
+1.7.9.5
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
new file mode 100644
index 000000000..07a99719b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
@@ -0,0 +1,23 @@
+From 355c014573de7f95202cc7c819f81f0f230e4a1a Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Mon, 18 Jun 2012 16:37:05 +0800
+Subject: [PATCH] skip checking LIB32 and LIB64 if they point to the same place
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+
+diff --git a/Makefile b/Makefile
+index 91502e1..bfb3414 100644
+--- a/Makefile
++++ b/Makefile
+@@ -167,7 +167,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
+ REALLIB64 = $(realpath $(PREFIX)/$(LIB64))
+ ifneq ($(realpath $(PREFIX)),)
+ ifeq ($(REALLIB32),$(REALLIB64))
+-$(error LIB32 ($(PREFIX)/$(LIB32) to $(REALLIB32)) and LIB64 ($(PREFIX)/$(LIB64) to $(REALLIB64)) are resolving to the same place. Manually specify LIB32 and LIB64. e.g. make PREFIX=$(PREFIX) LIB32=lib32 LIB64=lib64)
+ endif
+ endif
+
+--
+1.9.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
new file mode 100644
index 000000000..249f6e1e2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Submitted
+
+TESTS_64 is empty, install will fail due to missing file operand
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+
+--- a/tests/Makefileold 2013-10-12 02:32:55.262391998 -0500
++++ b/tests/Makefile 2013-10-12 02:33:45.929394722 -0500
+@@ -292,7 +292,7 @@
+ $(INSTALL) -m 755 wrapper-utils.sh $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ $(INSTALL) -m 755 $(HELPERS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ $(INSTALL) -m 755 $(HELPER_LIBS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+- $(INSTALL) -m 755 $(TESTS_64:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
++ $(INSTALL) -m 755 $(TESTS_64_STATIC:%=obj64/%_static) $(DESTDIR)$(INST_TESTSDIR64)/obj64
+ $(INSTALL) -m 755 run_tests.py $(DESTDIR)$(INST_TESTSDIR64)
+
+ install: $(OBJDIRS:%=%/install)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
new file mode 100644
index 000000000..015d4463a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -0,0 +1,66 @@
+SUMMARY = "A library which provides easy access to huge pages of memory"
+HOMEPAGE = "https://github.com/libhugetlbfs/libhugetlbfs"
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "sysfsutils perl"
+RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource"
+RDEPENDS_${PN}-tests += "bash"
+
+PV = "2.19"
+PE = "1"
+
+SRCREV = "426c22d65415fcb8927f68fbc5887e075a8dc40a"
+SRC_URI = " \
+ git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
+ file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
+ file://libhugetlbfs-avoid-search-host-library-path-for-cros.patch \
+ file://tests-Makefile-install-static-4G-edge-testcases.patch \
+ file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \
+ file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \
+ file://libhugetlbfs-avoid-using-restrict-as-var-name.patch \
+"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_HOST = "(x86_64|powerpc|powerpc64|aarch64|arm).*-linux*"
+
+LIBARGS = "LIB32=${baselib} LIB64=${baselib}"
+LIBHUGETLBFS_ARCH = "${TARGET_ARCH}"
+LIBHUGETLBFS_ARCH_powerpc = "ppc"
+LIBHUGETLBFS_ARCH_powerpc64 = "ppc64"
+EXTRA_OEMAKE = "'ARCH=${LIBHUGETLBFS_ARCH}' 'OPT=${CFLAGS}' 'CC=${CC}' ${LIBARGS} BUILDTYPE=NATIVEONLY V=2"
+PARALLEL_MAKE = ""
+CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+#The CUSTOM_LDSCRIPTS doesn't work with the gold linker
+do_configure() {
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
+ sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/' Makefile
+ fi
+
+ # fixup perl module directory hardcoded to perl5
+ sed -i 's/perl5/perl/g' Makefile
+}
+
+do_install() {
+ oe_runmake PREFIX=${prefix} DESTDIR=${D} \
+ INST_TESTSDIR32=${libdir}/libhugetlbfs/tests \
+ INST_TESTSDIR64=${libdir}/libhugetlbfs/tests \
+ install-tests
+}
+
+
+PACKAGES =+ "${PN}-perl ${PN}-tests "
+FILES_${PN} += "${libdir}/*.so"
+FILES_${PN}-dev = "${includedir}"
+FILES_${PN}-dbg += "${libdir}/libhugetlbfs/tests/obj32/.debug ${libdir}/libhugetlbfs/tests/obj64/.debug"
+FILES_${PN}-perl = "${libdir}/perl"
+FILES_${PN}-tests += "${libdir}/libhugetlbfs/tests"
+
+INSANE_SKIP_${PN} = "dev-so"
+
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
new file mode 100644
index 000000000..549a114d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch
@@ -0,0 +1,206 @@
+lmbench: Can't proceed on some targets
+
+lmbench can't proceed on some targets. The memory check fails because the
+memory latency of each page is longer then 10us, which is a time limit set
+in the original memsize.c.
+
+The memory latency is very different on different targets due to the
+hardware and current system load. The targets with slower memory
+chips or heavy system load need much longer time to read or write
+the memory.
+
+This fix changes the fixed time limit of 10us to a specific value calculated
+from the runtime target.
+
+Also set an upper limit of memory size used for lmbench testing. The memory
+check sometimes fails if the target has a large amount of memory, for
+example more than 4G.
+
+Signed-off-by: Qingming Su <qingming.su@windriver.com>
+Signed-off-by: Fupan Li <fupan.li@windriver.com>
+
+Add and reword above comments
+
+Upstream-status: inappropriate [ configuration ]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+diff --git a/scripts/config-run b/scripts/config-run
+index e1f7b6d..31b9256 100755
+--- a/scripts/config-run
++++ b/scripts/config-run
+@@ -214,6 +214,12 @@ The bigger the range, the more accurate the results, but larger sizes
+ take somewhat longer to run the benchmark.
+
+ EOF
++
++# By default, use 512M memory as the upper limit for lmbench test
++if [ $MB -gt 512 ];then
++MB=512
++fi
++
+ echo $ECHON "MB [default $MB]: $ECHOC"
+ #read TMP
+ TMP=""
+@@ -718,10 +724,10 @@ case $MAIL in
+ ;;
+ esac
+
+-INFO=`../scripts/info`
++INFO=`../scripts/hostinfo`
+ if [ $MAIL = yes ]
+ then if [ ! -f $INFO ]
+- then cp ../scripts/info-template $INFO
++ then cp ../scripts/hostinfo-template $INFO
+ chmod +w $INFO
+ REUSE=no
+ else
+@@ -765,7 +771,7 @@ EOF
+ then EDITOR=$TMP
+ fi
+ if [ X$EDITOR != "none" ]
+- then $EDITOR `../scripts/info`
++ then $EDITOR `../scripts/hostinfo`
+ fi
+ fi
+ fi
+diff --git a/src/Makefile b/src/Makefile
+index d1f0dc6..5098998 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -49,7 +49,7 @@ TARGET=`../scripts/target`
+ BINDIR=../bin/$(OS)
+ CONFIG=../bin/$(OS)/`../scripts/config`
+ UTILS=../scripts/target ../scripts/os ../scripts/gnu-os ../scripts/compiler \
+- ../scripts/info ../scripts/info-template ../scripts/version \
++ ../scripts/hostinfo ../scripts/hostinfo-template ../scripts/version \
+ ../scripts/config ../scripts/config-run ../scripts/results \
+ ../scripts/lmbench ../scripts/make ../scripts/build
+ INSTALL=cp
+@@ -240,7 +240,7 @@ $O/getopt.o : getopt.c $(INCS)
+ $(COMPILE) -c getopt.c -o $O/getopt.o
+
+ $(UTILS) :
+- -cd ../scripts; make get
++ -cd ../scripts; cp info hostinfo; cp info-template hostinfo-template
+
+ # Do not remove the next line, $(MAKE) depend needs it
+ # MAKEDEPEND follows
+diff --git a/src/memsize.c b/src/memsize.c
+index eb25a09..cf9fe0c 100644
+--- a/src/memsize.c
++++ b/src/memsize.c
+@@ -14,9 +14,12 @@ char *id = "$Id$\n";
+
+ #define CHK(x) if ((x) == -1) { perror("x"); exit(1); }
+
+-#ifndef TOO_LONG
+-#define TOO_LONG 10 /* usecs */
+-#endif
++//#ifndef TOO_LONG
++//#define TOO_LONG 10 /* usecs */
++//#endif
++
++#define MEMORY_SIZE_1MB (1024 * 1024)
++#define MEMORY_SIZE_8MB (8 * 1024 * 1024)
+
+ int alarm_triggered = 0;
+
+@@ -35,10 +38,10 @@ main(int ac, char **av)
+ size_t delta;
+
+ if (ac == 2) {
+- max = size = bytes(av[1]) * 1024 * 1024;
++ max = size = bytes(av[1]) * MEMORY_SIZE_1MB;
+ }
+- if (max < 1024 * 1024) {
+- max = size = 1024 * 1024 * 1024;
++ if (max < MEMORY_SIZE_1MB) {
++ max = size = 1024 * MEMORY_SIZE_1MB;
+ }
+ /*
+ * Binary search down and then binary search up
+@@ -48,7 +51,7 @@ main(int ac, char **av)
+ }
+ /* delta = size / (2 * 1024 * 1024) */
+ for (delta = (size >> 21); delta > 0; delta >>= 1) {
+- uint64 sz = (uint64)size + (uint64)delta * 1024 * 1024;
++ uint64 sz = (uint64)size + (uint64)delta * MEMORY_SIZE_1MB;
+ size_t check = sz;
+ if (max < sz) continue;
+ if (check < sz || !test_malloc(sz)) break;
+@@ -66,41 +69,58 @@ timeit(char *where, size_t size)
+ {
+ int sum = 0;
+ size_t n;
+- size_t s_prev;
++ size_t s_prev = MEMORY_SIZE_8MB;
+ size_t range;
+- size_t incr = 1024 * 1024;
++ size_t incr = MEMORY_SIZE_1MB;
+ size_t pagesize = getpagesize();
+- unsigned long long s;
+-
+- if (size < 1024*1024 - 16*1024) {
+- fprintf(stderr, "Bad size\n");
+- return;
+- }
++ size_t time_each_page = 0;
++ size_t too_long = 0;
++ unsigned long long s;
++
++ if (pagesize < MEMORY_SIZE_1MB)
++ range = MEMORY_SIZE_1MB;
++ else
++ range = MEMORY_SIZE_8MB;
++
++ incr = MEMORY_SIZE_1MB;
++
++ if (size < range) {
++ fprintf(stderr, "Bad size\n");
++ return;
++ }
++
++ //Touch range of memory, get the average time (usec) of operating each memory page on this system
++ start(0);
++ touchRange(where, range, pagesize);
++ sum = stop(0, 0);
++
++ if ((time_each_page = sum * pagesize / range) < 1)
++ time_each_page = 1;
++ //Set the uper limit of time spending on one page
++ too_long = 10 * time_each_page;
+
+- range = 1024 * 1024;
+- incr = 1024 * 1024;
+- touchRange(where, range, pagesize);
+ for (range += incr; range <= size; range += incr) {
+ n = range / pagesize;
+- set_alarm(n * TOO_LONG);
++ set_alarm(n * too_long);
+ touchRange(where + range - incr, incr, pagesize);
+ clear_alarm();
+- set_alarm(n * TOO_LONG);
++ set_alarm(n * too_long);
+ start(0);
+ touchRange(where, range, pagesize);
+ sum = stop(0, 0);
+ clear_alarm();
+- if ((sum / n) > TOO_LONG || alarm_triggered) {
++ if ((sum / n) > too_long || alarm_triggered) {
+ size = range - incr;
++ fprintf(stderr, "Error! Memory testing timeout! Touch one page of memory needs more than %d (usecs)\n ", too_long);
+ break;
+ }
+- for (s = 8 * 1024 * 1024; s <= range; s_prev = s, s *= 2)
++ for (s = s_prev; s <= range; s_prev = s, s *= 2)
+ if (s < s_prev) break;
+ incr = s / 8;
+ if (range < size && size < range + incr) {
+ incr = size - range;
+ }
+- fprintf(stderr, "%dMB OK\r", (int)(range/(1024*1024)));
++ fprintf(stderr, "%dMB OK\r", (int)(range/MEMORY_SIZE_1MB));
+ }
+ fprintf(stderr, "\n");
+ printf("%d\n", (int)(size>>20));
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
new file mode 100644
index 000000000..cda2f0c6d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch
@@ -0,0 +1,61 @@
+lmbench: Fix "make html" graph failure
+
+The html-list perl script cannot parse the first line of the result
+files about the lmbench version.
+
+Additional fixes are to make the result's html pages easier to understand.
+
+Signed-off-by: Lin Yu <lin.yu@windriver.com>
+Signed-off-by: Fupan Li <fupan.li@windriver.com>
+
+Reworded patch description.
+
+Upstream-status: inappropriate [ configuration ]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+diff --git a/results/Makefile b/results/Makefile
+index 0935376..1ef9a15 100644
+--- a/results/Makefile
++++ b/results/Makefile
+@@ -186,6 +186,7 @@ paper:
+ # scratch makes you want a Ghz machine.
+ html: dirs
+ -make clean
++ make ps
+ #$(SCRIPTS)bghtml $(BG)
+ $(SCRIPTS)html-list $(LIST)
+ $(MK) LIST="$(LIST)" summary > HTML/summary.out 2> HTML/summary.errs
+diff --git a/scripts/html-list b/scripts/html-list
+index 9850461..6383115 100755
+--- a/scripts/html-list
++++ b/scripts/html-list
+@@ -14,7 +14,7 @@ open(H, ">HTML/specific.html");
+ print H <<EOF;
+ <title>LMBENCH System Results</title>
+ <h1>LMBENCH System Results</h1>
+-<h2><a href=summary>Summary of results</a></h2>
++<h2><a href=summary.out>Summary of results</a></h2>
+ <hr>
+ EOF
+
+@@ -47,7 +47,7 @@ foreach $os (@os) {
+ open(F, $file);
+ $_ = <F>;
+ close(F);
+- next unless /lmbench1.[01]/;
++ next unless /lmbench[0-9]+.[01]/;
+ chop;
+ $title = $_;
+ #s/.lmbench1.? results for //;
+@@ -103,10 +103,7 @@ EOF
+ if $i < $#os;
+ print S<<EOF;
+ <h4>$title</h4>
+-<a href=../$doc{$what}>Information on this benchmark</a> (Not up to date)
+ <p><IMG SRC="${what}${scale}$N.gif">\n<p>
+-<a href=../lmbench.html>
+-<img align=middle src="../gifs/arrows/b_arrow.gif">LMBENCH table of contents</a>
+ <a href=specific.html>
+ <img align=middle src=\"../gifs/graph.gif\">System results table of contents</a>
+ <p>
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
new file mode 100644
index 000000000..41a3b3205
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
@@ -0,0 +1,30 @@
+In some cases the host may have too old of a ranlib to work. Since it's
+not exactly a great idea to not be using the cross ranlib anyhow, fix the
+Makefile so we can override ranlib and then override it
+
+Upstream-Status: Inappropriate [build system specific change]
+---
+ src/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+Index: lmbench-3.0-a9/src/Makefile
+===================================================================
+--- lmbench-3.0-a9.orig/src/Makefile
++++ lmbench-3.0-a9/src/Makefile
+@@ -38,6 +38,7 @@ CC=`../scripts/compiler`
+ MAKE=`../scripts/make`
+ AR=ar
+ ARCREATE=cr
++RANLIB=ranlib
+
+ # base of installation location
+ BASE=/usr/local
+@@ -217,7 +218,7 @@ $O/lmbench : ../scripts/lmbench version.
+ $O/lmbench.a: $(LIBOBJS)
+ /bin/rm -f $O/lmbench.a
+ $(AR) $(ARCREATE) $O/lmbench.a $(LIBOBJS)
+- -ranlib $O/lmbench.a
++ -$(RANLIB) $O/lmbench.a
+
+ $O/lib_timing.o : lib_timing.c $(INCS)
+ $(COMPILE) -c lib_timing.c -o $O/lib_timing.o
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
new file mode 100644
index 000000000..b46e09ad1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Pending
+Index: lmbench-3.0-a9/scripts/config
+===================================================================
+--- lmbench-3.0-a9/scripts/config 2000-01-31 18:29:31.000000000 -0600
++++ lmbench-3.0-a9/scripts/config 2013-03-01 00:19:41.032984315 -0600
+@@ -3,5 +3,5 @@
+ UNAME=`uname -n 2>/dev/null`
+ if [ X$UNAME = X ]
+ then echo CONFIG
+-else echo CONFIG.$UNAME
++else echo ../scripts/CONFIG.$UNAME
+ fi
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
new file mode 100644
index 000000000..894f146d4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
@@ -0,0 +1,160 @@
+Now that we have our binaries in /usr/bin rather than the normal
+lmbench hierarchy we need to update the scripts as well to behave well here.
+
+Upstream-Status: Inappropriate [This is related to the OE-specific behavior
+of installing into /usr/bin, etc, rather than dumping everything into
+/usr/share/lmbench or similar]
+
+Index: lmbench-3.0-a9/scripts/results
+===================================================================
+--- lmbench-3.0-a9.orig/scripts/results
++++ lmbench-3.0-a9/scripts/results
+@@ -8,11 +8,11 @@ RESULTS=results/$OS
+ BASE=../$RESULTS/`uname -n`
+ EXT=0
+
+-if [ ! -f "../bin/$OS/$CONFIG" ]
++if [ ! -f "$CONFIG" ]
+ then echo "No config file?"
+ exit 1
+ fi
+-. ../bin/$OS/$CONFIG
++. $CONFIG
+
+ if [ ! -d ../$RESULTS ]
+ then mkdir -p ../$RESULTS
+@@ -23,11 +23,9 @@ do EXT=`expr $EXT + 1`
+ RESULTS=$BASE.$EXT
+ done
+
+-cd ../bin/$OS
+-PATH=.:${PATH}; export PATH
+ export SYNC_MAX
+ export OUTPUT
+-lmbench $CONFIG 2>../${RESULTS}
++lmbench $CONFIG 2>${RESULTS}
+
+ if [ X$MAIL = Xyes ]
+ then echo Mailing results
+Index: lmbench-3.0-a9/scripts/config-run
+===================================================================
+--- lmbench-3.0-a9.orig/scripts/config-run
++++ lmbench-3.0-a9/scripts/config-run
+@@ -132,20 +132,20 @@ export LMBENCH_SCHED
+ ############################################################################
+ echo $L; echo "";
+ echo "Hang on, we are calculating your timing granularity."
+-../bin/$OS/msleep 250
+-ENOUGH=`../bin/$OS/enough`
++msleep 250
++ENOUGH=`enough`
+ export ENOUGH
+ echo "OK, it looks like you can time stuff down to $ENOUGH usec resolution."
+ echo ""
+ echo "Hang on, we are calculating your timing overhead."
+-../bin/$OS/msleep 250
+-TIMING_O=`../bin/$OS/timing_o`
++msleep 250
++TIMING_O=`timing_o`
+ export TIMING_O
+ echo "OK, it looks like your gettimeofday() costs $TIMING_O usecs."
+ echo ""
+ echo "Hang on, we are calculating your loop overhead."
+-../bin/$OS/msleep 250
+-LOOP_O=`../bin/$OS/loop_o`
++msleep 250
++LOOP_O=`loop_o`
+ export LOOP_O
+ echo "OK, it looks like your benchmark loop costs $LOOP_O usecs."
+ echo ""
+@@ -177,7 +177,7 @@ then
+ fi
+ if [ X$MB = X ]
+ then $ECHON "Probing system for available memory: $ECHOC"
+- MB=`../bin/$OS/memsize 4096`
++ MB=`memsize 4096`
+ fi
+ TOTAL_MEM=$MB
+ MB=`echo \( $MB \* 7 \) / 10 | bc 2>/dev/null`
+@@ -205,9 +205,9 @@ fi
+ # Certain machines tend to barf when you try and bcopy 8MB.
+ # Figure out how much we can use.
+ echo "Checking to see if you have $MB MB; please wait for a moment..."
+-MB=`../bin/$OS/memsize $MB`
+-MB=`../bin/$OS/memsize $MB`
+-MB=`../bin/$OS/memsize $MB`
++MB=`memsize $MB`
++MB=`memsize $MB`
++MB=`memsize $MB`
+ if [ `expr $SYNC_MAX \* $MB` -gt `expr $TOTAL_MEM` ]
+ then
+ MB=`expr $TOTAL_MEM / $SYNC_MAX`
+@@ -223,8 +223,8 @@ then echo Warning: you have only ${MB}MB
+ fi
+
+ echo "Hang on, we are calculating your cache line size."
+-../bin/$OS/msleep 250
+-LINE_SIZE=`../bin/$OS/lm_line -M ${MB}M`
++msleep 250
++LINE_SIZE=`lm_line -M ${MB}M`
+ export LINE_SIZE
+ echo "OK, it looks like your cache line is $LINE_SIZE bytes."
+ echo ""
+@@ -479,7 +479,7 @@ EOF
+ then
+ for i in $disks
+ do if [ -r $i ]
+- then ../bin/$OS/flushdisk $i
++ then flushdisk $i
+ if [ $? -eq 1 ]
+ then echo "Must be root to run disk benchmarks."
+ echo "Root is needed to flush the buffer cache"
+@@ -584,7 +584,7 @@ fi
+ echo $L
+ echo ""
+ echo "Calculating mhz, please wait for a moment..."
+-MHZ=`../bin/$OS/mhz`
++MHZ=`mhz`
+ cat<<EOF
+ I think your CPU mhz is
+
+@@ -689,9 +689,9 @@ esac
+
+ INFO=`../scripts/info`
+ if [ $MAIL = yes ]
+-then if [ ! -f ../bin/$OS/$INFO ]
+- then cp ../scripts/info-template ../bin/$OS/$INFO
+- chmod +w ../bin/$OS/$INFO
++then if [ ! -f $INFO ]
++ then cp ../scripts/info-template $INFO
++ chmod +w $INFO
+ REUSE=no
+ else
+ REUSE=view
+@@ -705,7 +705,7 @@ then if [ ! -f ../bin/$OS/$INFO ]
+ ;;
+ [Vv]*) REUSE=view
+ echo $L
+- more ../bin/$OS/$INFO
++ more $INFO
+ echo $L
+ ;;
+ *) REUSE=yes
+@@ -733,7 +733,7 @@ EOF
+ then EDITOR=$TMP
+ fi
+ if [ X$EDITOR != "none" ]
+- then $EDITOR ../bin/$OS/`../scripts/info`
++ then $EDITOR `../scripts/info`
+ fi
+ fi
+ fi
+@@ -750,7 +750,7 @@ EOF
+
+ VERSION=`../scripts/version`
+
+-C=../bin/$OS/`../scripts/config`
++C=`../scripts/config`
+ echo DISKS=\"$DISKS\" > $C
+ echo DISK_DESC=\"$DISK_DESC\" >> $C
+ echo OUTPUT=$OUTPUT >> $C
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
new file mode 100644
index 000000000..3351ce887
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
@@ -0,0 +1,32 @@
+From 0d09e31970616e09beb7f238c2b59bfc541148fb Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Fri, 22 Nov 2013 15:20:08 +0800
+Subject: [PATCH] use base_libdir instead of hardcoded /lib
+
+Upsteam Status: Inappropriate [configuration]
+
+Signed-off-by: Ting Liu <b28495@freescale.com>
+---
+ src/Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index c7a8c79..c7e4e3c 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -143,10 +143,10 @@ install-target:
+ if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
+ if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
+ if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
+- if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
++ if [ ! -d $(BASE)$(base_libdir) ]; then mkdir $(BASE)$(base_libdir); fi
+ cp $(EXES) $(BASE)/bin
+ cp $(INCS) $(BASE)/include
+- cp $O/lmbench.a $(BASE)/lib/libmbench.a
++ cp $O/lmbench.a $(BASE)$(base_libdir)
+ cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
+
+
+--
+1.7.5.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
new file mode 100644
index 000000000..2d8a2468a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/0001-avoid-gcc-optimize-away-the-loops.patch
@@ -0,0 +1,79 @@
+[PATCH] avoid gcc optimize-away the loops
+
+Upstream-Status: pending
+
+Change expression used in do_integer_mul and do_uint64_mul
+benchmarks so GCC doesn't optimize-away the loops, other
+things are same:
+- TEN(r *= s;); r -= t;
++ i = 0;
++ while ( i++ < 10)
++ r *= s;
++ r -= t;
+
+and TEN is macro:
+ #define TEN(a) a a a a a a a a a a
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+---
+ src/lat_ops.c | 30 +++++++++++++++++++++++++-----
+ 1 file changed, 25 insertions(+), 5 deletions(-)
+
+diff --git a/src/lat_ops.c b/src/lat_ops.c
+index d343ff3..457072b 100644
+--- a/src/lat_ops.c
++++ b/src/lat_ops.c
+@@ -126,11 +126,23 @@ do_integer_mul(iter_t iterations, void* cookie)
+ struct _state *pState = (struct _state*)cookie;
+ register int r = pState->N + 37431;
+ register int s = pState->N + 4;
+- register int t = r * s * s * s * s * s * s * s * s * s * s - r;
++ register int t = r;
++ int i = 0;
++
++ while ( i++ < 10)
++ t *= s;
++ t -= r;
+
+ while (iterations-- > 0) {
+- TEN(r *= s;); r -= t;
+- TEN(r *= s;); r -= t;
++ i = 0;
++ while ( i++ < 10)
++ r *= s;
++ r -= t;
++
++ i = 0;
++ while ( i++ < 10)
++ r *= s;
++ r -= t;
+ }
+ use_int(r);
+ }
+@@ -207,13 +219,21 @@ do_int64_mul(iter_t iterations, void* cookie)
+ register int64 r = (int64)pState->N + 37420;
+ register int64 s = (int64)pState->N + 4;
+ register int64 t;
++ int i = 0;
+
+ r += (int64)(pState->N + 6)<<32;
+ t = r * s * s * s * s * s * s * s * s * s * s - r;
+
+ while (iterations-- > 0) {
+- TEN(r *= s;); r -= t;
+- TEN(r *= s;); r -= t;
++ i = 0;
++ while ( i++ < 10)
++ r *= s;
++ r -= t;
++
++ i = 0;
++ while ( i++ < 10)
++ r *= s;
++ r -= t;
+ }
+ use_int((int)r);
+ }
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
new file mode 100644
index 000000000..e904c75e4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
@@ -0,0 +1,23 @@
+#!/bin/sh
+# Wrapper script for lmbench written for the
+# Debian GNU/Linux distribution by
+# Javier Fernandez-Sanguino.
+# Distributed under the GPL
+SHAREDIR=/usr/share/lmbench/
+BINDIR=/usr/lib/lmbench/
+SCRIPTSDIR=$SHAREDIR/scripts
+RESULTSDIR=$SHAREDIR/results
+CONFIG=/var/lib/lmbench/config/`$SCRIPTSDIR/config`
+runuid=`id -u`
+
+[ $runuid -gt 0 ] && {
+ echo "You must run this as the root user"
+ exit 0
+}
+cd $SCRIPTSDIR
+[ ! -f $CONFIG ] && ./config-run
+./results
+
+echo "Benchmark run finished...."
+echo "Remember you can find the results of the benchmark "
+echo "under $RESULTSDIR"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
new file mode 100644
index 000000000..9a405213a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench/rename-line-binary.patch
@@ -0,0 +1,19 @@
+Both lmbench and util-linux-ng packages provide own /usr/bin/line binaries.
+Even though the binaries name is the same, their functionality is different.
+This patch renames lmbench's line binary as lm_line to avoid conflicts with
+util-linux-ng. script/config-run is also modified (patch) to call lm_line
+instead of line.
+
+Upstream-Status: Inappropriate [build system specific change]
+
+--- patches/scripts/config-run 2006-11-26 15:11:04.000000000 -0500
++++ patches/scripts/config-run 2011-04-01 09:35:50.000000000 -0400
+@@ -224,7 +224,7 @@ fi
+
+ echo "Hang on, we are calculating your cache line size."
+ ../bin/$OS/msleep 250
+-LINE_SIZE=`../bin/$OS/line -M ${MB}M`
++LINE_SIZE=`../bin/$OS/lm_line -M ${MB}M`
+ export LINE_SIZE
+ echo "OK, it looks like your cache line is $LINE_SIZE bytes."
+ echo ""
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
new file mode 100644
index 000000000..a62389d09
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -0,0 +1,79 @@
+SUMMARY = "Tools for performance analysis"
+HOMEPAGE = "http://lmbench.sourceforge.net/"
+SECTION = "console/utils"
+LICENSE = "GPLv2 & GPL-2.0-with-lmbench-restriction"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://COPYING-2;md5=8e9aee2ccc75d61d107e43794a25cdf9"
+
+inherit autotools-brokensep
+
+PR = "r2"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \
+ file://lmbench-run \
+ file://rename-line-binary.patch \
+ file://update-results-script.patch \
+ file://obey-ranlib.patch \
+ file://update-config-script.patch \
+ file://use-base_libdir-instead-of-hardcoded-lib.patch \
+ file://lmbench_result_html_report.patch \
+ file://fix-lmbench-memory-check-failure.patch \
+ file://0001-avoid-gcc-optimize-away-the-loops.patch \
+"
+SRC_URI[md5sum] = "b3351a3294db66a72e2864a199d37cbf"
+SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551"
+
+EXTRA_OEMAKE = 'CC="${CC}" AR="${AR}" RANLIB="${RANLIB}" CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" LD="${LD}" OS="${TARGET_SYS}" \
+ TARGET="${TARGET_OS}" BASE="${prefix}" MANDIR="${mandir}"'
+
+do_configure() {
+ :
+}
+
+do_compile () {
+ . ${CONFIG_SITE}
+ if [ X"$ac_cv_uint" = X"yes" ]; then
+ CFLAGS="${CFLAGS} -DHAVE_uint"
+ fi
+ install -d ${S}/bin/${TARGET_SYS}
+ oe_runmake -C src
+}
+
+do_install () {
+ install -d ${D}${sysconfdir}/default/volatiles \
+ ${D}${bindir} ${D}${mandir} ${D}${libdir}/lmbench \
+ ${D}${datadir}/lmbench/scripts
+
+ echo "d root root 0755 ${localstatedir}/run/${BPN} none" \
+ > ${D}${sysconfdir}/default/volatiles/99_lmbench
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/${BPN} - - - -" \
+ > ${D}${sysconfdir}/tmpfiles.d/lmbench.conf
+ fi
+
+ oe_runmake BASE="${D}${prefix}" MANDIR="${D}${mandir}" \
+ -C src install
+ mv ${D}${bindir}/line ${D}${bindir}/lm_line
+ install -m 0755 ${WORKDIR}/lmbench-run ${D}${bindir}/
+ sed -i -e 's,^SHAREDIR=.*$,SHAREDIR=${datadir}/${BPN},;' \
+ -e 's,^BINDIR=.*$,BINDIR=${libdir}/${BPN},;' \
+ -e 's,^CONFIG=.*$,CONFIG=`$SCRIPTSDIR/config`,;' \
+ ${D}${bindir}/lmbench-run
+ install -m 0755 ${S}/scripts/lmbench ${D}${bindir}
+ install -m 0755 ${S}/scripts/* ${D}${datadir}/lmbench/scripts
+}
+
+pkg_postinst_${PN} () {
+ if [ -z "$D" ]; then
+ if command -v systemd-tmpfiles >/dev/null; then
+ systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/lmbench.conf
+ elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+ fi
+}
+
+RDEPENDS_${PN} = "perl"
+FILES_${PN} += "${datadir}/lmbench ${libdir}/lmbench"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
new file mode 100644
index 000000000..971e52ac7
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/files/Makefile.patch
@@ -0,0 +1,28 @@
+From 9a950b14b9f7767d83e5faac2e1e8203c500e2c2 Mon Sep 17 00:00:00 2001
+From: Rod Whitby <rod@whitby.id.au>
+Date: Tue, 25 Oct 2011 18:43:50 -0500
+Subject: [PATCH] memtester: Added patch to Makefile to change no-longer-supported 'head -1' syntax to 'head -n 1'.
+
+Signed-off-by: Joel A Fernandes <joelagnel@ti.com>
+---
+ Makefile | 4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index a271bf5..6bccff3 100644
+--- a/Makefile
++++ b/Makefile
+@@ -32,8 +32,8 @@ install: all
+ auto-ccld.sh: \
+ conf-cc conf-ld warn-auto.sh
+ ( cat warn-auto.sh; \
+- echo CC=\'`head -1 conf-cc`\'; \
+- echo LD=\'`head -1 conf-ld`\' \
++ echo CC=\'`head -n 1 conf-cc`\'; \
++ echo LD=\'`head -n 1 conf-ld`\' \
+ ) > auto-ccld.sh
+
+ compile: \
+--
+1.7.0.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb
new file mode 100644
index 000000000..0964c0487
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Utility to test for faulty memory subsystem"
+HOMEPAGE = "http://pyropus.ca/software/memtester/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz"
+SRC_URI += "file://Makefile.patch"
+
+SRC_URI[md5sum] = "598f41b7308e1f736164bca3ab84ddbe"
+SRC_URI[sha256sum] = "f9dfe2fd737c38fad6535bbab327da9a21f7ce4ea6f18c7b3339adef6bf5fd88"
+
+do_compile () {
+ echo '${CC} ${CFLAGS} -DPOSIX -c' > conf-cc
+ echo '${CC} ${LDFLAGS}' > conf-ld
+ oe_runmake
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man8
+ install -m 0755 memtester ${D}${bindir}/
+ install -m 0755 memtester.8 ${D}${mandir}/man8/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch
new file mode 100644
index 000000000..abdb4344b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/Makefile-add-more-dependencies-to-pointer.h.patch
@@ -0,0 +1,23 @@
+Makefile: add more dependencies to pointer.h
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 915866d..edd9ea2 100644
+--- a/Makefile
++++ b/Makefile
+@@ -122,7 +122,7 @@ emfloat.o: emfloat.h emfloat.c nmglobal.h pointer.h Makefile
+ pointer.h: Makefile
+ touch pointer.h ;
+
+-misc.o: misc.h misc.c Makefile
++misc.o: misc.h misc.c nmglobal.h pointer.h Makefile
+ $(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+ -c misc.c
+
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch
new file mode 100644
index 000000000..1b8a4dc08
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte/nbench_32bits.patch
@@ -0,0 +1,46 @@
+From 81f4043a6787060029ef20eed21cdcf3e50337df Mon Sep 17 00:00:00 2001
+From: Chase Maupin <Chase.Maupin@ti.com>
+Date: Tue, 28 Feb 2012 14:58:35 -0600
+Subject: [PATCH] nbench: modify Makefile for 32bit
+
+* Patch taken from OE classic git repository as of commit id
+ ad42bf9065928b2902d7d9534709d3ccea7ec956 and was added by:
+ * Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
+* Notes from original patch were:
+
+BYTE Magazine's native benchmarks (also called BYTEmark) designed to
+expose the capabilities of a system's CPU, FPU and memory system.
+
+http://www.tux.org/~mayer/linux/
+
+Recipe from old Atmel overlay.
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Chase Maupin <chase.maupin@ti.com>
+---
+ Makefile | 8 ++------
+ 1 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 5045c77..915866d 100644
+--- a/Makefile
++++ b/Makefile
+@@ -119,12 +119,8 @@ emfloat.o: emfloat.h emfloat.c nmglobal.h pointer.h Makefile
+ $(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+ -c emfloat.c
+
+-pointer.h: pointer Makefile
+- $(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+- -o pointer pointer.c
+- rm -f pointer.h
+- if [ "4" = `./pointer` ] ; then touch pointer.h ;\
+- else echo "#define LONG64" >pointer.h ; fi
++pointer.h: Makefile
++ touch pointer.h ;
+
+ misc.o: misc.h misc.c Makefile
+ $(CC) $(MACHINE) $(DEFINES) $(CFLAGS)\
+--
+1.7.0.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
new file mode 100644
index 000000000..56272d985
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "BYTE Magazine's native benchmarks (also called BYTEmark) \
+designed to expose the capabilities of a system's CPU, FPU, \
+and memory system."
+HOMEPAGE = "http://www.tux.org/~mayer/linux/"
+LICENSE = "nbench-byte"
+LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f"
+SECTION = "console/utils"
+
+SRC_URI = "http://www.tux.org/~mayer/linux/${BP}.tar.gz \
+ file://nbench_32bits.patch \
+ file://Makefile-add-more-dependencies-to-pointer.h.patch"
+
+SRC_URI[md5sum] = "285dfab361080759d477ea1fe7d3093a"
+SRC_URI[sha256sum] = "723dd073f80e9969639eb577d2af4b540fc29716b6eafdac488d8f5aed9101ac"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+TARGET_CC_ARCH += "${CFLAGS} ${LDFLAGS}"
+do_compile() {
+ oe_runmake
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0644 NNET.DAT ${D}${bindir}/
+ install -m 0755 nbench ${D}${bindir}/
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb
new file mode 100644
index 000000000..5acfbf1bb
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_6.0.1.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Phoronix Test Suite"
+DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
+and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/tests"
+
+SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
+SRC_URI[md5sum] = "c3b26fcc57a3a253e558f759fdc1089f"
+SRC_URI[sha256sum] = "27add54f4ecb464549de580cece84b4a4945b99df3ef7ff7034eb7f23ffb3b39"
+S = "${WORKDIR}/phoronix-test-suite"
+
+inherit systemd allarch
+
+do_install() {
+ DESTDIR=${D} ./install-sh ${exec_prefix}
+
+ if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
+ install -d ${D}/${systemd_unitdir}/system/
+ mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
+ rm -rf ${D}/usr/lib/
+ fi
+}
+
+SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
+RDEPENDS_${PN} += "bash python php-cli"
+
+FILES_${PN} += " \
+ ${datadir}/phoronix-test-suite \
+ ${datadir}/appdata/phoronix-test-suite.appdata.xml \
+ ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
+ ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
+ ${datadir}/mime/packages/openbenchmarking-mime.xml \
+ ${systemd_unitdir}/* \
+"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
new file mode 100644
index 000000000..9898a70c2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A simple memory benchmark program, which tries to measure the \
+peak bandwidth of sequential memory accesses and the latency of random memory \
+accesses. Bandwidth is measured by running different assembly code for the \
+aligned memory blocks and attempting different prefetch strategies"
+HOMEPAGE = "https://github.com/ssvb/tinymembench/wiki"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b345"
+
+PV = "0.3.9+git${SRCPV}"
+
+SRCREV = "95e68477588d41187b2d2e52ecf6be0e7eb06b8d"
+SRC_URI = "git://github.com/ssvb/tinymembench.git"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m755 tinymembench ${D}${bindir}/
+}
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:66: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16'
+#| {standard input}:69: Error: instruction not supported in Thumb16 mode -- `subs r1,r1,#16'
+#| {standard input}:82: Error: selected processor does not support Thumb mode `mla r3,r4,r3,r5'
+#| {standard input}:82: Error: unshifted register required -- `and r8,r7,r3,lsr#16'
+ARM_INSTRUCTION_SET = "arm"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch
new file mode 100644
index 000000000..5aebb956c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch
@@ -0,0 +1,30 @@
+From 5429ab90eb33eb243fa7b9cd247e0490d72b9da5 Mon Sep 17 00:00:00 2001
+From: Otavio Salvador <otavio@ossystems.com.br>
+Date: Wed, 9 Sep 2015 15:04:45 +0000
+Subject: [PATCH] Drop 'inline' of crc32 function to fix build using GCC 5.2
+Organization: O.S. Systems Software LTDA.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ crc32.h | 1 -
+ crc32.o | Bin 748 -> 2056 bytes
+ 2 files changed, 1 deletion(-)
+
+diff --git a/crc32.h b/crc32.h
+index 62b3433..8fc62b6 100644
+--- a/crc32.h
++++ b/crc32.h
+@@ -18,7 +18,6 @@
+ #ifndef CRC32_H
+ #define CRC32_H
+
+-inline
+ unsigned long crc32( const void* const buffer,
+ unsigned long length,
+ unsigned long crc);
+
+--
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch
new file mode 100644
index 000000000..321d29983
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/avoid-glibc-clashes.patch
@@ -0,0 +1,57 @@
+From: Otavio Salvador <otavio@ossystems.com.br>
+Subject: [PATCH] Avoid aligned allocation function name clashes
+
+glibc added new methods for aligned allocation and it clashes with the
+local version used by 'tiobench'. To fix it, we prefix the methods
+with '_'.
+
+Upstream-Status: Pending
+
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+ tiotest.c | 8 ++++----
+ 1 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tiotest.c b/tiotest.c
+index 38f54e7..6b3d0c3 100644
+--- a/tiotest.c
++++ b/tiotest.c
+@@ -31,7 +31,7 @@ static const char* versionStr = "tiotest v0.3.3 (C) 1999-2000 Mika Kuoppala <mik
+ */
+ ArgumentOptions args;
+
+-static void * aligned_alloc(ssize_t size)
++static void * _aligned_alloc(ssize_t size)
+ {
+ caddr_t a;
+ a = mmap((caddr_t )0, size,
+@@ -41,7 +41,7 @@ static void * aligned_alloc(ssize_t size)
+ return a;
+ }
+
+-static int aligned_free(caddr_t a, ssize_t size)
++static int _aligned_free(caddr_t a, ssize_t size)
+ {
+ return munmap(a, size);
+ }
+@@ -281,7 +281,7 @@ void initialize_test( ThreadTest *d )
+ pthread_attr_setscope(&(d->threads[i].thread_attr),
+ PTHREAD_SCOPE_SYSTEM);
+
+- d->threads[i].buffer = aligned_alloc( d->threads[i].blockSize );
++ d->threads[i].buffer = _aligned_alloc( d->threads[i].blockSize );
+ if( d->threads[i].buffer == NULL )
+ {
+ perror("Error allocating memory");
+@@ -383,7 +383,7 @@ void cleanup_test( ThreadTest *d )
+ {
+ if (!args.rawDrives)
+ unlink(d->threads[i].fileName);
+- aligned_free( d->threads[i].buffer, d->threads[i].blockSize );
++ _aligned_free( d->threads[i].buffer, d->threads[i].blockSize );
+ d->threads[i].buffer = 0;
+
+ pthread_attr_destroy( &(d->threads[i].thread_attr) );
+--
+1.7.7
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch
new file mode 100644
index 000000000..f820c7e33
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench-0.3.3/tiobench-makefile.patch
@@ -0,0 +1,49 @@
+Adapt tiobench to OE
+Author: Ludovic Desroches <ludovic.desroches@atmel.com>
+
+Upstream-Status: Inappropriate [not author]
+
+Index: Makefile
+===================================================================
+--- a/Makefile 2011-05-26 07:48:46.341400974 +0200
++++ b/Makefile 2011-05-30 06:32:38.091401358 +0200
+@@ -1,8 +1,9 @@
+ # Makefile for tiotest
+
+-CC=gcc
++CC?=gcc
+ #CFLAGS=-O3 -fomit-frame-pointer -Wall
+ CFLAGS=-O2 -Wall
++LDFLAGS?=
+
+ #DEFINES=-DUSE_MMAP
+ #-DUSE_MADVISE
+@@ -14,16 +15,16 @@
+
+ #DEFINES=
+
+-LINK=gcc
++LINK?=$(CC)
+ EXE=tiotest
+ PROJECT=tiobench
+ # do it once instead of each time referenced
+ VERSION=$(shell egrep "tiotest v[0-9]+.[0-9]+" tiotest.c | cut -d " " -f 7 | sed "s/v//g")
+ DISTNAME=$(PROJECT)-$(VERSION)
+ INSTALL=install
+-PREFIX=/usr/local
++PREFIX?=/usr/local
+ BINDIR=$(PREFIX)/bin
+-DOCDIR=/usr/local/doc/$(DISTNAME)
++DOCDIR=$(PREFIX)/share/doc/$(DISTNAME)
+
+ all: $(EXE)
+
+@@ -34,7 +35,7 @@
+ $(CC) -c $(CFLAGS) $(DEFINES) tiotest.c -o tiotest.o
+
+ $(EXE): tiotest.o crc32.o
+- $(LINK) -o $(EXE) tiotest.o crc32.o -lpthread
++ $(LINK) -o $(EXE) tiotest.o crc32.o -lpthread $(LDFLAGS)
+ @echo
+ @echo "./tiobench.pl --help for usage options"
+ @echo
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
new file mode 100644
index 000000000..35af35fd3
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Threaded I/O tester"
+HOMEPAGE = "http://sourceforge.net/projects/tiobench/"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
+
+PR = "r1"
+
+SRC_URI = "\
+ http://sourceforge.net/projects/tiobench/files/tiobench/${PV}/${BP}.tar.gz \
+ file://tiobench-makefile.patch \
+ file://avoid-glibc-clashes.patch \
+ file://0001-Drop-inline-of-crc32-function-to-fix-build-using-GCC.patch \
+"
+SRC_URI[md5sum] = "bf485bf820e693c79e6bd2a38702a128"
+SRC_URI[sha256sum] = "8ad011059a35ac70cdb5e3d3999ceee44a8e8e9078926844b0685b7ea9db2bcc"
+
+EXTRA_OEMAKE = "PREFIX=${D}/usr"
+
+do_install() {
+ oe_runmake install
+}
+
+RDEPENDS_${PN} = "\
+ perl \
+ perl-module-exporter-heavy \
+ perl-module-getopt-long \
+ perl-module-overload \
+ perl-module-strict \
+"
OpenPOWER on IntegriCloud