On 5/15/23 2:59 PM, Jessica Clarke wrote:
On 15 May 2023, at 16:42, Kyle Evans <kev...@freebsd.org> wrote:

The branch main has been updated by kevans:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=ccb59683b98360afaf5b5bb641a68fea22c68d0b

commit ccb59683b98360afaf5b5bb641a68fea22c68d0b
Author:     Kyle Evans <kev...@freebsd.org>
AuthorDate: 2023-05-15 15:42:16 +0000
Commit:     Kyle Evans <kev...@freebsd.org>
CommitDate: 2023-05-15 15:42:16 +0000

    arm64: add tests for swp/swpb emulation

    One test is suitable to be hooked up to the build, so I've done this
    here.  The other test lives in tools/regression because failure is a
    bit more subjective -- generally, one runs it for some unbounded amount
    of time and observe if it eventually exits because two threads acquired
    the same mutex.

    Reviewed by:    imp, mmel
    Sponsored by:   Stormshield
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D39668
---
etc/mtree/BSD.tests.dist                          |   2 +
tests/sys/Makefile                                |   1 +
tests/sys/compat32/Makefile                       |   6 +
tests/sys/compat32/Makefile.inc                   |   4 +
tests/sys/compat32/aarch64/Makefile               |  24 ++
tests/sys/compat32/aarch64/common.sh              |   9 +
tests/sys/compat32/aarch64/swp_cond_test.sh       |  14 +
tests/sys/compat32/aarch64/swp_cond_test_impl.S   | 413 ++++++++++++++++++++++
tests/sys/compat32/aarch64/swp_test.sh            |  14 +
tests/sys/compat32/aarch64/swp_test_impl.S        | 216 +++++++++++
tools/regression/compat32/aarch64/Makefile        |   4 +
tools/regression/compat32/aarch64/swp_test_impl.S | 410 +++++++++++++++++++++
12 files changed, 1117 insertions(+)

...
diff --git a/tests/sys/compat32/aarch64/Makefile 
b/tests/sys/compat32/aarch64/Makefile
new file mode 100644
index 000000000000..716182b15d9c
--- /dev/null
+++ b/tests/sys/compat32/aarch64/Makefile
@@ -0,0 +1,24 @@
+PACKAGE= tests
+FILESGROUPS+= asmprogs
+
+ACFLAGS= -target armv7-unknown-freebsd${OS_REVISION} -nostdlib -Wl,-e -Wl,main 
-static

This won’t work with GCC, nor will it work with an LLVM built with only
AArch64 enabled as a target (e.g. -DWITHOUT_LLVM_TARGET_ALL
-DWITHOUT_LLVM_TARGET_ARM; latter is needed since we do default to
enabling ARM if AArch64 is even for a cut-down toolchain so that -m32
works). This is why the freebsd32 sigcode in arm64 kernels is written
as hex (with disassembly comments) rather than assembled from proper
source.

I haven't managed to get either 32-bit or 64-bit arm fully building with
GCC FWIW.  I think it can be fine to require that a system compiler for
arm64 support -m32.  We de-facto require such for amd64 already.

--
John Baldwin


Reply via email to