Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
tests/migration: Support cross compilation in generating boot header …
…file Recently a new configure option, CROSS_CC_GUEST, was added to $(TARGET)-softmmu/config-target.mak to support TCG-related tests. This patch tries to leverage this option to support cross compilation when the migration boot block file is being re-generated: * The x86 related files are moved to a new sub-dir (named ./i386). * A new top-layer Makefile is created in tests/migration/ directory. This Makefile searches and parses CROSS_CC_GUEST to generate CROSS_PREFIX. The CROSS_PREFIX, if available, is then passed to migration/$ARCH/Makefile. Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Wei Huang <wei@redhat.com> Message-Id: <1536174934-26022-3-git-send-email-wei@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
- Loading branch information
Showing
5 changed files
with
51 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,35 @@ | ||
# To specify cross compiler prefix, use CROSS_PREFIX= | ||
# $ make CROSS_PREFIX=x86_64-linux-gnu- | ||
# | ||
# Copyright (c) 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. | ||
# | ||
|
||
TARGET_LIST = i386 | ||
|
||
SRC_PATH = ../.. | ||
|
||
override define __note | ||
/* 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. | ||
/* This file is automatically generated from the assembly file in | ||
* tests/migration/$@. Edit that file and then run "make all" | ||
* inside tests/migration to update, and then remember to send both | ||
* the header and the assembler differences 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 $@ | ||
find-arch-cross-cc = $(lastword $(shell grep -h "CROSS_CC_GUEST=" $(wildcard $(SRC_PATH)/$(patsubst i386,*86*,$(1))-softmmu/config-target.mak) /dev/null)) | ||
parse-cross-prefix = $(subst gcc,,$(patsubst cc,gcc,$(patsubst CROSS_CC_GUEST="%",%,$(call find-arch-cross-cc,$(1))))) | ||
gen-cross-prefix = $(patsubst %-,CROSS_PREFIX=%-,$(call parse-cross-prefix,$(1))) | ||
|
||
x86.bootsect: x86.boot | ||
dd if=$< of=$@ bs=256 count=2 skip=124 | ||
.PHONY: all $(TARGET_LIST) | ||
|
||
x86.boot: x86.o | ||
$(CROSS_PREFIX)objcopy -O binary $< $@ | ||
all: $(TARGET_LIST) | ||
|
||
x86.o: x86-a-b-bootblock.S | ||
$(CROSS_PREFIX)gcc -m32 -march=i486 -c $< -o $@ | ||
$(TARGET_LIST): | ||
$(MAKE) -C $@ $(call gen-cross-prefix,$@) | ||
|
||
clean: | ||
@rm -rf *.boot *.o *.bootsect | ||
for target in $(TARGET_LIST); do \ | ||
$(MAKE) -C $$target clean; \ | ||
done |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# To specify cross compiler prefix, use CROSS_PREFIX= | ||
# $ make CROSS_PREFIX=x86_64-linux-gnu- | ||
|
||
.PHONY: all clean | ||
all: a-b-bootblock.h | ||
|
||
a-b-bootblock.h: x86.bootsect | ||
echo "$$__note" > header.tmp | ||
xxd -i $< | sed -e 's/.*int.*//' >> header.tmp | ||
mv header.tmp $@ | ||
|
||
x86.bootsect: x86.boot | ||
dd if=$< of=$@ bs=256 count=2 skip=124 | ||
|
||
x86.boot: x86.o | ||
$(CROSS_PREFIX)objcopy -O binary $< $@ | ||
|
||
x86.o: a-b-bootblock.S | ||
$(CROSS_PREFIX)gcc -m32 -march=i486 -c $< -o $@ | ||
|
||
clean: | ||
@rm -rf *.boot *.o *.bootsect |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
8 changes: 4 additions & 4 deletions
8
tests/migration/x86-a-b-bootblock.h → tests/migration/i386/a-b-bootblock.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters