瀏覽代碼

cpuburn-arm: add aarch64 machine and build configuration

Add aarch64 as a valid machine to cpuburn recipe and split compilation
task.

The only source file which supports the aarch64 build is cpuburn-a53.S,
and in case if TUNE is set to aarch64 - this should be the only file to
be assembled to the application.

In case of 32-bit build - all sources are compiled as they are, since
cpuburn-a53.S supports both 32- and 64-bit tunes.

Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Andrey Zhizhikin 4 年之前
父節點
當前提交
fad26cc14e
共有 1 個文件被更改,包括 23 次插入9 次删除
  1. 23 9
      meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb

+ 23 - 9
meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb

@@ -18,21 +18,35 @@ SRC_URI = "git://github.com/ssvb/cpuburn-arm.git \
 S = "${WORKDIR}/git"
 
 do_compile() {
-    ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
-    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a7.S -o burn-a7
-    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-a8
-    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a9.S -o burn-a9
-    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
-    ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-krait.S -o burn-krait
+
+    # If the arch is set to ARM 64-bit -  we only produce and ship burn-a53 version.
+    # In case of ARM 32-bit - we would build all variants, since burn-a53 supports both
+    # 32 and 64-bit builds
+    if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
+    else
+        ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a7.S -o burn-a7
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-a8
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a9.S -o burn-a9
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
+        ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-krait.S -o burn-krait
+    fi
 }
 
 do_install() {
     install -d ${D}${bindir}
-    for f in burn burn-a7 burn-a8 burn-a9 burn-a53 burn-krait; do
-        install -m 0755 $f ${D}${bindir}/$f
-    done
+
+    if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
+        install -m 0755 burn-a53 ${D}${bindir}
+    else
+        for f in burn burn-a7 burn-a8 burn-a9 burn-a53 burn-krait; do
+            install -m 0755 $f ${D}${bindir}/$f
+        done
+    fi
 }
 
 COMPATIBLE_MACHINE ?= "(^$)"
 COMPATIBLE_MACHINE_armv7a = "(.*)"
 COMPATIBLE_MACHINE_armv7ve = "(.*)"
+COMPATIBLE_MACHINE_aarch64 = "(.*)"