Message ID | 20250110135848.35465-2-alexandru.elisei@arm.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | arm64: Change the default --processor to max | expand |
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@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, 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. Thanks, drew
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@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
On Tue, Jan 14, 2025 at 05:03:20PM +0000, Alexandru Elisei wrote: ... > 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/') Sure, or avoid the second sed and just do host=$(...) arch=$host [ "$arch" = "aarch64" ] && arch="arm64" Thanks, drew
Hi Drew, On Tue, Jan 14, 2025 at 07:39:49PM +0100, Andrew Jones wrote: > On Tue, Jan 14, 2025 at 05:03:20PM +0000, Alexandru Elisei wrote: > ... > > 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/') > > Sure, or avoid the second sed and just do > > host=$(...) > arch=$host > [ "$arch" = "aarch64" ] && arch="arm64" Yep, thanks. Alex
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)
$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@arm.com> --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)