Date: Mon, 22 May 2023 16:58:47 -0700 From: Mark Millard <marklmi@yahoo.com> To: John Baldwin <jhb@freebsd.org>, dev-commits-src-main@freebsd.org Cc: "kevans@freebsd.org" <kevans@FreeBSD.org> Subject: Re: git: ccb59683b983 - main - arm64: add tests for swp/swpb emulation Message-ID: <894110D7-EFB1-4F76-ABD5-CD13DBAC4119@yahoo.com> References: <894110D7-EFB1-4F76-ABD5-CD13DBAC4119.ref@yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
John Baldwin <jhb_at_FreeBSD.org> wrote on 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=3Dccb59683b98360afaf5b5bb641a68fea= 22c68d0b > >> > >> 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=3D tests > >> +FILESGROUPS+=3D asmprogs > >> + > >> +ACFLAGS=3D -target armv7-unknown-freebsd${OS_REVISION} -nostdlib = -Wl,-e -Wl,main -static > >=20 > > This won=E2=80=99t 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. >=20 > 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. There is a possible implication for the build environment compared to what it is now . . . For: WITHOUT_LLVM_TARGET_AARCH64 Do not build LLVM target support for AArch64. The LLVM_TARGET_ALL option should be used rather than this in = most cases. and: WITHOUT_LLVM_TARGET_ARM Do not build LLVM target support for ARM. The = LLVM_TARGET_ALL option should be used rather than this in most cases. and the ARM part of: WITHOUT_LLVM_TARGET_ALL Only build the required LLVM target support. This option = is preferred to specific target support options. When set, = these options are also in effect: WITHOUT_LLVM_TARGET_AARCH64 (unless = WITH_LLVM_TARGET_AARCH64 is set explicitly) WITHOUT_LLVM_TARGET_ARM (unless WITH_LLVM_TARGET_ARM is set explicitly) WITHOUT_LLVM_TARGET_POWERPC (unless = WITH_LLVM_TARGET_POWERPC is set explicitly) WITHOUT_LLVM_TARGET_RISCV (unless WITH_LLVM_TARGET_RISCV is = set explicitly) These might need some bundling such that AARCH64 being enabled (no WITHOUT) ends up forcing ARM to also be enabled (even if there is a WITHOUT). Or may be just report an incoherent combination and stop. =3D=3D=3D Mark Millard marklmi at yahoo.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?894110D7-EFB1-4F76-ABD5-CD13DBAC4119>