[kvm-unit-tests PATCH v1 1/5] configure: Document that the architecture name 'aarch64' is also supported
Alexandru Elisei
alexandru.elisei at arm.com
Wed Jan 15 04:03:20 AEDT 2025
Hi Drew,
On Mon, Jan 13, 2025 at 04:01:58PM +0100, Andrew Jones wrote:
> On Fri, Jan 10, 2025 at 01:58:44PM +0000, Alexandru Elisei wrote:
> > $arch, on arm64, defaults to 'aarch64', and later in the script is replaced
> > by 'arm64'. Intentional or not, document that the name 'aarch64' is also
> > supported when configuring for the arm64 architecture. This has been the
> > case since the initial commit that added support for the arm64
> > architecture, commit 39ac3f8494be ("arm64: initial drop").
> >
> > The help text for --arch changes from*:
> >
> > --arch=ARCH architecture to compile for (aarch64). ARCH can be one of:
> > arm, arm64, i386, ppc64, riscv32, riscv64, s390x, x86_64
> >
> > to:
> >
> > --arch=ARCH architecture to compile for (aarch64). ARCH can be one of:
> > arm, arm64/aarch64, i386, ppc64, riscv32, riscv64, s390x, x86_64
> >
> > *Worth pointing out that the default architecture is 'aarch64', even though
> > the rest of the help text doesn't have it as one of the supported
> > architectures.
> >
> > Signed-off-by: Alexandru Elisei <alexandru.elisei at arm.com>
> > ---
> > configure | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index 86cf1da36467..5b0a2d7f39c0 100755
> > --- a/configure
> > +++ b/configure
> > @@ -47,7 +47,7 @@ usage() {
> >
> > Options include:
> > --arch=ARCH architecture to compile for ($arch). ARCH can be one of:
> > - arm, arm64, i386, ppc64, riscv32, riscv64, s390x, x86_64
> > + arm, arm64/aarch64, i386, ppc64, riscv32, riscv64, s390x, x86_64
> > --processor=PROCESSOR processor to compile for ($arch)
> > --target=TARGET target platform that the tests will be running on (qemu or
> > kvmtool, default is qemu) (arm/arm64 only)
> > --
> > 2.47.1
> >
>
> I'd prefer to support --arch=aarch64, but then always refer to it as only
> arm64 everywhere else. We need to support arch=aarch64 since that's what
> 'uname -m' returns, but I don't think we need to change the help text for
> it. If we don't want to trust our users to figure out arm64==aarch64,
I sincerely dislike the fact that in the help text the default architecture on
arm64 is not among the list of supported architectures.
> then we can do something like
>
> @@ -216,12 +197,12 @@ while [[ $optno -le $argc ]]; do
> werror=
> ;;
> --help)
> - usage
> + do_help=1
> ;;
> *)
> echo "Unknown option '$opt'"
> echo
> - usage
> + do_help=1
> ;;
> esac
> done
>
> And then only do
>
> if [ $do_help ]; then
> usage
> fi
>
> after $arch and other variables have had a chance to be converted.
That still doesn't work if displaying the help text on an arm64 board:
$arch=aarch64 if compiling natively, because that's what uname -m prints, and
$arch gets converted to 'arm64' later in the script. We could move the
conversion before calling usage, but at that point I wonder if it wouldn't be
better to never set $arch to 'aarch64' in the first place.
If you don't want to modify the help text to say that aarch64 is supported, even
though it's displayed as the default architecture on arm64, we could modify
$arch to never be set to 'aarch64', i.e:
diff --git a/configure b/configure
index 86cf1da36467..1362b68dd68b 100755
--- a/configure
+++ b/configure
@@ -15,8 +15,8 @@ objdump=objdump
readelf=readelf
ar=ar
addr2line=addr2line
-arch=$(uname -m | sed -e 's/i.86/i386/;s/arm64/aarch64/;s/arm.*/arm/;s/ppc64.*/ppc64/')
-host=$arch
+host=$(uname -m | sed -e 's/i.86/i386/;s/arm64/aarch64/;s/arm.*/arm/;s/ppc64.*/ppc64/')
+arch=$(echo $host | sed -e 's/aarch64/arm64/')
cross_prefix=
endian=""
pretty_print_stacks=yes
and keep the conversion from aarch64 to arm64 where it is, and still keep it
undocumented, just in case someone is using that.
($host still needs to be aarch64, because that's the name of the qemu
executable).
Thanks,
Alex
More information about the Linuxppc-dev
mailing list