[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH V4 1/3] tests/migration: Convert the boot block
From: |
Andrew Jones |
Subject: |
Re: [Qemu-devel] [PATCH V4 1/3] tests/migration: Convert the boot block compilation script into Makefile |
Date: |
Thu, 22 Feb 2018 10:15:00 +0100 |
User-agent: |
Mutt/1.6.0.1 (2016-04-01) |
On Wed, Feb 21, 2018 at 10:44:15PM -0600, Wei Huang wrote:
> The x86 boot block header currently is generated with a shell script.
> To better support other CPUs (e.g. aarch64), we convert the script
> into Makefile. This allows us to 1) support cross-compilation easily,
> and 2) avoid creating a script file for every architecture.
>
> Signed-off-by: Wei Huang <address@hidden>
> ---
> tests/migration/Makefile | 38
> ++++++++++++++++++++++++++++++++
> tests/migration/rebuild-x86-bootblock.sh | 33 ---------------------------
> tests/migration/x86-a-b-bootblock.h | 2 +-
> tests/migration/x86-a-b-bootblock.s | 5 ++---
> 4 files changed, 41 insertions(+), 37 deletions(-)
> create mode 100644 tests/migration/Makefile
> delete mode 100755 tests/migration/rebuild-x86-bootblock.sh
>
> diff --git a/tests/migration/Makefile b/tests/migration/Makefile
> new file mode 100644
> index 0000000000..1c07dd7be9
> --- /dev/null
> +++ b/tests/migration/Makefile
> @@ -0,0 +1,38 @@
> +#
> +# Copyright (c) 2016-2018 Red Hat, Inc. and/or its affiliates
> +#
> +# Authors:
> +# Dave Gilbert <address@hidden>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or later.
> +# See the COPYING file in the top-level directory.
> +#
> +path := $(subst :, ,$(PATH))
> +system := $(shell uname -s | tr "A-Z" "a-z")
> +
> +cross-ld = $(firstword $(wildcard $(patsubst
> %,%/$(1)-*$(system)*-ld,$(path))))
> +cross-gcc = $(firstword $(wildcard $(patsubst %ld,%gcc,$(call
> cross-ld,$(1)))))
> +find-cross-prefix = $(subst gcc,,$(notdir $(call cross-gcc,$(1))))
> +
> +x86_64_cross_prefix := $(call find-cross-prefix,x86_64)
I see the above lines are copied from roms/Makefile. Is there no way to
avoid the duplication? Add them to $(SRC_PATH)/rules.mak and include them?
> +
> +export __note
> +override define __note
> +/* This file is automatically generated from
> + * tests/migration/$<, edit that and then run
> + * "make $@" inside tests/migration to update,
> + * and then remember to send both in your patch submission.
> + */
> +endef
> +
> +all: x86-a-b-bootblock.h
> +
> +x86-a-b-bootblock.h: x86-a-b-bootblock.s
> + $(x86_64_cross_prefix)as --32 -march=i486 $< -o x86.o
> + $(x86_64_cross_prefix)objcopy -O binary x86.o x86.boot
> + dd if=x86.boot of=x86.bootsect bs=256 count=2 skip=124
> + echo "$$__note" > $@
> + xxd -i x86.bootsect | sed -e 's/.*int.*//' >> $@
> +
> +clean:
> + rm -f *.bootsect *.boot *.o
> diff --git a/tests/migration/rebuild-x86-bootblock.sh
> b/tests/migration/rebuild-x86-bootblock.sh
> deleted file mode 100755
> index 86cec5d284..0000000000
> --- a/tests/migration/rebuild-x86-bootblock.sh
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -#!/bin/sh
> -# Copyright (c) 2016-2018 Red Hat, Inc. and/or its affiliates
> -# This work is licensed under the terms of the GNU GPL, version 2 or later.
> -# See the COPYING file in the top-level directory.
> -#
> -# Author: address@hidden
> -
> -ASMFILE=$PWD/tests/migration/x86-a-b-bootblock.s
> -HEADER=$PWD/tests/migration/x86-a-b-bootblock.h
> -
> -if [ ! -e "$ASMFILE" ]
> -then
> - echo "Couldn't find $ASMFILE" >&2
> - exit 1
> -fi
> -
> -ASM_WORK_DIR=$(mktemp -d --tmpdir X86BB.XXXXXX)
> -cd "$ASM_WORK_DIR" &&
> -as --32 -march=i486 "$ASMFILE" -o x86.o &&
> -objcopy -O binary x86.o x86.boot &&
> -dd if=x86.boot of=x86.bootsect bs=256 count=2 skip=124 &&
> -xxd -i x86.bootsect |
> -sed -e 's/.*int.*//' > x86.hex &&
> -cat - x86.hex <<HERE > "$HEADER"
> -/* This file is automatically generated from
> - * tests/migration/x86-a-b-bootblock.s, edit that and then run
> - * tests/migration/rebuild-x86-bootblock.sh to update,
> - * and then remember to send both in your patch submission.
> - */
> -HERE
> -
> -rm x86.hex x86.bootsect x86.boot x86.o
> -cd .. && rmdir "$ASM_WORK_DIR"
> diff --git a/tests/migration/x86-a-b-bootblock.h
> b/tests/migration/x86-a-b-bootblock.h
> index 78a151fe2a..9e8e2e028b 100644
> --- a/tests/migration/x86-a-b-bootblock.h
> +++ b/tests/migration/x86-a-b-bootblock.h
> @@ -1,6 +1,6 @@
> /* This file is automatically generated from
> * tests/migration/x86-a-b-bootblock.s, edit that and then run
> - * tests/migration/rebuild-x86-bootblock.sh to update,
> + * "make x86-a-b-bootblock.h" inside tests/migration to update,
> * and then remember to send both in your patch submission.
> */
> unsigned char x86_bootsect[] = {
> diff --git a/tests/migration/x86-a-b-bootblock.s
> b/tests/migration/x86-a-b-bootblock.s
> index b1642641a7..98dbfab084 100644
> --- a/tests/migration/x86-a-b-bootblock.s
> +++ b/tests/migration/x86-a-b-bootblock.s
> @@ -3,9 +3,8 @@
> # range.
> # Outputs an initial 'A' on serial followed by repeated 'B's
> #
> -# run tests/migration/rebuild-x86-bootblock.sh
> -# to regenerate the hex, and remember to include both the .h and .s
> -# in any patches.
> +# In tests/migration dir, run 'make x86-a-b-bootblock.h' to regenerate
> +# the hex, and remember to include both the .h and .s in any patches.
> #
> # Copyright (c) 2016 Red Hat, Inc. and/or its affiliates
> # This work is licensed under the terms of the GNU GPL, version 2 or later.
> --
> 2.14.3
>
>
Thanks,
drew