Patchwork update-linux-headers.sh: Don't hard code list of architectures

login
register
mail settings
Submitter Peter Maydell
Date July 17, 2012, 4:41 p.m.
Message ID <1342543307-10964-1-git-send-email-peter.maydell@linaro.org>
Download mbox | patch
Permalink /patch/171482/
State New
Headers show

Comments

Peter Maydell - July 17, 2012, 4:41 p.m.
Rather than hardcoding the list of architectures in the kernel
header update script, just import headers for every architecture
which supports KVM. This reduces the number of QEMU files which
need to be updated to add support for a new KVM architecture.
It also means we won't break if the kernel drops support for
an architecture in the future.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
I'd like this for ARM, obviously. NB that this change will mean we'll
pick up the ia64 kvm headers next time somebody does a kernel header
update; this seems harmless (and perhaps even useful?). ia64 'make
headers_install' is a bit noisy as of 3.5-rc5 but succeeds anyway.

 scripts/update-linux-headers.sh |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)
Jan Kiszka - July 17, 2012, 5:03 p.m.
On 2012-07-17 18:41, Peter Maydell wrote:
> Rather than hardcoding the list of architectures in the kernel
> header update script, just import headers for every architecture
> which supports KVM. This reduces the number of QEMU files which
> need to be updated to add support for a new KVM architecture.
> It also means we won't break if the kernel drops support for
> an architecture in the future.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> I'd like this for ARM, obviously. NB that this change will mean we'll
> pick up the ia64 kvm headers next time somebody does a kernel header
> update; this seems harmless (and perhaps even useful?). ia64 'make
> headers_install' is a bit noisy as of 3.5-rc5 but succeeds anyway.

IA64 KVM support is dead and may be removed at some point from the
kernel. What about blacklisting it here already to avoid that noise?

> 
>  scripts/update-linux-headers.sh |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
> index 9d2a4bc..2c76685 100755
> --- a/scripts/update-linux-headers.sh
> +++ b/scripts/update-linux-headers.sh
> @@ -28,7 +28,16 @@ if [ -z "$output" ]; then
>      output="$PWD"
>  fi
>  
> -for arch in x86 powerpc s390; do
> +# This will pick up non-directories too (eg "Kconfig") but we will
> +# ignore them in the next loop.
> +ARCHLIST=$(cd "$linux/arch" && echo *)
> +
> +for arch in $ARCHLIST; do
> +    # Discard anything which isn't a KVM-supporting architecture
> +    if ! [ -e "$linux/arch/$arch/include/asm/kvm.h" ]; then
> +        continue
> +    fi
> +
>      make -C "$linux" INSTALL_HDR_PATH="$tmpdir" SRCARCH=$arch headers_install
>  
>      rm -rf "$output/linux-headers/asm-$arch"
> 

Looks good otherwise. Clearly better than a hardcoded list.

Jan
Peter Maydell - July 17, 2012, 5:34 p.m.
On 17 July 2012 18:03, Jan Kiszka <jan.kiszka@siemens.com> wrote:
> On 2012-07-17 18:41, Peter Maydell wrote:
>> Rather than hardcoding the list of architectures in the kernel
>> header update script, just import headers for every architecture
>> which supports KVM. This reduces the number of QEMU files which
>> need to be updated to add support for a new KVM architecture.
>> It also means we won't break if the kernel drops support for
>> an architecture in the future.
>>
>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>> ---
>> I'd like this for ARM, obviously. NB that this change will mean we'll
>> pick up the ia64 kvm headers next time somebody does a kernel header
>> update; this seems harmless (and perhaps even useful?). ia64 'make
>> headers_install' is a bit noisy as of 3.5-rc5 but succeeds anyway.
>
> IA64 KVM support is dead and may be removed at some point from the
> kernel. What about blacklisting it here already to avoid that noise?

It's only noisy for the developer who runs the script, and if
we blacklist it then we'll have to update the script again to
remove it from the blacklist when it finally dies.

I don't feel very strongly about it, though, so I can add an

   # Blacklist architectures which have KVM headers but are actually dead
   if [ "$arch" = "ia64" ]; then
       continue
   fi

to the patch if you want.

-- PMM
Jan Kiszka - July 17, 2012, 6:30 p.m.
On 2012-07-17 19:34, Peter Maydell wrote:
> On 17 July 2012 18:03, Jan Kiszka <jan.kiszka@siemens.com> wrote:
>> On 2012-07-17 18:41, Peter Maydell wrote:
>>> Rather than hardcoding the list of architectures in the kernel
>>> header update script, just import headers for every architecture
>>> which supports KVM. This reduces the number of QEMU files which
>>> need to be updated to add support for a new KVM architecture.
>>> It also means we won't break if the kernel drops support for
>>> an architecture in the future.
>>>
>>> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>>> ---
>>> I'd like this for ARM, obviously. NB that this change will mean we'll
>>> pick up the ia64 kvm headers next time somebody does a kernel header
>>> update; this seems harmless (and perhaps even useful?). ia64 'make
>>> headers_install' is a bit noisy as of 3.5-rc5 but succeeds anyway.
>>
>> IA64 KVM support is dead and may be removed at some point from the
>> kernel. What about blacklisting it here already to avoid that noise?
> 
> It's only noisy for the developer who runs the script, and if

Developers are also human that may hate seeing this mess. :)

> we blacklist it then we'll have to update the script again to
> remove it from the blacklist when it finally dies.

We /can/ clean this up then, but there will be no urgent need.

> 
> I don't feel very strongly about it, though, so I can add an
> 
>    # Blacklist architectures which have KVM headers but are actually dead
>    if [ "$arch" = "ia64" ]; then
>        continue
>    fi
> 
> to the patch if you want.

Yes, I would prefer doing this.

Jan

Patch

diff --git a/scripts/update-linux-headers.sh b/scripts/update-linux-headers.sh
index 9d2a4bc..2c76685 100755
--- a/scripts/update-linux-headers.sh
+++ b/scripts/update-linux-headers.sh
@@ -28,7 +28,16 @@  if [ -z "$output" ]; then
     output="$PWD"
 fi
 
-for arch in x86 powerpc s390; do
+# This will pick up non-directories too (eg "Kconfig") but we will
+# ignore them in the next loop.
+ARCHLIST=$(cd "$linux/arch" && echo *)
+
+for arch in $ARCHLIST; do
+    # Discard anything which isn't a KVM-supporting architecture
+    if ! [ -e "$linux/arch/$arch/include/asm/kvm.h" ]; then
+        continue
+    fi
+
     make -C "$linux" INSTALL_HDR_PATH="$tmpdir" SRCARCH=$arch headers_install
 
     rm -rf "$output/linux-headers/asm-$arch"