From: Wei Huang <wei@redhat.com>
To: Andrew Jones <drjones@redhat.com>
Cc: lvivier@redhat.com, peter.maydell@linaro.org,
qemu-devel@nongnu.org, dgilbert@redhat.com, quintela@redhat.com
Subject: Re: [Qemu-devel] [PATCH V8 1/4] tests/migration: Convert x86 boot block compilation script into Makefile
Date: Tue, 4 Sep 2018 10:51:01 -0500 [thread overview]
Message-ID: <853542b8-d5e1-8fb9-d1a7-b8c0660b0a41@redhat.com> (raw)
In-Reply-To: <20180903110813.hbamu4zuda6qpwuw@kamzik.brq.redhat.com>
On 09/03/2018 06:08 AM, Andrew Jones wrote:
> On Sat, Sep 01, 2018 at 01:11:12AM -0400, 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.
>>
>> Note that, in the new design, the cross compiler prefix can be specified by
>> setting the CROSS_PREFIX in "make" command. Also to allow gcc pre-processor
>> to include the C-style file correctly, it also renames the
>> x86-a-b-bootblock.s file extension from .s to .S.
>>
>> Signed-off-by: Wei Huang <wei@redhat.com>
>> ---
>> tests/migration/Makefile | 31 ++++++++++++++++++++
>> tests/migration/rebuild-x86-bootblock.sh | 33 ----------------------
>> .../{x86-a-b-bootblock.s => x86-a-b-bootblock.S} | 0
>> 3 files changed, 31 insertions(+), 33 deletions(-)
>> create mode 100644 tests/migration/Makefile
>> delete mode 100755 tests/migration/rebuild-x86-bootblock.sh
>> rename tests/migration/{x86-a-b-bootblock.s => x86-a-b-bootblock.S} (100%)
>>
>> diff --git a/tests/migration/Makefile b/tests/migration/Makefile
>> new file mode 100644
>> index 0000000..5d5fa07
>> --- /dev/null
>> +++ b/tests/migration/Makefile
>> @@ -0,0 +1,31 @@
>> +# To specify cross compiler prefix, use CROSS_PREFIX=
>> +# > make CROSS_PREFIX=x86_64-linux-gnu-
> ^ nit: this prompt symbol is weird (at least to me, what shell uses
> this?) To me it looks like a sh/bash redirect symbol. Can
> we change it to '$' or use nothing at all?
I will replace '>' with '$', which is indeed the commonly-used one.
>> +
>> +override define __note
>> +/* This file is automatically generated from
>> + * tests/migration/x86-a-b-bootblock.s, edit that and then run
> ^ should be 'S'
OK, will do.
>
>> + * tests/migration/rebuild-x86-bootblock.sh to update,
>> + * and then remember to send both in your patch submission.
>> + */
>> +endef
>> +export __note
>> +
>> +.PHONY: all clean
>> +all: x86-a-b-bootblock.h
>> +
>> +x86-a-b-bootblock.h: x86.bootsect
>> + echo "$$__note" > header.tmp
>> + xxd -i $< | sed -e 's/.*int.*//' >> header.tmp
>> + mv header.tmp $@
>
> The shell script this Makefile is replacing used mktemp
> for a randomly named tmp dir. Shouldn't we continue to
> use random names?>
>> +
>> +x86.bootsect: x86.boot
>> + dd if=$< of=$@ bs=256 count=2 skip=124
>> +
>> +x86.boot: x86.o
>> + $(CROSS_PREFIX)objcopy -O binary $< $@
>> +
>> +x86.o: x86-a-b-bootblock.S
>> + $(CROSS_PREFIX)gcc -m32 -march=i486 -c $< -o $@
>> +
>> +clean:
>> + @rm -rf *.boot *.o *.bootsect
>
> We don't want to remove the generated header file when cleaning?
>
>> diff --git a/tests/migration/rebuild-x86-bootblock.sh b/tests/migration/rebuild-x86-bootblock.sh
>> deleted file mode 100755
>> index 86cec5d..0000000
>> --- 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: dgilbert@redhat.com
>> -
>> -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.s b/tests/migration/x86-a-b-bootblock.S
>> similarity index 100%
>> rename from tests/migration/x86-a-b-bootblock.s
>> rename to tests/migration/x86-a-b-bootblock.S
>> --
>> 1.8.3.1
>>
>>
>
> Thanks,
> drew
>
next prev parent reply other threads:[~2018-09-04 15:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-01 5:11 [Qemu-devel] [PATCH V8 0/4] tests: Add migration test for aarch64 Wei Huang
2018-09-01 5:11 ` [Qemu-devel] [PATCH V8 1/4] tests/migration: Convert x86 boot block compilation script into Makefile Wei Huang
2018-09-03 9:32 ` Juan Quintela
2018-09-03 11:08 ` Andrew Jones
2018-09-03 11:45 ` Juan Quintela
2018-09-03 12:14 ` Andrew Jones
2018-09-04 15:51 ` Wei Huang [this message]
2018-09-01 5:11 ` [Qemu-devel] [PATCH V8 2/4] tests/migration: Support cross compilation in generating boot header file Wei Huang
2018-09-03 9:43 ` Juan Quintela
2018-09-03 11:26 ` Andrew Jones
2018-09-04 17:04 ` Wei Huang
2018-09-04 18:05 ` Andrew Jones
2018-09-01 5:11 ` [Qemu-devel] [PATCH V8 3/4] tests/migration: Add migration-test " Wei Huang
2018-09-03 9:35 ` Juan Quintela
2018-09-03 11:34 ` Andrew Jones
2018-09-01 5:11 ` [Qemu-devel] [PATCH V8 4/4] tests: Add migration test for aarch64 Wei Huang
2018-09-01 10:07 ` Peter Maydell
2018-09-02 5:00 ` Wei Huang
2018-09-03 11:46 ` Andrew Jones
2018-09-03 9:42 ` Juan Quintela
2018-09-03 11:53 ` Andrew Jones
2018-09-04 17:07 ` Wei Huang
2018-09-04 18:02 ` Andrew Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=853542b8-d5e1-8fb9-d1a7-b8c0660b0a41@redhat.com \
--to=wei@redhat.com \
--cc=dgilbert@redhat.com \
--cc=drjones@redhat.com \
--cc=lvivier@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).