diff mbox series

configure: map x32 to cpu_family x86_64 for meson

Message ID 878s3jrzm0.fsf@gmail.com
State New
Headers show
Series configure: map x32 to cpu_family x86_64 for meson | expand

Commit Message

David Michael June 9, 2021, 12:28 p.m. UTC
The meson.build file defines supported_cpus which does not contain
x32, and x32 is not one of meson's stable built-in values:
https://mesonbuild.com/Reference-tables.html#cpu-families

Signed-off-by: David Michael <fedora.dm0@gmail.com>
---

Hi,

QEMU fails to build for x32 due to that cpu_family not being defined in
supported_cpus.  Can something like this be applied?

Alternatively, maybe it could be added to supported_cpus and accepted
everywhere that matches x86 in meson.build, but upstream meson does not
define a CPU type for x32.

Thanks.

David

 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Daniel P. Berrangé June 9, 2021, 12:45 p.m. UTC | #1
On Wed, Jun 09, 2021 at 08:28:39AM -0400, David Michael wrote:
> The meson.build file defines supported_cpus which does not contain
> x32, and x32 is not one of meson's stable built-in values:
> https://mesonbuild.com/Reference-tables.html#cpu-families
> 
> Signed-off-by: David Michael <fedora.dm0@gmail.com>
> ---
> 
> Hi,
> 
> QEMU fails to build for x32 due to that cpu_family not being defined in
> supported_cpus.  Can something like this be applied?
> 
> Alternatively, maybe it could be added to supported_cpus and accepted
> everywhere that matches x86 in meson.build, but upstream meson does not
> define a CPU type for x32.

"supported_cpus" serves two distinct purposes in meson.build

 - Identifies whether TCG supports the target
 - Identifies whether QEMU maintainers consider the target supported

The change proposed below makes x32 be treated the same as x86_64.

Maybe that's right for the question of TCG support, but I'm less
sure it is right from POV of QEMU maintainers expectations around
the x32 target status. AFAIK, we don't have any CI for x32 and
IIUC no maintainers are actively testing it manually, so it ought
to be in the unsupported category.


>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 8dcb9965b2..4478f3889a 100755
> --- a/configure
> +++ b/configure
> @@ -6384,7 +6384,7 @@ if test "$skip_meson" = no; then
>          i386)
>              echo "cpu_family = 'x86'" >> $cross
>              ;;
> -        x86_64)
> +        x86_64|x32)
>              echo "cpu_family = 'x86_64'" >> $cross
>              ;;
>          ppc64le)




Regards,
Daniel
David Michael June 9, 2021, 1 p.m. UTC | #2
On Wed, Jun 9, 2021 at 8:45 AM Daniel P. Berrangé <berrange@redhat.com> wrote:
> On Wed, Jun 09, 2021 at 08:28:39AM -0400, David Michael wrote:
> > The meson.build file defines supported_cpus which does not contain
> > x32, and x32 is not one of meson's stable built-in values:
> > https://mesonbuild.com/Reference-tables.html#cpu-families
> >
> > Signed-off-by: David Michael <fedora.dm0@gmail.com>
> > ---
> >
> > Hi,
> >
> > QEMU fails to build for x32 due to that cpu_family not being defined in
> > supported_cpus.  Can something like this be applied?
> >
> > Alternatively, maybe it could be added to supported_cpus and accepted
> > everywhere that matches x86 in meson.build, but upstream meson does not
> > define a CPU type for x32.
>
> "supported_cpus" serves two distinct purposes in meson.build
>
>  - Identifies whether TCG supports the target
>  - Identifies whether QEMU maintainers consider the target supported
>
> The change proposed below makes x32 be treated the same as x86_64.
>
> Maybe that's right for the question of TCG support, but I'm less
> sure it is right from POV of QEMU maintainers expectations around
> the x32 target status. AFAIK, we don't have any CI for x32 and
> IIUC no maintainers are actively testing it manually, so it ought
> to be in the unsupported category.

Okay, then can something be done to change this line?

https://gitlab.com/qemu-project/qemu/-/blob/master/meson.build#L247

It's what causes the build to fail if it doesn't force the interpreter
due to x32 not being in supported_cpus, but then the following
(unreachable) code expects that x32 is not using the interpreter.

https://gitlab.com/qemu-project/qemu/-/blob/master/meson.build#L263

Thanks.

David
Peter Maydell June 9, 2021, 1:30 p.m. UTC | #3
On Wed, 9 Jun 2021 at 13:48, Daniel P. Berrangé <berrange@redhat.com> wrote:
>
> On Wed, Jun 09, 2021 at 08:28:39AM -0400, David Michael wrote:
> > The meson.build file defines supported_cpus which does not contain
> > x32, and x32 is not one of meson's stable built-in values:
> > https://mesonbuild.com/Reference-tables.html#cpu-families
> >
> > Signed-off-by: David Michael <fedora.dm0@gmail.com>
> > ---
> >
> > Hi,
> >
> > QEMU fails to build for x32 due to that cpu_family not being defined in
> > supported_cpus.  Can something like this be applied?
> >
> > Alternatively, maybe it could be added to supported_cpus and accepted
> > everywhere that matches x86 in meson.build, but upstream meson does not
> > define a CPU type for x32.
>
> "supported_cpus" serves two distinct purposes in meson.build
>
>  - Identifies whether TCG supports the target
>  - Identifies whether QEMU maintainers consider the target supported
>
> The change proposed below makes x32 be treated the same as x86_64.

I feel like it's more "fixing a regression we introduced by accident
at some point". Looking at the 5.1 configure script (which predates
the meson conversion) x32 is marked as a supported cpu. Currently it
isn't, so that's a regression. (I don't have the setup to bisect that
right now, but it would be interesting to confirm where it stopped
working.) Whether we feel that we no longer want to support x32 is
a separate question and we'd need to go through our usual deprecation
process if we did want to drop it.

thanks
-- PMM
Daniel P. Berrangé June 9, 2021, 1:48 p.m. UTC | #4
On Wed, Jun 09, 2021 at 02:30:09PM +0100, Peter Maydell wrote:
> On Wed, 9 Jun 2021 at 13:48, Daniel P. Berrangé <berrange@redhat.com> wrote:
> >
> > On Wed, Jun 09, 2021 at 08:28:39AM -0400, David Michael wrote:
> > > The meson.build file defines supported_cpus which does not contain
> > > x32, and x32 is not one of meson's stable built-in values:
> > > https://mesonbuild.com/Reference-tables.html#cpu-families
> > >
> > > Signed-off-by: David Michael <fedora.dm0@gmail.com>
> > > ---
> > >
> > > Hi,
> > >
> > > QEMU fails to build for x32 due to that cpu_family not being defined in
> > > supported_cpus.  Can something like this be applied?
> > >
> > > Alternatively, maybe it could be added to supported_cpus and accepted
> > > everywhere that matches x86 in meson.build, but upstream meson does not
> > > define a CPU type for x32.
> >
> > "supported_cpus" serves two distinct purposes in meson.build
> >
> >  - Identifies whether TCG supports the target
> >  - Identifies whether QEMU maintainers consider the target supported
> >
> > The change proposed below makes x32 be treated the same as x86_64.
> 
> I feel like it's more "fixing a regression we introduced by accident
> at some point". Looking at the 5.1 configure script (which predates
> the meson conversion) x32 is marked as a supported cpu. Currently it
> isn't, so that's a regression. (I don't have the setup to bisect that
> right now, but it would be interesting to confirm where it stopped
> working.) Whether we feel that we no longer want to support x32 is
> a separate question and we'd need to go through our usual deprecation
> process if we did want to drop it.

Ah, I missed that it was previously working.

Regards,
Daniel
Paolo Bonzini June 11, 2021, 5:09 p.m. UTC | #5
On 09/06/21 14:28, David Michael wrote:
> The meson.build file defines supported_cpus which does not contain
> x32, and x32 is not one of meson's stable built-in values:
> https://mesonbuild.com/Reference-tables.html#cpu-families
> 
> Signed-off-by: David Michael <fedora.dm0@gmail.com>
> ---
> 
> Hi,
> 
> QEMU fails to build for x32 due to that cpu_family not being defined in
> supported_cpus.  Can something like this be applied?
> 
> Alternatively, maybe it could be added to supported_cpus and accepted
> everywhere that matches x86 in meson.build, but upstream meson does not
> define a CPU type for x32.
> 
> Thanks.
> 
> David
Queued, thanks.

Paolo

>   configure | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 8dcb9965b2..4478f3889a 100755
> --- a/configure
> +++ b/configure
> @@ -6384,7 +6384,7 @@ if test "$skip_meson" = no; then
>           i386)
>               echo "cpu_family = 'x86'" >> $cross
>               ;;
> -        x86_64)
> +        x86_64|x32)
>               echo "cpu_family = 'x86_64'" >> $cross
>               ;;
>           ppc64le)
>
diff mbox series

Patch

diff --git a/configure b/configure
index 8dcb9965b2..4478f3889a 100755
--- a/configure
+++ b/configure
@@ -6384,7 +6384,7 @@  if test "$skip_meson" = no; then
         i386)
             echo "cpu_family = 'x86'" >> $cross
             ;;
-        x86_64)
+        x86_64|x32)
             echo "cpu_family = 'x86_64'" >> $cross
             ;;
         ppc64le)