Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation
- In reply to: Jessica Clarke : "Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 22 May 2023 23:18:34 UTC
On 5/15/23 2:59 PM, Jessica Clarke wrote: > On 15 May 2023, at 16:42, Kyle Evans <kevans@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 <kevans@FreeBSD.org> >> AuthorDate: 2023-05-15 15:42:16 +0000 >> Commit: Kyle Evans <kevans@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