[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [XEN PATCH for-4.13] tools/configure: Honour XEN_COMPILE_ARCH and _TARGET_ for shim



Ian Jackson writes ("Re: [Xen-devel] [XEN PATCH for-4.13] tools/configure: 
Honour XEN_COMPILE_ARCH and _TARGET_ for shim"):
> Andrew, did you want to ack this ?  Or do you have further comments ?
> I have a release-ack...

Hrm.  get_maintainer thinks this is for Wei.  CC'd.

Ian.

> >From 1a8de36699b9042c30797e05f7a5f4313d7f7ad1 Mon Sep 17 00:00:00 2001
> From: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> Date: Tue, 29 Oct 2019 17:45:30 +0000
> Subject: [PATCH] tools/configure: Honour XEN_COMPILE_ARCH and _TARGET_ for
>  shim
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
> 
> The pvshim can only be built 64-bit because the hypervisor is only
> 64-bit nowadays.  The hypervisor build supports XEN_COMPILE_ARCH and
> XEN_TARGET_ARCH which override the information from uname.  The pvshim
> build runs out of the tools/ directory but calls the hypervisor build
> system.
> 
> If one runs in a Linux 32-bit userland with a 64-bit kernel, one used
> to be able to set XEN_COMPILE_ARCH.  But nowadays this does not work.
> configure sees the target cpu as 64-bit and tries to build pvshim.
> The build prints
>   echo "*** Xen x86/32 target no longer supported!"
> and doesn't build anything.  Then the subsequent Makefiles try to
> install the non-built pieces.
> 
> Fix this anomaly by causing configure to honour the Xen hypervisor way
> of setting the target architecture.
> 
> In principle this user behaviour is not handled quite right, because
> configure will still see 64-bit and so all the autoconf-based
> architecture testing will see 64-bit rather than 32-bit x86.  But the
> tools are in fact generally quite portable: this particular location
> in configure{.ac,} is the only place in tools/ where 64-bit x86 is
> treated differently from 32-bit x86, so the fix is sufficient and
> correct for this use case.
> 
> It remains the case that XEN_COMPILE_ARCH or XEN_TARGET_ARCH to a
> non-x86 architecture, when configure thinks things are x86, or vice
> versa, will not work right.
> 
> (This is a bugfix to 8845155c831c
>   pvshim: make PV shim build selectable from configure
> which inadvertantly deleted the logic to only build the shim for
> XEN_TARGET_ARCH != x86_32.)
> 
> I have rerun autogen.sh, so this patch contains the fix to configure
> as well as the source fix to configure.ac.
> 
> Fixes: 8845155c831c59e867ee3dd31ee63e0cc6c7dcf2
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> CC: Olaf Hering <olaf@xxxxxxxxx>
> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
> Release-acked-by: Jürgen Groß <jgross@xxxxxxxx>
> ---
>  tools/configure    | 2 +-
>  tools/configure.ac | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/configure b/tools/configure
> index 82947ad308..d9ccce6d2b 100755
> --- a/tools/configure
> +++ b/tools/configure
> @@ -9711,7 +9711,7 @@ fi
>  else
>  
>      cpu=`test -z "$target_cpu" && echo "$host_cpu" || echo "$target_cpu"`
> -    case "$cpu" in
> +    case "${XEN_COMPILE_ARCH-${XEN_TARGET_ARCH-$cpu}}" in
>          x86_64)
>             pvshim="y";;
>          *) pvshim="n";;
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 674bd5809d..a8d8ce5ffe 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -479,7 +479,7 @@ AC_ARG_ENABLE([pvshim],
>                     [Disable pvshim build (enabled by default on 64bit x86)]),
>      [AS_IF([test "x$enable_pvshim" = "xno"], [pvshim=n], [pvshim=y])], [
>      cpu=`test -z "$target_cpu" && echo "$host_cpu" || echo "$target_cpu"`
> -    case "$cpu" in
> +    case "${XEN_COMPILE_ARCH-${XEN_TARGET_ARCH-$cpu}}" in
>          x86_64)
>             pvshim="y";;
>          *) pvshim="n";;
> -- 
> 2.11.0
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.