All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] meta-arm/selftest: add test that PAC/BTI instructions are used
@ 2023-11-28 15:44 ross.burton
  2023-11-30 13:46 ` Jon Mason
  0 siblings, 1 reply; 2+ messages in thread
From: ross.burton @ 2023-11-28 15:44 UTC (permalink / raw)
  To: meta-arm; +Cc: nd

From: Ross Burton <ross.burton@arm.com>

We enable PAC/BTI out of the box, but all of the pieces (such as gcc and
glibc) need to support it for the final binary to be protected.

Add a minimal test recipe to verify that the "Hello, World" binary is
using PAC/BTI, and add it to oe-selftest.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 meta-arm/lib/oeqa/selftest/cases/pacbti.py  | 11 +++++++++++
 meta-arm/recipes-test/pacbti/files/pacbti.c |  9 +++++++++
 meta-arm/recipes-test/pacbti/test-pacbti.bb | 21 +++++++++++++++++++++
 3 files changed, 41 insertions(+)
 create mode 100644 meta-arm/lib/oeqa/selftest/cases/pacbti.py
 create mode 100644 meta-arm/recipes-test/pacbti/files/pacbti.c
 create mode 100644 meta-arm/recipes-test/pacbti/test-pacbti.bb

diff --git a/meta-arm/lib/oeqa/selftest/cases/pacbti.py b/meta-arm/lib/oeqa/selftest/cases/pacbti.py
new file mode 100644
index 00000000..40fe5e13
--- /dev/null
+++ b/meta-arm/lib/oeqa/selftest/cases/pacbti.py
@@ -0,0 +1,11 @@
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.core.decorator import OETestTag
+from oeqa.core.decorator.data import skipIfNotArch
+from oeqa.utils.commands import bitbake
+
+@OETestTag("meta-arm")
+class PacBtiTest(OESelftestTestCase):
+
+    @skipIfNotArch(["aarch64"])
+    def test_pac_bti(self):
+        bitbake("test-pacbti")
diff --git a/meta-arm/recipes-test/pacbti/files/pacbti.c b/meta-arm/recipes-test/pacbti/files/pacbti.c
new file mode 100644
index 00000000..618354ea
--- /dev/null
+++ b/meta-arm/recipes-test/pacbti/files/pacbti.c
@@ -0,0 +1,9 @@
+// Copyright (C) 2023 Arm Ltd
+// SPDX-License-Identifier: MIT
+
+#include <stdio.h>
+
+int main() {
+    puts("Hello, world");
+    return 0;
+}
diff --git a/meta-arm/recipes-test/pacbti/test-pacbti.bb b/meta-arm/recipes-test/pacbti/test-pacbti.bb
new file mode 100644
index 00000000..331c5854
--- /dev/null
+++ b/meta-arm/recipes-test/pacbti/test-pacbti.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Test to verify that PAC/BTI is enabled"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://pacbti.c;beginline=2;endline=2;md5=6ec41034e04432ee375d0e14fba596f4"
+
+SRC_URI = "file://pacbti.c"
+
+S = "${WORKDIR}"
+
+do_compile() {
+    # Compile with -zforce-bti with fatal warnings, so the link fails if PAC/BTI
+    # is requested but gcc/glibc are built without it.
+    ${CC} ${CFLAGS} ${LDFLAGS} -z force-bti -Werror -Wl,--fatal-warnings ${S}/pacbti.c
+
+    # If we have a binary, check that the AArch64 feature list in the binary
+    # actually enables PAC/BTI.
+    ${READELF} --notes a.out | grep "AArch64 feature" >notes
+    grep BTI notes
+    grep PAC notes
+}
+
+COMPATIBLE_HOST = "aarch64.*-linux"
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] meta-arm/selftest: add test that PAC/BTI instructions are used
  2023-11-28 15:44 [PATCH] meta-arm/selftest: add test that PAC/BTI instructions are used ross.burton
@ 2023-11-30 13:46 ` Jon Mason
  0 siblings, 0 replies; 2+ messages in thread
From: Jon Mason @ 2023-11-30 13:46 UTC (permalink / raw)
  To: meta-arm, ross.burton; +Cc: nd


On Tue, 28 Nov 2023 15:44:47 +0000, ross.burton@arm.com wrote:
> We enable PAC/BTI out of the box, but all of the pieces (such as gcc and
> glibc) need to support it for the final binary to be protected.
> 
> Add a minimal test recipe to verify that the "Hello, World" binary is
> using PAC/BTI, and add it to oe-selftest.
> 
> 
> [...]

Applied, thanks!

[1/1] meta-arm/selftest: add test that PAC/BTI instructions are used
      commit: 0b61cc659a992e59c157fbf0be6d50919c464613

Best regards,
-- 
Jon Mason <jon.mason@arm.com>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-11-30 13:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-28 15:44 [PATCH] meta-arm/selftest: add test that PAC/BTI instructions are used ross.burton
2023-11-30 13:46 ` Jon Mason

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.