[v2] configure: Don't implicitly hardcode list of KVM architectures

Submitted by Peter Maydell on Aug. 3, 2012, 12:51 p.m.

Details

Message ID 1343998285-12848-1-git-send-email-peter.maydell@linaro.org
State New
Headers show

Commit Message

Peter Maydell Aug. 3, 2012, 12:51 p.m.
The code creating the symlink from linux-headers/asm to the
architecture specific linux-headers/asm-$arch directory was
implicitly hardcoding a list of KVM supporting architectures.
Add a default case for the common "Linux architecture name and
QEMU CPU name match" case, so future architectures will only
need to add code if they've managed to get mismatched names.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
v1->v2 changes: conform to same indent rules as surrounding code

 configure |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

Comments

Marcelo Tosatti Aug. 3, 2012, 7:57 p.m.
On Fri, Aug 03, 2012 at 01:51:25PM +0100, Peter Maydell wrote:
> The code creating the symlink from linux-headers/asm to the
> architecture specific linux-headers/asm-$arch directory was
> implicitly hardcoding a list of KVM supporting architectures.
> Add a default case for the common "Linux architecture name and
> QEMU CPU name match" case, so future architectures will only
> need to add code if they've managed to get mismatched names.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> v1->v2 changes: conform to same indent rules as surrounding code

Applied to uq/master, thanks.
Andreas Färber Aug. 4, 2012, 3:29 p.m.
Am 03.08.2012 14:51, schrieb Peter Maydell:
> The code creating the symlink from linux-headers/asm to the
> architecture specific linux-headers/asm-$arch directory was
> implicitly hardcoding a list of KVM supporting architectures.
> Add a default case for the common "Linux architecture name and
> QEMU CPU name match" case, so future architectures will only
> need to add code if they've managed to get mismatched names.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> v1->v2 changes: conform to same indent rules as surrounding code

Did you send the wrong patch? ;)

Andreas

> 
>  configure |   14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/configure b/configure
> index 9f071b7..eafb81f 100755
> --- a/configure
> +++ b/configure
> @@ -3485,15 +3485,23 @@ if test "$linux" = "yes" ; then
>    mkdir -p linux-headers
>    case "$cpu" in
>    i386|x86_64)
> -    symlink "$source_path/linux-headers/asm-x86" linux-headers/asm
> +    linux_arch=x86
>      ;;
>    ppcemb|ppc|ppc64)
> -    symlink "$source_path/linux-headers/asm-powerpc" linux-headers/asm
> +    linux_arch=powerpc
>      ;;
>    s390x)
> -    symlink "$source_path/linux-headers/asm-s390" linux-headers/asm
> +    linux_arch=s390
> +    ;;
> +  *)
> +    # For most CPUs the kernel architecture name and QEMU CPU name match.
> +    linux_arch="$cpu"
>      ;;
>    esac
> +    # For non-KVM architectures we will not have asm headers
> +    if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
> +      symlink "$source_path/linux-headers/asm-$linux_arch" linux-headers/asm
> +    fi
>  fi
>  
>  for target in $target_list; do
>

Patch hide | download patch | download mbox

diff --git a/configure b/configure
index 9f071b7..eafb81f 100755
--- a/configure
+++ b/configure
@@ -3485,15 +3485,23 @@  if test "$linux" = "yes" ; then
   mkdir -p linux-headers
   case "$cpu" in
   i386|x86_64)
-    symlink "$source_path/linux-headers/asm-x86" linux-headers/asm
+    linux_arch=x86
     ;;
   ppcemb|ppc|ppc64)
-    symlink "$source_path/linux-headers/asm-powerpc" linux-headers/asm
+    linux_arch=powerpc
     ;;
   s390x)
-    symlink "$source_path/linux-headers/asm-s390" linux-headers/asm
+    linux_arch=s390
+    ;;
+  *)
+    # For most CPUs the kernel architecture name and QEMU CPU name match.
+    linux_arch="$cpu"
     ;;
   esac
+    # For non-KVM architectures we will not have asm headers
+    if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
+      symlink "$source_path/linux-headers/asm-$linux_arch" linux-headers/asm
+    fi
 fi
 
 for target in $target_list; do