Skip to contentSkip to conversation

scripts/update-linux-headers.sh: refactor extra files

PATCH In review Sam Bobroff 2 participants 3 messages Mar 14, 2017

lore
Share & tools
lore
#0 lore raw

cover scripts/update-linux-headers.sh: refactor extra files

Hi QEMU devs,

While doing some other work, I needed to update the update-linux-headers.sh script to handle some new files and it seemed like it was getting big enough to need a little refactoring. The actual files have already been added (on master) but here's the refactoring because it might still be useful. There is no functional change, this is maintenance only.

Cheers,
Sam.

Sam Bobroff (1):
scripts/update-linux-headers.sh: refactor extra files

 scripts/update-linux-headers.sh | 44 ++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 20 deletions(-)
Signature · 1 line
2.11.0
#1 lore raw

PATCH 1/1 scripts/update-linux-headers.sh: refactor extra files

update-linux-headers.sh now has enough code in it to suggest some refactoring. Parameterize some of it to make adding new files a bit easier.

---
 scripts/update-linux-headers.sh | 44 ++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 20 deletions(-)
scripts/update-linux-headers.sh +24 -20
index 6a370a8669..49366103e1 100755
@@ -82,33 +82,37 @@ for arch in $ARCHLIST; do
     fi
 
     make -C "$linux" INSTALL_HDR_PATH="$tmpdir" $arch_var=$arch headers_install
+    ARCH_EXTRA=
+    ARCH_STD_EXTRA=
+    case "$arch" in
+        arm)
+            ARCH_EXTRA="unistd-eabi.h unistd-oabi.h unistd-common.h"
+            ;;
+        powerpc)
+            ARCH_EXTRA=epapr_hcalls.h
+            ;;
+        s390)
+            ARCH_STD_EXTRA="kvm_virtio.h virtio-ccw.h"
+            ;;
+        x86)
+            ARCH_EXTRA="unistd_32.h unistd_x32.h unistd_64.h"
+            ARCH_STD_EXTRA="hyperv.h"
+            ;;
+    esac
 
     rm -rf "$output/linux-headers/asm-$arch"
     mkdir -p "$output/linux-headers/asm-$arch"
-    for header in kvm.h kvm_para.h unistd.h; do
-        cp "$tmpdir/include/asm/$header" "$output/linux-headers/asm-$arch"
+    for header in kvm.h kvm_para.h unistd.h $ARCH_EXTRA; do
+        cp "$tmpdir/include/asm/$header" \
+           "$output/linux-headers/asm-$arch/"
     done
-    if [ $arch = powerpc ]; then
-        cp "$tmpdir/include/asm/epapr_hcalls.h" "$output/linux-headers/asm-powerpc/"
-    fi
 
     rm -rf "$output/include/standard-headers/asm-$arch"
     mkdir -p "$output/include/standard-headers/asm-$arch"
-    if [ $arch = s390 ]; then
-        cp_portable "$tmpdir/include/asm/kvm_virtio.h" "$output/include/standard-headers/asm-s390/"
-        cp_portable "$tmpdir/include/asm/virtio-ccw.h" "$output/include/standard-headers/asm-s390/"
-    fi
-    if [ $arch = arm ]; then
-        cp "$tmpdir/include/asm/unistd-eabi.h" "$output/linux-headers/asm-arm/"
-        cp "$tmpdir/include/asm/unistd-oabi.h" "$output/linux-headers/asm-arm/"
-        cp "$tmpdir/include/asm/unistd-common.h" "$output/linux-headers/asm-arm/"
-    fi
-    if [ $arch = x86 ]; then
-        cp_portable "$tmpdir/include/asm/hyperv.h" "$output/include/standard-headers/asm-x86/"
-        cp "$tmpdir/include/asm/unistd_32.h" "$output/linux-headers/asm-x86/"
-        cp "$tmpdir/include/asm/unistd_x32.h" "$output/linux-headers/asm-x86/"
-        cp "$tmpdir/include/asm/unistd_64.h" "$output/linux-headers/asm-x86/"
-    fi
+    for header in $ARCH_STD_EXTRA; do
+        cp_portable "$tmpdir/include/asm/$header" \
+                    "$output/include/standard-headers/asm-$arch/"
+    done
 done
 
 rm -rf "$output/linux-headers/linux"
Signature · 1 line
2.11.0
#2 lore raw
Quoted 62 lines · Sam Bobroff

update-linux-headers.sh now has enough code in it to suggest some refactoring. Parameterize some of it to make adding new files a bit easier.

---
 scripts/update-linux-headers.sh | 44 ++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 20 deletions(-)
scripts/update-linux-headers.sh +20 -17
index 6a370a8669..49366103e1 100755
@@ -82,33 +82,37 @@ for arch in $ARCHLIST; do
     fi
 
     make -C "$linux" INSTALL_HDR_PATH="$tmpdir" $arch_var=$arch headers_install
+    ARCH_EXTRA=
+    ARCH_STD_EXTRA=
+    case "$arch" in
+        arm)
+            ARCH_EXTRA="unistd-eabi.h unistd-oabi.h unistd-common.h"
+            ;;
+        powerpc)
+            ARCH_EXTRA=epapr_hcalls.h
+            ;;
+        s390)
+            ARCH_STD_EXTRA="kvm_virtio.h virtio-ccw.h"
+            ;;
+        x86)
+            ARCH_EXTRA="unistd_32.h unistd_x32.h unistd_64.h"
+            ARCH_STD_EXTRA="hyperv.h"
+            ;;
+    esac
 
     rm -rf "$output/linux-headers/asm-$arch"
     mkdir -p "$output/linux-headers/asm-$arch"
-    for header in kvm.h kvm_para.h unistd.h; do
-        cp "$tmpdir/include/asm/$header" "$output/linux-headers/asm-$arch"
+    for header in kvm.h kvm_para.h unistd.h $ARCH_EXTRA; do
+        cp "$tmpdir/include/asm/$header" \
+           "$output/linux-headers/asm-$arch/"
     done
-    if [ $arch = powerpc ]; then
-        cp "$tmpdir/include/asm/epapr_hcalls.h" "$output/linux-headers/asm-powerpc/"
-    fi
 
     rm -rf "$output/include/standard-headers/asm-$arch"
     mkdir -p "$output/include/standard-headers/asm-$arch"
-    if [ $arch = s390 ]; then
-        cp_portable "$tmpdir/include/asm/kvm_virtio.h" "$output/include/standard-headers/asm-s390/"
-        cp_portable "$tmpdir/include/asm/virtio-ccw.h" "$output/include/standard-headers/asm-s390/"
-    fi
-    if [ $arch = arm ]; then
-        cp "$tmpdir/include/asm/unistd-eabi.h" "$output/linux-headers/asm-arm/"
-        cp "$tmpdir/include/asm/unistd-oabi.h" "$output/linux-headers/asm-arm/"
-        cp "$tmpdir/include/asm/unistd-common.h" "$output/linux-headers/asm-arm/"
-    fi
-    if [ $arch = x86 ]; then
-        cp_portable "$tmpdir/include/asm/hyperv.h" "$output/include/standard-headers/asm-x86/"
-        cp "$tmpdir/include/asm/unistd_32.h" "$output/linux-headers/asm-x86/"

scripts/update-linux-headers.sh for arch in $ARCHLIST; do · line 118

Quoted 10 lines
scripts/update-linux-headers.sh +4 -3
-        cp "$tmpdir/include/asm/unistd_x32.h" "$output/linux-headers/asm-x86/"
-        cp "$tmpdir/include/asm/unistd_64.h" "$output/linux-headers/asm-x86/"
-    fi
+    for header in $ARCH_STD_EXTRA; do
+        cp_portable "$tmpdir/include/asm/$header" \
+                    "$output/include/standard-headers/asm-$arch/"
+    done
 done
 
 rm -rf "$output/linux-headers/linux"

Looks better indeed, thanks!

Paolo