* [PATCH 00/20] Cross compilation changes for 7.2
@ 2022-08-25 22:27 Paolo Bonzini
2022-08-25 22:27 ` [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom Paolo Bonzini
` (20 more replies)
0 siblings, 21 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
This is a bunch of related changes leading up to building ROMs
with container-based cross compilers:
- detect pc-bios/ CC options just once instead of using make's $(shell)
function
- move CC option detection to tests/tcg Makefiles from QEMU's root
configure
- put all configuration of tests/tcg in config files instead of using
$(MAKE) VAR=value
- mostly unrelated, change pc-bios/ Make output to look like Meson's
"Compiling foo.o".
Paolo Bonzini (20):
configure: do not invoke as/ld directly for pc-bios/optionrom
pc-bios/optionrom: detect CC options just once
pc-bios/s390-ccw: detect CC options just once
vof: add distclean target
build: add recursive distclean rules
configure: return status code from probe_target_compiler
configure: store container engine in config-host.mak
tests: simplify Makefile invocation for tests/tcg
tests/tcg: remove -f from Makefile invocation
tests/tcg: add distclean rule
tests/tcg: unify ppc64 and ppc64le Makefiles
tests/tcg: clean up calls to run-test
tests/tcg: move compiler tests to Makefiles
configure: move tests/tcg/Makefile.prereqs to root build directory
configure: unify creation of cross-compilation Makefiles
configure: cleanup creation of tests/tcg target config
configure: build ROMs with container-based cross compilers
pc-bios/optionrom: Adopt meson style Make output
pc-bios/s390-ccw: Adopt meson style Make output
pc-bios/vof: Adopt meson style Make output
Makefile | 12 +-
configure | 251 +++++++-----------
meson.build | 2 +-
pc-bios/optionrom/Makefile | 51 ++--
pc-bios/s390-ccw/Makefile | 43 ++-
pc-bios/s390-ccw/netboot.mak | 27 +-
pc-bios/vof/Makefile | 19 +-
tests/Makefile.include | 24 +-
tests/docker/Makefile.include | 2 +-
tests/tcg/Makefile.target | 34 ++-
tests/tcg/aarch64/Makefile.softmmu-target | 11 +-
tests/tcg/aarch64/Makefile.target | 15 +-
tests/tcg/arm/Makefile.target | 9 +-
tests/tcg/cris/Makefile.target | 2 +-
tests/tcg/i386/Makefile.softmmu-target | 3 +-
tests/tcg/i386/Makefile.target | 11 +-
tests/tcg/multiarch/Makefile.target | 18 +-
.../multiarch/system/Makefile.softmmu-target | 2 +-
tests/tcg/ppc64/Makefile.target | 8 +-
tests/tcg/{ppc64le => ppc64}/bcdsub.c | 0
tests/tcg/{ppc64le => ppc64}/byte_reverse.c | 0
tests/tcg/{ppc64le => ppc64}/mffsce.c | 0
tests/tcg/{ppc64le => ppc64}/mtfsf.c | 0
.../{ppc64le => ppc64}/non_signalling_xscv.c | 0
.../signal_save_restore_xer.c | 0
tests/tcg/{ppc64le => ppc64}/xxspltw.c | 0
tests/tcg/ppc64le/Makefile.target | 26 +-
tests/tcg/s390x/Makefile.target | 2 +-
tests/tcg/x86_64/Makefile.softmmu-target | 3 +-
29 files changed, 275 insertions(+), 300 deletions(-)
rename tests/tcg/{ppc64le => ppc64}/bcdsub.c (100%)
rename tests/tcg/{ppc64le => ppc64}/byte_reverse.c (100%)
rename tests/tcg/{ppc64le => ppc64}/mffsce.c (100%)
rename tests/tcg/{ppc64le => ppc64}/mtfsf.c (100%)
rename tests/tcg/{ppc64le => ppc64}/non_signalling_xscv.c (100%)
rename tests/tcg/{ppc64le => ppc64}/signal_save_restore_xer.c (100%)
rename tests/tcg/{ppc64le => ppc64}/xxspltw.c (100%)
--
2.37.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-09-26 15:25 ` Alex Bennée
2022-08-25 22:27 ` [PATCH 02/20] pc-bios/optionrom: detect CC options just once Paolo Bonzini
` (19 subsequent siblings)
20 siblings, 1 reply; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Just use using the compiler binary, with -nostdlib in the case of the
linker; the compiler driver (whether i686-*-gcc, or x86_64-*-gcc with
the -m32 option) will then pick the right magic option to as and ld.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 22 +++++-----------------
pc-bios/optionrom/Makefile | 12 ++++--------
2 files changed, 9 insertions(+), 25 deletions(-)
diff --git a/configure b/configure
index 72ab03f11a..c533eaada0 100755
--- a/configure
+++ b/configure
@@ -2332,23 +2332,11 @@ probe_target_compiler i386-softmmu
if test -n "$target_cc" &&
test "$targetos" != "darwin" && test "$targetos" != "sunos" && \
test "$targetos" != "haiku" && test "$softmmu" = yes ; then
- # Different host OS linkers have different ideas about the name of the ELF
- # emulation. Linux and OpenBSD/amd64 use 'elf_i386'; FreeBSD uses the _fbsd
- # variant; OpenBSD/i386 uses the _obsd variant; and Windows uses i386pe.
- for emu in elf_i386 elf_i386_fbsd elf_i386_obsd i386pe; do
- if "$target_ld" -verbose 2>&1 | grep -q "^[[:space:]]*${emu}[[:space:]]*$"; then
- ld_i386_emulation="$emu"
- break
- fi
- done
- if test -n "$ld_i386_emulation"; then
- roms="pc-bios/optionrom"
- config_mak=pc-bios/optionrom/config.mak
- echo "# Automatically generated by configure - do not modify" > $config_mak
- echo "TOPSRC_DIR=$source_path" >> $config_mak
- echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_mak
- write_target_makefile >> $config_mak
- fi
+ roms="pc-bios/optionrom"
+ config_mak=pc-bios/optionrom/config.mak
+ echo "# Automatically generated by configure - do not modify" > $config_mak
+ echo "TOPSRC_DIR=$source_path" >> $config_mak
+ write_target_makefile >> $config_mak
fi
probe_target_compiler ppc-softmmu
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index e90ca2e1c6..3e06c11dea 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -20,28 +20,24 @@ override CFLAGS += $(call cc-option, -fcf-protection=none)
# Flags for dependency generation
override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
-override CFLAGS += $(filter -W%, $(QEMU_CFLAGS))
override CFLAGS += $(call cc-option, -fno-pie)
+override CFLAGS += $(call cc-option, -no-pie)
override CFLAGS += -ffreestanding -I$(TOPSRC_DIR)/include
override CFLAGS += $(call cc-option, -fno-stack-protector)
override CFLAGS += $(call cc-option, -Wno-array-bounds)
-Wa = -Wa,
-override ASFLAGS += -32
-override CFLAGS += $(call cc-option, $(Wa)-32)
-
-override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
+override LDFLAGS = -nostdlib -Wl,-T,$(SRC_DIR)/flat.lds
pvh.img: pvh.o pvh_main.o
%.o: %.S
- $(call quiet-command,$(CC) $(CPPFLAGS) -E -o - $< | $(AS) $(ASFLAGS) -o $@,"AS","$@")
+ $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<,"AS","$@")
%.o: %.c
$(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@,"CC","$@")
%.img: %.o
- $(call quiet-command,$(LD) $(LDFLAGS) -s -o $@ $^,"BUILD","$@")
+ $(call quiet-command,$(CC) $(CFLAGS) $(LDFLAGS) -s -o $@ $^,"BUILD","$@")
%.raw: %.img
$(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,"BUILD","$@")
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 02/20] pc-bios/optionrom: detect CC options just once
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
2022-08-25 22:27 ` [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-09-26 15:27 ` Alex Bennée
2022-08-25 22:27 ` [PATCH 03/20] pc-bios/s390-ccw: " Paolo Bonzini
` (18 subsequent siblings)
20 siblings, 1 reply; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
In preparation for adding Docker container support, detect compiler options
just once rather than once per Make run; container startup overhead is
substantial and doing the detection just once makes things faster.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/optionrom/Makefile | 37 +++++++++++++++++++++++++------------
1 file changed, 25 insertions(+), 12 deletions(-)
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 3e06c11dea..f514e4f84b 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -8,23 +8,33 @@ all: multiboot.bin multiboot_dma.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bi
CFLAGS = -O2 -g
+NULL :=
+SPACE := $(NULL) #
+TARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR))
+
+quiet-@ = $(if $(V),,@)
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
-cc-option = $(if $(shell $(CC) $1 -c -o /dev/null -xc /dev/null >/dev/null 2>&1 && echo OK), $1, $2)
-
-override CFLAGS += -march=i486 -Wall $(EXTRA_CFLAGS) -m16
-
-# If -fcf-protection is enabled in flags or compiler defaults that will
-# conflict with -march=i486
-override CFLAGS += $(call cc-option, -fcf-protection=none)
# Flags for dependency generation
override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
-override CFLAGS += $(call cc-option, -fno-pie)
-override CFLAGS += $(call cc-option, -no-pie)
+override CFLAGS += -march=i486 -Wall $(EXTRA_CFLAGS) -m16
override CFLAGS += -ffreestanding -I$(TOPSRC_DIR)/include
-override CFLAGS += $(call cc-option, -fno-stack-protector)
-override CFLAGS += $(call cc-option, -Wno-array-bounds)
+
+cc-test = $(CC) -Werror $1 -c -o /dev/null -xc /dev/null >/dev/null 2>/dev/null
+cc-option = if $(call cc-test, $1); then \
+ echo "$(TARGET_PREFIX)$1 detected" && echo "override CFLAGS += $1" >&3; else \
+ echo "$(TARGET_PREFIX)$1 not detected" $(if $2,&& echo "override CFLAGS += $2" >&3); fi
+
+# If -fcf-protection is enabled in flags or compiler defaults that will
+# conflict with -march=i486
+config-cc.mak: Makefile
+ $(quiet-@)($(call cc-option,-fcf-protection=none); \
+ $(call cc-option,-fno-pie); \
+ $(call cc-option,-no-pie); \
+ $(call cc-option,-fno-stack-protector); \
+ $(call cc-option,-Wno-array-bounds)) 3> config-cc.mak
+-include config-cc.mak
override LDFLAGS = -nostdlib -Wl,-T,$(SRC_DIR)/flat.lds
@@ -50,7 +60,10 @@ include $(wildcard *.d)
clean:
rm -f *.o *.d *.raw *.img *.bin *~
+distclean:
+ rm -f config-cc.mak
+
# suppress auto-removal of intermediate files
.SECONDARY:
-.PHONY: all clean
+.PHONY: all clean distclean
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 03/20] pc-bios/s390-ccw: detect CC options just once
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
2022-08-25 22:27 ` [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom Paolo Bonzini
2022-08-25 22:27 ` [PATCH 02/20] pc-bios/optionrom: detect CC options just once Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 04/20] vof: add distclean target Paolo Bonzini
` (17 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
In preparation for adding Docker container support, detect compiler options
just once rather than once per Make run; container startup overhead is
substantial and doing the detection just once makes things faster.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/s390-ccw/Makefile | 33 +++++++++++++++++++++++++--------
pc-bios/s390-ccw/netboot.mak | 7 ++-----
2 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index c8784c2a08..965e633f43 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -6,9 +6,12 @@ include config-host.mak
CFLAGS = -O2 -g
MAKEFLAGS += -rR
+NULL :=
+SPACE := $(NULL) #
+TARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR))
+
+quiet-@ = $(if $(V),,@)
quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
-cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \
- >/dev/null 2>&1 && echo OK),$2,$3)
VPATH_SUFFIXES = %.c %.h %.S %.m %.mak %.sh %.rc Kconfig% %.json.in
set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1)))
@@ -25,22 +28,33 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
$(call quiet-command,$(CCAS) $(EXTRA_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) \
-c -o $@ $<,"CCAS","$(TARGET_DIR)$@")
-.PHONY : all clean build-all
+.PHONY : all clean build-all distclean
OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
-EXTRA_CFLAGS := $(EXTRA_CFLAGS) -Wall
-EXTRA_CFLAGS += $(call cc-option,-Werror $(EXTRA_CFLAGS),-Wno-stringop-overflow)
+EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -fno-common -fPIE
EXTRA_CFLAGS += -fwrapv -fno-strict-aliasing -fno-asynchronous-unwind-tables
-EXTRA_CFLAGS += $(call cc-option, $(EXTRA_CFLAGS), -fno-stack-protector)
-EXTRA_CFLAGS += $(call cc-option, $(EXTRA_CFLAGS), -Wno-array-bounds)
EXTRA_CFLAGS += -msoft-float
-EXTRA_CFLAGS += $(call cc-option, $(EXTRA_CFLAGS),-march=z900,-march=z10)
EXTRA_CFLAGS += -std=gnu99
LDFLAGS += -Wl,-pie -nostdlib
+cc-test = $(CC) -Werror $1 -c -o /dev/null -xc /dev/null >/dev/null 2>/dev/null
+cc-option = if $(call cc-test, $1); then \
+ echo "$(TARGET_PREFIX)$1 detected" && echo "EXTRA_CFLAGS += $1" >&3; else \
+ echo "$(TARGET_PREFIX)$1 not detected" $(if $2,&& echo "EXTRA_CFLAGS += $2" >&3); fi
+
+config-cc.mak: Makefile
+ $(quiet-@)($(call cc-option,-Wno-stringop-overflow); \
+ $(call cc-option,-fno-stack-protector); \
+ $(call cc-option,-Wno-array-bounds); \
+ $(call cc-option,-Wno-gnu); \
+ $(call cc-option,-march=z900,-march=z10)) 3> config-cc.mak
+-include config-cc.mak
+
+LDFLAGS += -Wl,-pie -nostdlib
+
build-all: s390-ccw.img s390-netboot.img
s390-ccw.elf: $(OBJECTS)
@@ -63,3 +77,6 @@ ALL_OBJS = $(sort $(OBJECTS) $(NETOBJS) $(LIBCOBJS) $(LIBNETOBJS))
clean:
rm -f *.o *.d *.img *.elf *~ *.a
+
+distclean:
+ rm -f config-cc.mak
diff --git a/pc-bios/s390-ccw/netboot.mak b/pc-bios/s390-ccw/netboot.mak
index 7639da194c..ee59a5f4de 100644
--- a/pc-bios/s390-ccw/netboot.mak
+++ b/pc-bios/s390-ccw/netboot.mak
@@ -16,12 +16,9 @@ s390-netboot.elf: $(NETOBJS) libnet.a libc.a
s390-netboot.img: s390-netboot.elf
$(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@")
-# SLOF is GCC-only, so ignore warnings about GNU extensions with Clang here
-NO_GNU_WARN := $(call cc-option,-Werror $(QEMU_CFLAGS),-Wno-gnu)
-
# libc files:
-LIBC_CFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(NO_GNU_WARN) $(LIBC_INC) $(LIBNET_INC) \
+LIBC_CFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
-MMD -MP -MT $@ -MF $(@:%.o=%.d)
CTYPE_OBJS = isdigit.o isxdigit.o toupper.o
@@ -55,7 +52,7 @@ libc.a: $(LIBCOBJS)
LIBNETOBJS := args.o dhcp.o dns.o icmpv6.o ipv6.o tcp.o udp.o bootp.o \
dhcpv6.o ethernet.o ipv4.o ndp.o tftp.o pxelinux.o
-LIBNETCFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(NO_GNU_WARN) $(LIBC_INC) $(LIBNET_INC) \
+LIBNETCFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
-DDHCPARCH=0x1F -MMD -MP -MT $@ -MF $(@:%.o=%.d)
%.o : $(SLOF_DIR)/lib/libnet/%.c
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 04/20] vof: add distclean target
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (2 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 03/20] pc-bios/s390-ccw: " Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 05/20] build: add recursive distclean rules Paolo Bonzini
` (16 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/vof/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/pc-bios/vof/Makefile b/pc-bios/vof/Makefile
index 8809c82768..990f26af31 100644
--- a/pc-bios/vof/Makefile
+++ b/pc-bios/vof/Makefile
@@ -19,4 +19,6 @@ vof.elf: entry.o main.o ci.o bootmem.o libc.o
clean:
rm -f *.o vof.bin vof.elf *~
-.PHONY: all clean
+distclean:
+
+.PHONY: all clean distclean
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 05/20] build: add recursive distclean rules
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (3 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 04/20] vof: add distclean target Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 06/20] configure: return status code from probe_target_compiler Paolo Bonzini
` (15 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 13234f2aa4..ef0fbb4dee 100644
--- a/Makefile
+++ b/Makefile
@@ -186,7 +186,7 @@ include $(SRC_PATH)/tests/Makefile.include
all: recurse-all
-ROMS_RULES=$(foreach t, all clean, $(addsuffix /$(t), $(ROMS)))
+ROMS_RULES=$(foreach t, all clean distclean, $(addsuffix /$(t), $(ROMS)))
.PHONY: $(ROMS_RULES)
$(ROMS_RULES):
$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" $(notdir $@),)
@@ -194,6 +194,7 @@ $(ROMS_RULES):
.PHONY: recurse-all recurse-clean
recurse-all: $(addsuffix /all, $(ROMS))
recurse-clean: $(addsuffix /clean, $(ROMS))
+recurse-distclean: $(addsuffix /distclean, $(ROMS))
######################################################################
@@ -214,7 +215,7 @@ dist: qemu-$(VERSION).tar.bz2
qemu-%.tar.bz2:
$(SRC_PATH)/scripts/make-release "$(SRC_PATH)" "$(patsubst qemu-%.tar.bz2,%,$@)"
-distclean: clean
+distclean: clean recurse-distclean
-$(quiet-@)test -f build.ninja && $(NINJA) $(NINJAFLAGS) -t clean -g || :
rm -f config-host.mak qemu-bundle
rm -f tests/tcg/config-*.mak
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 06/20] configure: return status code from probe_target_compiler
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (4 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 05/20] build: add recursive distclean rules Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 07/20] configure: store container engine in config-host.mak Paolo Bonzini
` (14 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
For now, return 1 for container-based compilers. This will change as
soon as ROMs will be buildable with them.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/configure b/configure
index c533eaada0..6f15f3c687 100755
--- a/configure
+++ b/configure
@@ -2181,6 +2181,7 @@ probe_target_compiler() {
target_ranlib=
target_strip=
fi
+ test -n "$target_cc"
}
write_target_makefile() {
@@ -2328,10 +2329,9 @@ done
# Mac OS X ships with a broken assembler
roms=
-probe_target_compiler i386-softmmu
-if test -n "$target_cc" &&
- test "$targetos" != "darwin" && test "$targetos" != "sunos" && \
- test "$targetos" != "haiku" && test "$softmmu" = yes ; then
+if test "$targetos" != "darwin" && test "$targetos" != "sunos" && \
+ test "$targetos" != "haiku" && test "$softmmu" = yes && \
+ probe_target_compiler i386-softmmu; then
roms="pc-bios/optionrom"
config_mak=pc-bios/optionrom/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
@@ -2339,8 +2339,7 @@ if test -n "$target_cc" &&
write_target_makefile >> $config_mak
fi
-probe_target_compiler ppc-softmmu
-if test -n "$target_cc" && test "$softmmu" = yes; then
+if test "$softmmu" = yes && probe_target_compiler ppc-softmmu; then
roms="$roms pc-bios/vof"
config_mak=pc-bios/vof/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
@@ -2350,8 +2349,7 @@ fi
# Only build s390-ccw bios if the compiler has -march=z900 or -march=z10
# (which is the lowest architecture level that Clang supports)
-probe_target_compiler s390x-softmmu
-if test -n "$target_cc" && test "$softmmu" = yes; then
+if test "$softmmu" = yes && probe_target_compiler s390x-softmmu; then
write_c_skeleton
do_compiler "$target_cc" $target_cc_cflags -march=z900 -o $TMPO -c $TMPC
has_z900=$?
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 07/20] configure: store container engine in config-host.mak
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (5 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 06/20] configure: return status code from probe_target_compiler Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 08/20] tests: simplify Makefile invocation for tests/tcg Paolo Bonzini
` (13 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
In preparation for removing $(DOCKER_SCRIPT) from the tests/tcg configuration
files, have Make use the same container engine that had been probed at
configure time.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 11 ++++++++---
tests/docker/Makefile.include | 2 +-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/configure b/configure
index 6f15f3c687..ed18a17013 100755
--- a/configure
+++ b/configure
@@ -1843,9 +1843,11 @@ esac
container="no"
if test $use_containers = "yes"; then
- if has "docker" || has "podman"; then
- container=$($python $source_path/tests/docker/docker.py probe)
- fi
+ case $($python $source_path/tests/docker/docker.py probe) in
+ *docker) container=docker ;;
+ podman) container=podman ;;
+ no) container=no ;;
+ esac
fi
# cross compilers defaults, can be overridden with --cross-cc-ARCH
@@ -2476,6 +2478,9 @@ if test -n "$gdb_bin"; then
fi
fi
+if test "$container" != no; then
+ echo "ENGINE=$container" >> $config_host_mak
+fi
echo "ROMS=$roms" >> $config_host_mak
echo "MAKE=$make" >> $config_host_mak
echo "PYTHON=$python" >> $config_host_mak
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 9a45e8890b..c5cfdda04d 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -14,7 +14,7 @@ DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu
endif
DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))
-ENGINE := auto
+ENGINE ?= auto
DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(ENGINE)
CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$)
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 08/20] tests: simplify Makefile invocation for tests/tcg
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (6 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 07/20] configure: store container engine in config-host.mak Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 09/20] tests/tcg: remove -f from Makefile invocation Paolo Bonzini
` (12 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Remove the DOCKER_SCRIPT and TARGET variable from the Makefile invocation
for tests/tcg. For DOCKER_SCRIPT, resolve the path to docker.py in configure;
for TARGET, move it to config-$(TARGET).mak and use a symbolic link to break
the cycle.
The symbolic link is still needed because tests/tcg includes dummy config files
for targets that are not buildable. Once that is cleaned up, the symbolic link
will go away too.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 23 ++++++++++++++---------
tests/Makefile.include | 9 +++------
tests/tcg/Makefile.target | 2 +-
3 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/configure b/configure
index ed18a17013..42952591fc 100755
--- a/configure
+++ b/configure
@@ -1848,6 +1848,9 @@ if test $use_containers = "yes"; then
podman) container=podman ;;
no) container=no ;;
esac
+ if test "$container" != "no"; then
+ docker_py="$python $source_path/tests/docker/docker.py --engine $container"
+ fi
fi
# cross compilers defaults, can be overridden with --cross-cc-ARCH
@@ -2218,16 +2221,16 @@ write_target_makefile() {
write_container_target_makefile() {
echo "EXTRA_CFLAGS=$target_cflags"
if test -n "$container_cross_cc"; then
- echo "CC=\$(DOCKER_SCRIPT) cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
- echo "CCAS=\$(DOCKER_SCRIPT) cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
+ echo "CC=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
+ echo "CCAS=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
fi
- echo "AR=\$(DOCKER_SCRIPT) cc --cc $container_cross_ar -i qemu/$container_image -s $source_path --"
- echo "AS=\$(DOCKER_SCRIPT) cc --cc $container_cross_as -i qemu/$container_image -s $source_path --"
- echo "LD=\$(DOCKER_SCRIPT) cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --"
- echo "NM=\$(DOCKER_SCRIPT) cc --cc $container_cross_nm -i qemu/$container_image -s $source_path --"
- echo "OBJCOPY=\$(DOCKER_SCRIPT) cc --cc $container_cross_objcopy -i qemu/$container_image -s $source_path --"
- echo "RANLIB=\$(DOCKER_SCRIPT) cc --cc $container_cross_ranlib -i qemu/$container_image -s $source_path --"
- echo "STRIP=\$(DOCKER_SCRIPT) cc --cc $container_cross_strip -i qemu/$container_image -s $source_path --"
+ echo "AR=$docker_py cc --cc $container_cross_ar -i qemu/$container_image -s $source_path --"
+ echo "AS=$docker_py cc --cc $container_cross_as -i qemu/$container_image -s $source_path --"
+ echo "LD=$docker_py cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --"
+ echo "NM=$docker_py cc --cc $container_cross_nm -i qemu/$container_image -s $source_path --"
+ echo "OBJCOPY=$docker_py cc --cc $container_cross_objcopy -i qemu/$container_image -s $source_path --"
+ echo "RANLIB=$docker_py cc --cc $container_cross_ranlib -i qemu/$container_image -s $source_path --"
+ echo "STRIP=$docker_py cc --cc $container_cross_strip -i qemu/$container_image -s $source_path --"
}
@@ -2657,6 +2660,8 @@ for target in $target_list; do
fi
if test $got_cross_cc = yes; then
mkdir -p tests/tcg/$target
+ ln -sf ../config-$target.mak tests/tcg/$target/config-target.mak
+ echo "TARGET=$target" >> $config_target_mak
echo "QEMU=$PWD/$qemu" >> $config_target_mak
echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
tcg_tests_targets="$tcg_tests_targets $target"
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 3accb83b13..826b1895f4 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -50,23 +50,20 @@ $(foreach TARGET,$(TCG_TESTS_TARGETS), \
.PHONY: $(TCG_TESTS_TARGETS:%=build-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak
$(call quiet-command, \
- $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
- DOCKER_SCRIPT="$(DOCKER_SCRIPT)" \
- TARGET="$*" SRC_PATH="$(SRC_PATH)", \
+ $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS), \
"BUILD","$* guest-tests")
.PHONY: $(TCG_TESTS_TARGETS:%=run-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=run-tcg-tests-%): run-tcg-tests-%: build-tcg-tests-%
$(call quiet-command, \
$(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
- TARGET="$*" SRC_PATH="$(SRC_PATH)" SPEED=$(SPEED) run, \
+ SPEED=$(SPEED) run, \
"RUN", "$* guest-tests")
.PHONY: $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=clean-tcg-tests-%): clean-tcg-tests-%:
$(call quiet-command, \
- $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
- TARGET="$*" SRC_PATH="$(SRC_PATH)" clean, \
+ $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) clean, \
"CLEAN", "$* guest-tests")
.PHONY: build-tcg
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index e68830af15..f29b0abf17 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -31,7 +31,7 @@
all:
-include ../config-host.mak
--include ../config-$(TARGET).mak
+-include config-target.mak
# Get semihosting definitions for user-mode emulation
ifeq ($(filter %-softmmu, $(TARGET)),)
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 09/20] tests/tcg: remove -f from Makefile invocation
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (7 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 08/20] tests: simplify Makefile invocation for tests/tcg Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 10/20] tests/tcg: add distclean rule Paolo Bonzini
` (11 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Instead of linking tests/tcg/Makefile.target into the build tree, name
the symbolic link "Makefile" and create it in every target subdirectory.
This makes it possible to just invoke "make" in tests/tcg subdirectories.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 3 ++-
tests/Makefile.include | 7 +++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/configure b/configure
index 42952591fc..e428cc62e6 100755
--- a/configure
+++ b/configure
@@ -2316,7 +2316,6 @@ fi
# tests might fail. Prefer to keep the relevant files in their own
# directory and symlink the directory instead.
LINKS="Makefile"
-LINKS="$LINKS tests/tcg/Makefile.target"
LINKS="$LINKS pc-bios/optionrom/Makefile"
LINKS="$LINKS pc-bios/s390-ccw/Makefile"
LINKS="$LINKS pc-bios/vof/Makefile"
@@ -2561,6 +2560,7 @@ fi
echo "# Automatically generated by configure - do not modify" > $makefile
config_host_mak=tests/tcg/config-host.mak
+mkdir -p tests/tcg
echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo "SRC_PATH=$source_path" >> $config_host_mak
echo "HOST_CC=$host_cc" >> $config_host_mak
@@ -2660,6 +2660,7 @@ for target in $target_list; do
fi
if test $got_cross_cc = yes; then
mkdir -p tests/tcg/$target
+ ln -sf $source_path/tests/tcg/Makefile.target tests/tcg/$target/Makefile
ln -sf ../config-$target.mak tests/tcg/$target/config-target.mak
echo "TARGET=$target" >> $config_target_mak
echo "QEMU=$PWD/$qemu" >> $config_target_mak
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 826b1895f4..caef287957 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -50,20 +50,19 @@ $(foreach TARGET,$(TCG_TESTS_TARGETS), \
.PHONY: $(TCG_TESTS_TARGETS:%=build-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/tcg/config-%.mak
$(call quiet-command, \
- $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS), \
+ $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS), \
"BUILD","$* guest-tests")
.PHONY: $(TCG_TESTS_TARGETS:%=run-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=run-tcg-tests-%): run-tcg-tests-%: build-tcg-tests-%
$(call quiet-command, \
- $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) \
- SPEED=$(SPEED) run, \
+ $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) SPEED=$(SPEED) run, \
"RUN", "$* guest-tests")
.PHONY: $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%)
$(TCG_TESTS_TARGETS:%=clean-tcg-tests-%): clean-tcg-tests-%:
$(call quiet-command, \
- $(MAKE) -C tests/tcg/$* -f ../Makefile.target $(SUBDIR_MAKEFLAGS) clean, \
+ $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) clean, \
"CLEAN", "$* guest-tests")
.PHONY: build-tcg
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 10/20] tests/tcg: add distclean rule
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (8 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 09/20] tests/tcg: remove -f from Makefile invocation Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 11/20] tests/tcg: unify ppc64 and ppc64le Makefiles Paolo Bonzini
` (10 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/Makefile.include | 11 +++++++++++
tests/tcg/Makefile.target | 3 +++
2 files changed, 14 insertions(+)
diff --git a/tests/Makefile.include b/tests/Makefile.include
index caef287957..9ed67721e2 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -42,6 +42,7 @@ tests/tcg/Makefile.prereqs: config-host.mak
# Per guest TCG tests
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TCG_TESTS_TARGETS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TCG_TESTS_TARGETS))
+DISTCLEAN_TCG_TARGET_RULES=$(patsubst %,distclean-tcg-tests-%, $(TCG_TESTS_TARGETS))
RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(TCG_TESTS_TARGETS))
$(foreach TARGET,$(TCG_TESTS_TARGETS), \
@@ -65,6 +66,12 @@ $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%): clean-tcg-tests-%:
$(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) clean, \
"CLEAN", "$* guest-tests")
+.PHONY: $(TCG_TESTS_TARGETS:%=distclean-tcg-tests-%)
+$(TCG_TESTS_TARGETS:%=distclean-tcg-tests-%): distclean-tcg-tests-%:
+ $(call quiet-command, \
+ $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) distclean, \
+ "CLEAN", "$* guest-tests")
+
.PHONY: build-tcg
build-tcg: $(BUILD_TCG_TARGET_RULES)
@@ -75,6 +82,9 @@ check-tcg: $(RUN_TCG_TARGET_RULES)
.PHONY: clean-tcg
clean-tcg: $(CLEAN_TCG_TARGET_RULES)
+.PHONY: distclean-tcg
+distclean-tcg: $(DISTCLEAN_TCG_TARGET_RULES)
+
# Python venv for running tests
.PHONY: check-venv check-avocado check-acceptance check-acceptance-deprecated-warning
@@ -159,5 +169,6 @@ check-clean:
rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
clean: check-clean clean-tcg
+distclean: distclean-tcg
endif
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index f29b0abf17..8d2dafabf0 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -189,3 +189,6 @@ run: $(RUN_TESTS)
clean:
rm -f $(TESTS) *.o
+
+distclean:
+ rm -f config-target.mak ../config-$(TARGET).mak
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 11/20] tests/tcg: unify ppc64 and ppc64le Makefiles
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (9 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 10/20] tests/tcg: add distclean rule Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 12/20] tests/tcg: clean up calls to run-test Paolo Bonzini
` (9 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Make tests/tcg/ppc64le include tests/tcg/ppc64 instead of duplicating
the rules. Because the ppc64le vpath includes tests/tcg/ppc64 but
not vice versa, the tests have to be moved from tests/tcg/ppc64le/
to tests/tcg/ppc64.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/tcg/ppc64/Makefile.target | 1 -
tests/tcg/{ppc64le => ppc64}/bcdsub.c | 0
tests/tcg/{ppc64le => ppc64}/byte_reverse.c | 0
tests/tcg/{ppc64le => ppc64}/mffsce.c | 0
tests/tcg/{ppc64le => ppc64}/mtfsf.c | 0
.../{ppc64le => ppc64}/non_signalling_xscv.c | 0
.../signal_save_restore_xer.c | 0
tests/tcg/{ppc64le => ppc64}/xxspltw.c | 0
tests/tcg/ppc64le/Makefile.target | 26 +------------------
9 files changed, 1 insertion(+), 26 deletions(-)
rename tests/tcg/{ppc64le => ppc64}/bcdsub.c (100%)
rename tests/tcg/{ppc64le => ppc64}/byte_reverse.c (100%)
rename tests/tcg/{ppc64le => ppc64}/mffsce.c (100%)
rename tests/tcg/{ppc64le => ppc64}/mtfsf.c (100%)
rename tests/tcg/{ppc64le => ppc64}/non_signalling_xscv.c (100%)
rename tests/tcg/{ppc64le => ppc64}/signal_save_restore_xer.c (100%)
rename tests/tcg/{ppc64le => ppc64}/xxspltw.c (100%)
diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
index 331fae628e..7db7a3e2b3 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -3,7 +3,6 @@
# ppc64 specific tweaks
VPATH += $(SRC_PATH)/tests/tcg/ppc64
-VPATH += $(SRC_PATH)/tests/tcg/ppc64le
ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
PPC64_TESTS=bcdsub non_signalling_xscv
diff --git a/tests/tcg/ppc64le/bcdsub.c b/tests/tcg/ppc64/bcdsub.c
similarity index 100%
rename from tests/tcg/ppc64le/bcdsub.c
rename to tests/tcg/ppc64/bcdsub.c
diff --git a/tests/tcg/ppc64le/byte_reverse.c b/tests/tcg/ppc64/byte_reverse.c
similarity index 100%
rename from tests/tcg/ppc64le/byte_reverse.c
rename to tests/tcg/ppc64/byte_reverse.c
diff --git a/tests/tcg/ppc64le/mffsce.c b/tests/tcg/ppc64/mffsce.c
similarity index 100%
rename from tests/tcg/ppc64le/mffsce.c
rename to tests/tcg/ppc64/mffsce.c
diff --git a/tests/tcg/ppc64le/mtfsf.c b/tests/tcg/ppc64/mtfsf.c
similarity index 100%
rename from tests/tcg/ppc64le/mtfsf.c
rename to tests/tcg/ppc64/mtfsf.c
diff --git a/tests/tcg/ppc64le/non_signalling_xscv.c b/tests/tcg/ppc64/non_signalling_xscv.c
similarity index 100%
rename from tests/tcg/ppc64le/non_signalling_xscv.c
rename to tests/tcg/ppc64/non_signalling_xscv.c
diff --git a/tests/tcg/ppc64le/signal_save_restore_xer.c b/tests/tcg/ppc64/signal_save_restore_xer.c
similarity index 100%
rename from tests/tcg/ppc64le/signal_save_restore_xer.c
rename to tests/tcg/ppc64/signal_save_restore_xer.c
diff --git a/tests/tcg/ppc64le/xxspltw.c b/tests/tcg/ppc64/xxspltw.c
similarity index 100%
rename from tests/tcg/ppc64le/xxspltw.c
rename to tests/tcg/ppc64/xxspltw.c
diff --git a/tests/tcg/ppc64le/Makefile.target b/tests/tcg/ppc64le/Makefile.target
index 6ca3003f02..daad5118a5 100644
--- a/tests/tcg/ppc64le/Makefile.target
+++ b/tests/tcg/ppc64le/Makefile.target
@@ -4,28 +4,4 @@
VPATH += $(SRC_PATH)/tests/tcg/ppc64le
-ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
-PPC64LE_TESTS=bcdsub non_signalling_xscv
-endif
-$(PPC64LE_TESTS): CFLAGS += -mpower8-vector
-
-ifneq ($(CROSS_CC_HAS_POWER10),)
-PPC64LE_TESTS += byte_reverse sha512-vector
-endif
-byte_reverse: CFLAGS += -mcpu=power10
-run-byte_reverse: QEMU_OPTS+=-cpu POWER10
-run-plugin-byte_reverse-with-%: QEMU_OPTS+=-cpu POWER10
-
-sha512-vector: CFLAGS +=-mcpu=power10 -O3
-sha512-vector: sha512.c
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
-
-run-sha512-vector: QEMU_OPTS+=-cpu POWER10
-run-plugin-sha512-vector-with-%: QEMU_OPTS+=-cpu POWER10
-
-PPC64LE_TESTS += mtfsf
-PPC64LE_TESTS += mffsce
-PPC64LE_TESTS += signal_save_restore_xer
-PPC64LE_TESTS += xxspltw
-
-TESTS += $(PPC64LE_TESTS)
+include $(SRC_PATH)/tests/tcg/ppc64/Makefile.target
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 12/20] tests/tcg: clean up calls to run-test
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (10 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 11/20] tests/tcg: unify ppc64 and ppc64le Makefiles Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 13/20] tests/tcg: move compiler tests to Makefiles Paolo Bonzini
` (8 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Almost all invocations of run-test have either "$* on $(TARGET_NAME)"
or "$< on $(TARGET_NAME)" as the last argument. So provide a default
test name, while allowing an escape hatch for custom names.
As an additional simplification, remove the need to do shell quoting.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
tests/tcg/Makefile.target | 21 +++++++++----------
tests/tcg/aarch64/Makefile.softmmu-target | 6 ++----
tests/tcg/aarch64/Makefile.target | 6 +++---
tests/tcg/arm/Makefile.target | 9 ++++----
tests/tcg/cris/Makefile.target | 2 +-
tests/tcg/i386/Makefile.softmmu-target | 3 +--
tests/tcg/i386/Makefile.target | 5 ++---
tests/tcg/multiarch/Makefile.target | 18 +++++++---------
.../multiarch/system/Makefile.softmmu-target | 2 +-
tests/tcg/s390x/Makefile.target | 2 +-
tests/tcg/x86_64/Makefile.softmmu-target | 3 +--
11 files changed, 34 insertions(+), 43 deletions(-)
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index 8d2dafabf0..6d588075f2 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -41,14 +41,16 @@ endif
# for including , in command strings
COMMA := ,
-quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
+quiet-@ = $(if $(V),,@$(if $1,printf " %-7s %s\n" "$(strip $1)" "$(strip $2)" && ))
+quiet-command = $(call quiet-@,$2,$3)$1
# $1 = test name, $2 = cmd, $3 = desc
ifeq ($(filter %-softmmu, $(TARGET)),)
run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out, \
- "TEST",$3)
+ TEST,$(or $3, $*, $<) on $(TARGET_NAME))
else
-run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2,"TEST",$3)
+run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2, \
+ TEST,$(or $3, $*, $<) on $(TARGET_NAME))
endif
# $1 = test name, $2 = reference
@@ -56,7 +58,7 @@ endif
# we know it failed and then force failure at the end.
diff-out = $(call quiet-command, diff -q $1.out $2 || \
(diff -u $1.out $2 | head -n 10 && false), \
- "DIFF","$1.out with $2")
+ DIFF,$1.out with $2)
# $1 = test name, $2 = reason
skip-test = @printf " SKIPPED %s on $(TARGET_NAME) because %s\n" $1 $2
@@ -155,21 +157,19 @@ RUN_TESTS+=$(EXTRA_RUNS)
ifeq ($(filter %-softmmu, $(TARGET)),)
run-%: %
- $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
+ $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<)
run-plugin-%:
$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
-plugin $(PLUGIN_LIB)/$(call extract-plugin,$@) \
-d plugin -D $*.pout \
- $(call strip-plugin,$<), \
- "$* on $(TARGET_NAME)")
+ $(call strip-plugin,$<))
else
run-%: %
$(call run-test, $<, \
$(QEMU) -monitor none -display none \
-chardev file$(COMMA)path=$<.out$(COMMA)id=output \
- $(QEMU_OPTS) $<, \
- "$< on $(TARGET_NAME)")
+ $(QEMU_OPTS) $<)
run-plugin-%:
$(call run-test, $@, \
@@ -177,8 +177,7 @@ run-plugin-%:
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
-plugin $(PLUGIN_LIB)/$(call extract-plugin,$@) \
-d plugin -D $*.pout \
- $(QEMU_OPTS) $(call strip-plugin,$<), \
- "$* on $(TARGET_NAME)")
+ $(QEMU_OPTS) $(call strip-plugin,$<))
endif
gdb-%: %
diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target
index f6fcd4829e..84a9990f8d 100644
--- a/tests/tcg/aarch64/Makefile.softmmu-target
+++ b/tests/tcg/aarch64/Makefile.softmmu-target
@@ -50,8 +50,7 @@ run-memory-record: memory-record memory
$(QEMU) -monitor none -display none \
-chardev file$(COMMA)path=$<.out$(COMMA)id=output \
-icount shift=5$(COMMA)rr=record$(COMMA)rrfile=record.bin \
- $(QEMU_OPTS) memory, \
- "$< on $(TARGET_NAME)")
+ $(QEMU_OPTS) memory)
.PHONY: memory-replay
run-memory-replay: memory-replay run-memory-record
@@ -59,8 +58,7 @@ run-memory-replay: memory-replay run-memory-record
$(QEMU) -monitor none -display none \
-chardev file$(COMMA)path=$<.out$(COMMA)id=output \
-icount shift=5$(COMMA)rr=replay$(COMMA)rrfile=record.bin \
- $(QEMU_OPTS) memory, \
- "$< on $(TARGET_NAME)")
+ $(QEMU_OPTS) memory)
EXTRA_RUNS+=run-memory-replay
diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
index d6a74d24dc..9837a809dc 100644
--- a/tests/tcg/aarch64/Makefile.target
+++ b/tests/tcg/aarch64/Makefile.target
@@ -55,7 +55,7 @@ sha1-vector: CFLAGS=-O3
sha1-vector: sha1.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
run-sha1-vector: sha1-vector run-sha1
- $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
+ $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<)
$(call diff-out, sha1-vector, sha1.out)
TESTS += sha1-vector
@@ -75,14 +75,14 @@ run-gdbstub-sysregs: sysregs
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(AARCH64_SRC)/gdbstub/test-sve.py, \
- "basic gdbstub SVE support")
+ basic gdbstub SVE support)
run-gdbstub-sve-ioctls: sve-ioctls
$(call run-test, $@, $(GDB_SCRIPT) \
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(AARCH64_SRC)/gdbstub/test-sve-ioctl.py, \
- "basic gdbstub SVE ZLEN support")
+ basic gdbstub SVE ZLEN support)
EXTRA_RUNS += run-gdbstub-sysregs run-gdbstub-sve-ioctls
endif
diff --git a/tests/tcg/arm/Makefile.target b/tests/tcg/arm/Makefile.target
index 2f815120a5..b3b1504a1c 100644
--- a/tests/tcg/arm/Makefile.target
+++ b/tests/tcg/arm/Makefile.target
@@ -26,7 +26,7 @@ ARM_TESTS += fcvt
fcvt: LDFLAGS+=-lm
# fcvt: CFLAGS+=-march=armv8.2-a+fp16 -mfpu=neon-fp-armv8
run-fcvt: fcvt
- $(call run-test,fcvt,$(QEMU) $<,"$< on $(TARGET_NAME)")
+ $(call run-test,fcvt,$(QEMU) $<)
$(call diff-out,fcvt,$(ARM_SRC)/fcvt.ref)
# PC alignment test
@@ -44,13 +44,12 @@ semihosting-arm: semihosting.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
run-semihosting-arm: semihosting-arm
- $(call run-test,$<,$(QEMU) $< 2> $<.err, "$< on $(TARGET_NAME)")
+ $(call run-test,$<,$(QEMU) $< 2> $<.err)
run-plugin-semihosting-arm-with-%:
$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
-plugin $(PLUGIN_LIB)/$(call extract-plugin,$@) \
- $(call strip-plugin,$<) 2> $<.err, \
- "$< on $(TARGET_NAME) with $*")
+ $(call strip-plugin,$<) 2> $<.err)
ARM_TESTS += semiconsole-arm
@@ -75,7 +74,7 @@ sha1-vector: CFLAGS=-O3
sha1-vector: sha1.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< -o $@ $(LDFLAGS)
run-sha1-vector: sha1-vector run-sha1
- $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<, "$< on $(TARGET_NAME)")
+ $(call run-test, $<, $(QEMU) $(QEMU_OPTS) $<)
$(call diff-out, sha1-vector, sha1.out)
ARM_TESTS += sha1-vector
diff --git a/tests/tcg/cris/Makefile.target b/tests/tcg/cris/Makefile.target
index e72d3cbdb2..372287bd03 100644
--- a/tests/tcg/cris/Makefile.target
+++ b/tests/tcg/cris/Makefile.target
@@ -56,4 +56,4 @@ SIMG:=cris-axis-linux-gnu-run
# e.g.: make -f ../../tests/tcg/Makefile run-check_orm-on-sim
run-%-on-sim:
- $(call run-test, $<, $(SIMG) $<, "$< on $(TARGET_NAME) with SIM")
+ $(call run-test, $<, $(SIMG) $<)
diff --git a/tests/tcg/i386/Makefile.softmmu-target b/tests/tcg/i386/Makefile.softmmu-target
index 9b9038d0be..ed922d59c8 100644
--- a/tests/tcg/i386/Makefile.softmmu-target
+++ b/tests/tcg/i386/Makefile.softmmu-target
@@ -40,8 +40,7 @@ run-plugin-%-with-libinsn.so:
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
-d plugin -D $*-with-libinsn.so.pout \
- $(QEMU_OPTS) $*, \
- "$* on $(TARGET_NAME)")
+ $(QEMU_OPTS) $*)
# Running
QEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel
diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
index bd73c96d0d..8380f5846a 100644
--- a/tests/tcg/i386/Makefile.target
+++ b/tests/tcg/i386/Makefile.target
@@ -52,7 +52,7 @@ test-i386-fprem.ref: test-i386-fprem
run-test-i386-fprem: TIMEOUT=60
run-test-i386-fprem: test-i386-fprem test-i386-fprem.ref
- $(call run-test,test-i386-fprem, $(QEMU) $<,"$< on $(TARGET_NAME)")
+ $(call run-test,test-i386-fprem, $(QEMU) $<)
$(call diff-out,test-i386-fprem, test-i386-fprem.ref)
else
SKIP_I386_TESTS+=test-i386-fprem
@@ -62,8 +62,7 @@ endif
run-plugin-%-with-libinsn.so:
$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
- -d plugin -D $*-with-libinsn.so.pout $*, \
- "$* (inline) on $(TARGET_NAME)")
+ -d plugin -D $*-with-libinsn.so.pout $*)
# Update TESTS
I386_TESTS:=$(filter-out $(SKIP_I386_TESTS), $(ALL_X86_TESTS))
diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Makefile.target
index 6bba523729..78104f9bbb 100644
--- a/tests/tcg/multiarch/Makefile.target
+++ b/tests/tcg/multiarch/Makefile.target
@@ -26,7 +26,7 @@ float_%: float_%.c libs/float_helpers.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $< $(MULTIARCH_SRC)/libs/float_helpers.c -o $@ $(LDFLAGS)
run-float_%: float_%
- $(call run-test,$<, $(QEMU) $(QEMU_OPTS) $<,"$< on $(TARGET_NAME)")
+ $(call run-test,$<, $(QEMU) $(QEMU_OPTS) $<)
$(call conditional-diff-out,$<,$(SRC_PATH)/tests/tcg/$(TARGET_NAME)/$<.ref)
@@ -42,13 +42,11 @@ signals: LDFLAGS+=-lrt -lpthread
# default case (host page size)
run-test-mmap: test-mmap
- $(call run-test, test-mmap, $(QEMU) $<, \
- "$< (default) on $(TARGET_NAME)")
+ $(call run-test, test-mmap, $(QEMU) $<, $< (default))
# additional page sizes (defined by each architecture adding to EXTRA_RUNS)
run-test-mmap-%: test-mmap
- $(call run-test, test-mmap-$*, $(QEMU) -p $* $<,\
- "$< ($* byte pages) on $(TARGET_NAME)")
+ $(call run-test, test-mmap-$*, $(QEMU) -p $* $<, $< ($* byte pages))
ifneq ($(HAVE_GDB_BIN),)
GDB_SCRIPT=$(SRC_PATH)/tests/guest-debug/run-test.py
@@ -58,21 +56,21 @@ run-gdbstub-sha1: sha1
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(MULTIARCH_SRC)/gdbstub/sha1.py, \
- "basic gdbstub support")
+ basic gdbstub support)
run-gdbstub-qxfer-auxv-read: sha1
$(call run-test, $@, $(GDB_SCRIPT) \
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(MULTIARCH_SRC)/gdbstub/test-qxfer-auxv-read.py, \
- "basic gdbstub qXfer:auxv:read support")
+ basic gdbstub qXfer:auxv:read support)
run-gdbstub-thread-breakpoint: testthread
$(call run-test, $@, $(GDB_SCRIPT) \
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(MULTIARCH_SRC)/gdbstub/test-thread-breakpoint.py, \
- "hitting a breakpoint on non-main thread")
+ hitting a breakpoint on non-main thread)
else
run-gdbstub-%:
@@ -94,13 +92,13 @@ VPATH += $(MULTIARCH_SRC)/arm-compat-semi
semihosting: CFLAGS+=-I$(SRC_PATH)/tests/tcg/$(TARGET_NAME)
run-semihosting: semihosting
- $(call run-test,$<,$(QEMU) $< 2> $<.err, "$< on $(TARGET_NAME)")
+ $(call run-test,$<,$(QEMU) $< 2> $<.err)
run-plugin-semihosting-with-%:
$(call run-test, $@, $(QEMU) $(QEMU_OPTS) \
-plugin $(PLUGIN_LIB)/$(call extract-plugin,$@) \
$(call strip-plugin,$<) 2> $<.err, \
- "$< on $(TARGET_NAME) with $*")
+ $< with $*)
semiconsole: CFLAGS+=-I$(SRC_PATH)/tests/tcg/$(TARGET_NAME)
diff --git a/tests/tcg/multiarch/system/Makefile.softmmu-target b/tests/tcg/multiarch/system/Makefile.softmmu-target
index 625ed792c6..368b64d531 100644
--- a/tests/tcg/multiarch/system/Makefile.softmmu-target
+++ b/tests/tcg/multiarch/system/Makefile.softmmu-target
@@ -25,7 +25,7 @@ run-gdbstub-memory: memory
--qargs \
"-monitor none -display none -chardev file$(COMMA)path=$<.out$(COMMA)id=output $(QEMU_OPTS)" \
--bin $< --test $(MULTIARCH_SRC)/gdbstub/memory.py, \
- "softmmu gdbstub support")
+ softmmu gdbstub support)
else
run-gdbstub-%:
diff --git a/tests/tcg/s390x/Makefile.target b/tests/tcg/s390x/Makefile.target
index 1a7a4a2f59..5c553ae1ef 100644
--- a/tests/tcg/s390x/Makefile.target
+++ b/tests/tcg/s390x/Makefile.target
@@ -40,7 +40,7 @@ run-gdbstub-signals-s390x: signals-s390x
--gdb $(HAVE_GDB_BIN) \
--qemu $(QEMU) --qargs "$(QEMU_OPTS)" \
--bin $< --test $(S390X_SRC)/gdbstub/test-signals-s390x.py, \
- "mixing signals and debugging on s390x")
+ mixing signals and debugging)
EXTRA_RUNS += run-gdbstub-signals-s390x
endif
diff --git a/tests/tcg/x86_64/Makefile.softmmu-target b/tests/tcg/x86_64/Makefile.softmmu-target
index 2afa3298bf..7207fee94c 100644
--- a/tests/tcg/x86_64/Makefile.softmmu-target
+++ b/tests/tcg/x86_64/Makefile.softmmu-target
@@ -40,8 +40,7 @@ run-plugin-%-with-libinsn.so:
-chardev file$(COMMA)path=$@.out$(COMMA)id=output \
-plugin ../../plugin/libinsn.so$(COMMA)inline=on \
-d plugin -D $*-with-libinsn.so.pout \
- $(QEMU_OPTS) $*, \
- "$* on $(TARGET_NAME)")
+ $(QEMU_OPTS) $*)
# Running
QEMU_OPTS+=-device isa-debugcon,chardev=output -device isa-debug-exit,iobase=0xf4,iosize=0x4 -kernel
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 13/20] tests/tcg: move compiler tests to Makefiles
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (11 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 12/20] tests/tcg: clean up calls to run-test Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 14/20] configure: move tests/tcg/Makefile.prereqs to root build directory Paolo Bonzini
` (7 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Further decoupling of tests/tcg from the main QEMU Makefile, and making
the build more similar between the cross compiler case and the vetted
container images.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 65 +----------------------
tests/tcg/Makefile.target | 10 +++-
tests/tcg/aarch64/Makefile.softmmu-target | 5 ++
tests/tcg/aarch64/Makefile.target | 9 ++++
tests/tcg/i386/Makefile.target | 6 +++
tests/tcg/ppc64/Makefile.target | 7 +++
6 files changed, 38 insertions(+), 64 deletions(-)
diff --git a/configure b/configure
index e428cc62e6..8d61863432 100755
--- a/configure
+++ b/configure
@@ -2589,73 +2589,11 @@ for target in $target_list; do
probe_target_compiler $target
if test $got_cross_cc = yes; then
- # Test for compiler features for optional tests. We only do this
- # for cross compilers because ensuring the docker containers based
- # compilers is a requirememt for adding a new test that needs a
- # compiler feature.
-
- echo "BUILD_STATIC=$build_static" >> $config_target_mak
write_target_makefile >> $config_target_mak
- case $target in
- aarch64-*)
- if do_compiler "$target_cc" $target_cflags \
- -march=armv8.1-a+sve -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
- fi
- if do_compiler "$target_cc" $target_cflags \
- -march=armv8.1-a+sve2 -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_SVE2=y" >> $config_target_mak
- fi
- if do_compiler "$target_cc" $target_cflags \
- -march=armv8.3-a -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
- fi
- if do_compiler "$target_cc" $target_cflags \
- -mbranch-protection=standard -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_ARMV8_BTI=y" >> $config_target_mak
- fi
- if do_compiler "$target_cc" $target_cflags \
- -march=armv8.5-a+memtag -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak
- fi
- ;;
- ppc*)
- if do_compiler "$target_cc" $target_cflags \
- -mpower8-vector -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
- fi
- if do_compiler "$target_cc" $target_cflags \
- -mpower10 -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_POWER10=y" >> $config_target_mak
- fi
- ;;
- i386-linux-user)
- if do_compiler "$target_cc" $target_cflags \
- -Werror -fno-pie -o $TMPE $TMPC; then
- echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak
- fi
- ;;
- esac
elif test -n "$container_image"; then
+ build_static=y
echo "build-tcg-tests-$target: docker-image-$container_image" >> $makefile
- echo "BUILD_STATIC=y" >> $config_target_mak
write_container_target_makefile >> $config_target_mak
- case $target in
- aarch64-*)
- echo "CROSS_CC_HAS_SVE=y" >> $config_target_mak
- echo "CROSS_CC_HAS_SVE2=y" >> $config_target_mak
- echo "CROSS_CC_HAS_ARMV8_3=y" >> $config_target_mak
- echo "CROSS_CC_HAS_ARMV8_BTI=y" >> $config_target_mak
- echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak
- ;;
- ppc*)
- echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
- echo "CROSS_CC_HAS_POWER10=y" >> $config_target_mak
- ;;
- i386-linux-user)
- echo "CROSS_CC_HAS_I386_NOPIE=y" >> $config_target_mak
- ;;
- esac
got_cross_cc=yes
fi
if test $got_cross_cc = yes; then
@@ -2664,6 +2602,7 @@ for target in $target_list; do
ln -sf ../config-$target.mak tests/tcg/$target/config-target.mak
echo "TARGET=$target" >> $config_target_mak
echo "QEMU=$PWD/$qemu" >> $config_target_mak
+ echo "BUILD_STATIC=$build_static" >> $config_target_mak
echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
tcg_tests_targets="$tcg_tests_targets $target"
fi
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index 6d588075f2..afbed9dd81 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -40,10 +40,18 @@ endif
# for including , in command strings
COMMA := ,
+NULL :=
+SPACE := $(NULL) #
+TARGET_PREFIX=tests/tcg/$(TARGET):$(SPACE)
quiet-@ = $(if $(V),,@$(if $1,printf " %-7s %s\n" "$(strip $1)" "$(strip $2)" && ))
quiet-command = $(call quiet-@,$2,$3)$1
+cc-test = $(CC) -Werror $1 -c -o /dev/null -xc /dev/null >/dev/null 2>&1
+cc-option = if $(call cc-test, $1); then \
+ echo "$(TARGET_PREFIX)$1 detected" && echo "$(strip $2)=y" >&3; else \
+ echo "$(TARGET_PREFIX)$1 not detected"; fi
+
# $1 = test name, $2 = cmd, $3 = desc
ifeq ($(filter %-softmmu, $(TARGET)),)
run-test = $(call quiet-command, timeout --foreground $(TIMEOUT) $2 > $1.out, \
@@ -190,4 +198,4 @@ clean:
rm -f $(TESTS) *.o
distclean:
- rm -f config-target.mak ../config-$(TARGET).mak
+ rm -f config-cc.mak config-target.mak ../config-$(TARGET).mak
diff --git a/tests/tcg/aarch64/Makefile.softmmu-target b/tests/tcg/aarch64/Makefile.softmmu-target
index 84a9990f8d..a1368905f5 100644
--- a/tests/tcg/aarch64/Makefile.softmmu-target
+++ b/tests/tcg/aarch64/Makefile.softmmu-target
@@ -19,6 +19,11 @@ EXTRA_RUNS+=$(MULTIARCH_RUNS)
CFLAGS+=-nostdlib -ggdb -O0 $(MINILIB_INC)
LDFLAGS+=-static -nostdlib $(CRT_OBJS) $(MINILIB_OBJS) -lgcc
+config-cc.mak: Makefile
+ $(quiet-@)( \
+ $(call cc-option,-march=armv8.3-a, CROSS_CC_HAS_ARMV8_3)) 3> config-cc.mak
+-include config-cc.mak
+
# building head blobs
.PRECIOUS: $(CRT_OBJS)
diff --git a/tests/tcg/aarch64/Makefile.target b/tests/tcg/aarch64/Makefile.target
index 9837a809dc..fc8d90ed69 100644
--- a/tests/tcg/aarch64/Makefile.target
+++ b/tests/tcg/aarch64/Makefile.target
@@ -17,6 +17,15 @@ run-fcvt: fcvt
$(call run-test,$<,$(QEMU) $<, "$< on $(TARGET_NAME)")
$(call diff-out,$<,$(AARCH64_SRC)/fcvt.ref)
+config-cc.mak: Makefile
+ $(quiet-@)( \
+ $(call cc-option,-march=armv8.1-a+sve, CROSS_CC_HAS_SVE); \
+ $(call cc-option,-march=armv8.1-a+sve2, CROSS_CC_HAS_SVE2); \
+ $(call cc-option,-march=armv8.3-a, CROSS_CC_HAS_ARMV8_3); \
+ $(call cc-option,-mbranch-protection=standard, CROSS_CC_HAS_ARMV8_BTI); \
+ $(call cc-option,-march=armv8.5-a+memtag, CROSS_CC_HAS_ARMV8_MTE)) 3> config-cc.mak
+-include config-cc.mak
+
# Pauth Tests
ifneq ($(CROSS_CC_HAS_ARMV8_3),)
AARCH64_TESTS += pauth-1 pauth-2 pauth-4 pauth-5
diff --git a/tests/tcg/i386/Makefile.target b/tests/tcg/i386/Makefile.target
index 8380f5846a..6f890ab269 100644
--- a/tests/tcg/i386/Makefile.target
+++ b/tests/tcg/i386/Makefile.target
@@ -5,6 +5,12 @@ I386_SRC=$(SRC_PATH)/tests/tcg/i386
# Set search path for all sources
VPATH += $(I386_SRC)
+config-cc.mak: Makefile
+ $(quiet-@)( \
+ $(call cc-option,-fno-pie, CROSS_CC_HAS_I386_NOPIE)) 3> config-cc.mak
+
+-include config-cc.mak
+
I386_SRCS=$(notdir $(wildcard $(I386_SRC)/*.c))
ALL_X86_TESTS=$(I386_SRCS:.c=)
SKIP_I386_TESTS=test-i386-ssse3
diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
index 7db7a3e2b3..f081f1c683 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -4,6 +4,13 @@
VPATH += $(SRC_PATH)/tests/tcg/ppc64
+config-cc.mak: Makefile
+ $(quiet-@)( \
+ $(call cc-option,-mpower8-vector, CROSS_CC_HAS_POWER8_VECTOR); \
+ $(call cc-option,-mpower10, CROSS_CC_HAS_POWER10)) 3> config-cc.mak
+
+-include config-cc.mak
+
ifneq ($(CROSS_CC_HAS_POWER8_VECTOR),)
PPC64_TESTS=bcdsub non_signalling_xscv
endif
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 14/20] configure: move tests/tcg/Makefile.prereqs to root build directory
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (12 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 13/20] tests/tcg: move compiler tests to Makefiles Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 15/20] configure: unify creation of cross-compilation Makefiles Paolo Bonzini
` (6 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
It will not be specific to tests/tcg anymore, since it will be possible to
build firmware using container-based cross compilers too.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 5 ++++-
configure | 15 +++++++--------
tests/Makefile.include | 3 ---
3 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/Makefile b/Makefile
index ef0fbb4dee..6fd5b6ac06 100644
--- a/Makefile
+++ b/Makefile
@@ -42,6 +42,9 @@ configure: ;
ifneq ($(wildcard config-host.mak),)
include config-host.mak
+include Makefile.prereqs
+Makefile.prereqs: config-host.mak
+
git-submodule-update:
.git-submodule-status: git-submodule-update config-host.mak
Makefile: .git-submodule-status
@@ -217,7 +220,7 @@ qemu-%.tar.bz2:
distclean: clean recurse-distclean
-$(quiet-@)test -f build.ninja && $(NINJA) $(NINJAFLAGS) -t clean -g || :
- rm -f config-host.mak qemu-bundle
+ rm -f config-host.mak Makefile.prereqs qemu-bundle
rm -f tests/tcg/config-*.mak
rm -f config.status
rm -f roms/seabios/config.mak
diff --git a/configure b/configure
index 8d61863432..6dc6a5a48b 100755
--- a/configure
+++ b/configure
@@ -2219,6 +2219,7 @@ write_target_makefile() {
}
write_container_target_makefile() {
+ echo "$1: docker-image-$container_image" >> Makefile.prereqs
echo "EXTRA_CFLAGS=$target_cflags"
if test -n "$container_cross_cc"; then
echo "CC=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
@@ -2331,6 +2332,8 @@ for f in $LINKS ; do
fi
done
+echo "# Automatically generated by configure - do not modify" > Makefile.prereqs
+
# Mac OS X ships with a broken assembler
roms=
if test "$targetos" != "darwin" && test "$targetos" != "sunos" && \
@@ -2556,10 +2559,7 @@ if test "$safe_stack" = "yes"; then
fi
# tests/tcg configuration
-(makefile=tests/tcg/Makefile.prereqs
-echo "# Automatically generated by configure - do not modify" > $makefile
-
-config_host_mak=tests/tcg/config-host.mak
+(config_host_mak=tests/tcg/config-host.mak
mkdir -p tests/tcg
echo "# Automatically generated by configure - do not modify" > $config_host_mak
echo "SRC_PATH=$source_path" >> $config_host_mak
@@ -2592,8 +2592,7 @@ for target in $target_list; do
write_target_makefile >> $config_target_mak
elif test -n "$container_image"; then
build_static=y
- echo "build-tcg-tests-$target: docker-image-$container_image" >> $makefile
- write_container_target_makefile >> $config_target_mak
+ write_container_target_makefile build-tcg-tests-$target >> $config_target_mak
got_cross_cc=yes
fi
if test $got_cross_cc = yes; then
@@ -2603,11 +2602,11 @@ for target in $target_list; do
echo "TARGET=$target" >> $config_target_mak
echo "QEMU=$PWD/$qemu" >> $config_target_mak
echo "BUILD_STATIC=$build_static" >> $config_target_mak
- echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> $makefile
+ echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> Makefile.prereqs
tcg_tests_targets="$tcg_tests_targets $target"
fi
done
-echo "TCG_TESTS_TARGETS=$tcg_tests_targets" >> $makefile)
+echo "TCG_TESTS_TARGETS=$tcg_tests_targets" >> config-host.mak)
if test "$skip_meson" = no; then
cross="config-meson.cross.new"
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 9ed67721e2..9422ddaece 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -36,9 +36,6 @@ export SRC_PATH
SPEED = quick
--include tests/tcg/Makefile.prereqs
-tests/tcg/Makefile.prereqs: config-host.mak
-
# Per guest TCG tests
BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(TCG_TESTS_TARGETS))
CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(TCG_TESTS_TARGETS))
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 15/20] configure: unify creation of cross-compilation Makefiles
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (13 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 14/20] configure: move tests/tcg/Makefile.prereqs to root build directory Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 16/20] configure: cleanup creation of tests/tcg target config Paolo Bonzini
` (5 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Let write_target_makefile handle both host and container cross compilers.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 94 +++++++++++++++++++++++++------------------------------
1 file changed, 43 insertions(+), 51 deletions(-)
diff --git a/configure b/configure
index 6dc6a5a48b..37ddd90bb1 100755
--- a/configure
+++ b/configure
@@ -2191,51 +2191,49 @@ probe_target_compiler() {
write_target_makefile() {
echo "EXTRA_CFLAGS=$target_cflags"
- if test -n "$target_cc"; then
- echo "CC=$target_cc"
- echo "CCAS=$target_ccas"
- fi
- if test -n "$target_ar"; then
- echo "AR=$target_ar"
- fi
- if test -n "$target_as"; then
- echo "AS=$target_as"
- fi
- if test -n "$target_ld"; then
- echo "LD=$target_ld"
- fi
- if test -n "$target_nm"; then
- echo "NM=$target_nm"
- fi
- if test -n "$target_objcopy"; then
- echo "OBJCOPY=$target_objcopy"
- fi
- if test -n "$target_ranlib"; then
- echo "RANLIB=$target_ranlib"
- fi
- if test -n "$target_strip"; then
- echo "STRIP=$target_strip"
+ if test -z "$target_cc" && test -z "$target_as"; then
+ test -z "$container_image" && error_exit "Internal error: could not find cross compiler for $1?"
+ echo "$1: docker-image-$container_image" >> Makefile.prereqs
+ if test -n "$container_cross_cc"; then
+ echo "CC=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
+ echo "CCAS=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
+ fi
+ echo "AR=$docker_py cc --cc $container_cross_ar -i qemu/$container_image -s $source_path --"
+ echo "AS=$docker_py cc --cc $container_cross_as -i qemu/$container_image -s $source_path --"
+ echo "LD=$docker_py cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --"
+ echo "NM=$docker_py cc --cc $container_cross_nm -i qemu/$container_image -s $source_path --"
+ echo "OBJCOPY=$docker_py cc --cc $container_cross_objcopy -i qemu/$container_image -s $source_path --"
+ echo "RANLIB=$docker_py cc --cc $container_cross_ranlib -i qemu/$container_image -s $source_path --"
+ echo "STRIP=$docker_py cc --cc $container_cross_strip -i qemu/$container_image -s $source_path --"
+ else
+ if test -n "$target_cc"; then
+ echo "CC=$target_cc"
+ echo "CCAS=$target_ccas"
+ fi
+ if test -n "$target_ar"; then
+ echo "AR=$target_ar"
+ fi
+ if test -n "$target_as"; then
+ echo "AS=$target_as"
+ fi
+ if test -n "$target_ld"; then
+ echo "LD=$target_ld"
+ fi
+ if test -n "$target_nm"; then
+ echo "NM=$target_nm"
+ fi
+ if test -n "$target_objcopy"; then
+ echo "OBJCOPY=$target_objcopy"
+ fi
+ if test -n "$target_ranlib"; then
+ echo "RANLIB=$target_ranlib"
+ fi
+ if test -n "$target_strip"; then
+ echo "STRIP=$target_strip"
+ fi
fi
}
-write_container_target_makefile() {
- echo "$1: docker-image-$container_image" >> Makefile.prereqs
- echo "EXTRA_CFLAGS=$target_cflags"
- if test -n "$container_cross_cc"; then
- echo "CC=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
- echo "CCAS=$docker_py cc --cc $container_cross_cc -i qemu/$container_image -s $source_path --"
- fi
- echo "AR=$docker_py cc --cc $container_cross_ar -i qemu/$container_image -s $source_path --"
- echo "AS=$docker_py cc --cc $container_cross_as -i qemu/$container_image -s $source_path --"
- echo "LD=$docker_py cc --cc $container_cross_ld -i qemu/$container_image -s $source_path --"
- echo "NM=$docker_py cc --cc $container_cross_nm -i qemu/$container_image -s $source_path --"
- echo "OBJCOPY=$docker_py cc --cc $container_cross_objcopy -i qemu/$container_image -s $source_path --"
- echo "RANLIB=$docker_py cc --cc $container_cross_ranlib -i qemu/$container_image -s $source_path --"
- echo "STRIP=$docker_py cc --cc $container_cross_strip -i qemu/$container_image -s $source_path --"
-}
-
-
-
##########################################
# check for vfio_user_server
@@ -2587,15 +2585,9 @@ for target in $target_list; do
;;
esac
- probe_target_compiler $target
- if test $got_cross_cc = yes; then
- write_target_makefile >> $config_target_mak
- elif test -n "$container_image"; then
- build_static=y
- write_container_target_makefile build-tcg-tests-$target >> $config_target_mak
- got_cross_cc=yes
- fi
- if test $got_cross_cc = yes; then
+ if probe_target_compiler $target || test -n "$container_image"; then
+ test -n "$container_image" && build_static=y
+ write_target_makefile build-tcg-tests-$target >> $config_target_mak
mkdir -p tests/tcg/$target
ln -sf $source_path/tests/tcg/Makefile.target tests/tcg/$target/Makefile
ln -sf ../config-$target.mak tests/tcg/$target/config-target.mak
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 16/20] configure: cleanup creation of tests/tcg target config
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (14 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 15/20] configure: unify creation of cross-compilation Makefiles Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 17/20] configure: build ROMs with container-based cross compilers Paolo Bonzini
` (4 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Remove the symlink to tests/tcg/config-*.mak, which is possible now
that unused target config files are not created anymore.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Makefile | 2 +-
configure | 12 +++++-------
meson.build | 2 +-
3 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
index 6fd5b6ac06..adf24c0236 100644
--- a/Makefile
+++ b/Makefile
@@ -221,7 +221,7 @@ qemu-%.tar.bz2:
distclean: clean recurse-distclean
-$(quiet-@)test -f build.ninja && $(NINJA) $(NINJAFLAGS) -t clean -g || :
rm -f config-host.mak Makefile.prereqs qemu-bundle
- rm -f tests/tcg/config-*.mak
+ rm -f tests/tcg/*/config-target.mak tests/tcg/config-host.mak
rm -f config.status
rm -f roms/seabios/config.mak
rm -f qemu-plugins-ld.symbols qemu-plugins-ld64.symbols
diff --git a/configure b/configure
index 37ddd90bb1..97665ef619 100755
--- a/configure
+++ b/configure
@@ -2567,10 +2567,6 @@ tcg_tests_targets=
for target in $target_list; do
arch=${target%%-*}
- config_target_mak=tests/tcg/config-$target.mak
-
- echo "# Automatically generated by configure - do not modify" > $config_target_mak
- echo "TARGET_NAME=$arch" >> $config_target_mak
case $target in
xtensa*-linux-user)
# the toolchain is not complete with headers, only build softmmu tests
@@ -2587,13 +2583,15 @@ for target in $target_list; do
if probe_target_compiler $target || test -n "$container_image"; then
test -n "$container_image" && build_static=y
- write_target_makefile build-tcg-tests-$target >> $config_target_mak
mkdir -p tests/tcg/$target
+ config_target_mak=tests/tcg/$target/config-target.mak
ln -sf $source_path/tests/tcg/Makefile.target tests/tcg/$target/Makefile
- ln -sf ../config-$target.mak tests/tcg/$target/config-target.mak
+ echo "# Automatically generated by configure - do not modify" > $config_target_mak
+ echo "TARGET_NAME=$arch" >> $config_target_mak
echo "TARGET=$target" >> $config_target_mak
- echo "QEMU=$PWD/$qemu" >> $config_target_mak
+ write_target_makefile build-tcg-tests-$target >> $config_target_mak
echo "BUILD_STATIC=$build_static" >> $config_target_mak
+ echo "QEMU=$PWD/$qemu" >> $config_target_mak
echo "run-tcg-tests-$target: $qemu\$(EXESUF)" >> Makefile.prereqs
tcg_tests_targets="$tcg_tests_targets $target"
fi
diff --git a/meson.build b/meson.build
index 8e927fc457..5cfb352d45 100644
--- a/meson.build
+++ b/meson.build
@@ -3812,7 +3812,7 @@ summary(summary_info, bool_yn: true, section: 'Compilation')
summary_info = {}
have_cross = false
foreach target: target_dirs
- tcg_mak = meson.current_build_dir() / 'tests/tcg' / 'config-' + target + '.mak'
+ tcg_mak = meson.current_build_dir() / 'tests/tcg' / target / 'config-target.mak'
if fs.exists(tcg_mak)
config_cross_tcg = keyval.load(tcg_mak)
if 'CC' in config_cross_tcg
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 17/20] configure: build ROMs with container-based cross compilers
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (15 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 16/20] configure: cleanup creation of tests/tcg target config Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 18/20] pc-bios/optionrom: Adopt meson style Make output Paolo Bonzini
` (3 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
s390-ccw remains a bit more complex, because the -march=z900 test is done
only for the native cross compiler. Otherwise, all that is needed is
to pass the (now mandatory) target argument to write_target_makefile.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/configure b/configure
index 97665ef619..c24d0a1023 100755
--- a/configure
+++ b/configure
@@ -2186,7 +2186,7 @@ probe_target_compiler() {
target_ranlib=
target_strip=
fi
- test -n "$target_cc"
+ test -n "$target_cc" || test -n "$container_image"
}
write_target_makefile() {
@@ -2341,7 +2341,7 @@ if test "$targetos" != "darwin" && test "$targetos" != "sunos" && \
config_mak=pc-bios/optionrom/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "TOPSRC_DIR=$source_path" >> $config_mak
- write_target_makefile >> $config_mak
+ write_target_makefile pc-bios/optionrom/all >> $config_mak
fi
if test "$softmmu" = yes && probe_target_compiler ppc-softmmu; then
@@ -2349,25 +2349,31 @@ if test "$softmmu" = yes && probe_target_compiler ppc-softmmu; then
config_mak=pc-bios/vof/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "SRC_DIR=$source_path/pc-bios/vof" >> $config_mak
- write_target_makefile >> $config_mak
+ write_target_makefile pc-bios/vof/all >> $config_mak
fi
# Only build s390-ccw bios if the compiler has -march=z900 or -march=z10
# (which is the lowest architecture level that Clang supports)
if test "$softmmu" = yes && probe_target_compiler s390x-softmmu; then
- write_c_skeleton
- do_compiler "$target_cc" $target_cc_cflags -march=z900 -o $TMPO -c $TMPC
- has_z900=$?
- if [ $has_z900 = 0 ] || do_compiler "$target_cc" $target_cc_cflags -march=z10 -msoft-float -Werror -o $TMPO -c $TMPC; then
- if [ $has_z900 != 0 ]; then
- echo "WARNING: Your compiler does not support the z900!"
- echo " The s390-ccw bios will only work with guest CPUs >= z10."
+ got_cross_cc=no
+ if test -n "$target_cc"; then
+ write_c_skeleton
+ do_compiler "$target_cc" $target_cc_cflags -march=z900 -o $TMPO -c $TMPC
+ has_z900=$?
+ if [ $has_z900 = 0 ] || do_compiler "$target_cc" $target_cc_cflags -march=z10 -msoft-float -Werror -o $TMPO -c $TMPC; then
+ if [ $has_z900 != 0 ]; then
+ echo "WARNING: Your compiler does not support the z900!"
+ echo " The s390-ccw bios will only work with guest CPUs >= z10."
+ fi
+ got_cross_cc=yes
fi
+ fi
+ if test "$got_cross_cc" = yes || test -n "$container_image"; then
roms="$roms pc-bios/s390-ccw"
config_mak=pc-bios/s390-ccw/config-host.mak
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "SRC_PATH=$source_path/pc-bios/s390-ccw" >> $config_mak
- write_target_makefile >> $config_mak
+ write_target_makefile pc-bios/s390-ccw/all >> $config_mak
# SLOF is required for building the s390-ccw firmware on s390x,
# since it is using the libnet code from SLOF for network booting.
git_submodules="${git_submodules} roms/SLOF"
@@ -2581,7 +2587,7 @@ for target in $target_list; do
;;
esac
- if probe_target_compiler $target || test -n "$container_image"; then
+ if probe_target_compiler $target; then
test -n "$container_image" && build_static=y
mkdir -p tests/tcg/$target
config_target_mak=tests/tcg/$target/config-target.mak
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 18/20] pc-bios/optionrom: Adopt meson style Make output
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (16 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 17/20] configure: build ROMs with container-based cross compilers Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 19/20] pc-bios/s390-ccw: " Paolo Bonzini
` (2 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/optionrom/Makefile | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index f514e4f84b..b1fff0ba6c 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -12,8 +12,8 @@ NULL :=
SPACE := $(NULL) #
TARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR))
-quiet-@ = $(if $(V),,@)
-quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
+quiet-@ = $(if $(V),,@$(if $1,printf "%s\n" "$(TARGET_PREFIX)$1" && ))
+quiet-command = $(call quiet-@,$2 $@)$1
# Flags for dependency generation
override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
@@ -41,19 +41,19 @@ override LDFLAGS = -nostdlib -Wl,-T,$(SRC_DIR)/flat.lds
pvh.img: pvh.o pvh_main.o
%.o: %.S
- $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<,"AS","$@")
+ $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $<,Assembling)
%.o: %.c
- $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@,"CC","$@")
+ $(call quiet-command,$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@,Compiling)
%.img: %.o
- $(call quiet-command,$(CC) $(CFLAGS) $(LDFLAGS) -s -o $@ $^,"BUILD","$@")
+ $(call quiet-command,$(CC) $(CFLAGS) $(LDFLAGS) -s -o $@ $^,Linking)
%.raw: %.img
- $(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,"BUILD","$@")
+ $(call quiet-command,$(OBJCOPY) -O binary -j .text $< $@,Extracting raw object)
%.bin: %.raw
- $(call quiet-command,$(PYTHON) $(TOPSRC_DIR)/scripts/signrom.py $< $@,"SIGN","$@")
+ $(call quiet-command,$(PYTHON) $(TOPSRC_DIR)/scripts/signrom.py $< $@,Computing checksum into)
include $(wildcard *.d)
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 19/20] pc-bios/s390-ccw: Adopt meson style Make output
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (17 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 18/20] pc-bios/optionrom: Adopt meson style Make output Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-08-25 22:27 ` [PATCH 20/20] pc-bios/vof: " Paolo Bonzini
2022-09-26 11:22 ` [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/s390-ccw/Makefile | 12 ++++++------
pc-bios/s390-ccw/netboot.mak | 20 ++++++++++----------
2 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index 965e633f43..10e8f5cb63 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -10,8 +10,8 @@ NULL :=
SPACE := $(NULL) #
TARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR))
-quiet-@ = $(if $(V),,@)
-quiet-command = $(if $(V),$1,$(if $(2),@printf " %-7s %s\n" $2 $3 && $1, @$1))
+quiet-@ = $(if $(V),,@$(if $1,printf "%s\n" "$(TARGET_PREFIX)$1" && ))
+quiet-command = $(call quiet-@,$2 $@)$1
VPATH_SUFFIXES = %.c %.h %.S %.m %.mak %.sh %.rc Kconfig% %.json.in
set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1)))
@@ -22,11 +22,11 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
%.o: %.c
$(call quiet-command,$(CC) $(EXTRA_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) \
- -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ -c -o $@ $<,Compiling)
%.o: %.S
$(call quiet-command,$(CCAS) $(EXTRA_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) \
- -c -o $@ $<,"CCAS","$(TARGET_DIR)$@")
+ -c -o $@ $<,Assembling)
.PHONY : all clean build-all distclean
@@ -58,10 +58,10 @@ LDFLAGS += -Wl,-pie -nostdlib
build-all: s390-ccw.img s390-netboot.img
s390-ccw.elf: $(OBJECTS)
- $(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(OBJECTS),"BUILD","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LDFLAGS) -o $@ $(OBJECTS),Linking)
s390-ccw.img: s390-ccw.elf
- $(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@")
+ $(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,Stripping $< into)
$(OBJECTS): Makefile
diff --git a/pc-bios/s390-ccw/netboot.mak b/pc-bios/s390-ccw/netboot.mak
index ee59a5f4de..046aa35587 100644
--- a/pc-bios/s390-ccw/netboot.mak
+++ b/pc-bios/s390-ccw/netboot.mak
@@ -11,10 +11,10 @@ NETLDFLAGS := $(LDFLAGS) -Wl,-Ttext=0x7800000
$(NETOBJS): EXTRA_CFLAGS += $(LIBC_INC) $(LIBNET_INC)
s390-netboot.elf: $(NETOBJS) libnet.a libc.a
- $(call quiet-command,$(CC) $(NETLDFLAGS) -o $@ $^,"BUILD","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(NETLDFLAGS) -o $@ $^,Linking)
s390-netboot.img: s390-netboot.elf
- $(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,"STRIP","$(TARGET_DIR)$@")
+ $(call quiet-command,$(STRIP) --strip-unneeded $< -o $@,Stripping $< into)
# libc files:
@@ -23,30 +23,30 @@ LIBC_CFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
CTYPE_OBJS = isdigit.o isxdigit.o toupper.o
%.o : $(SLOF_DIR)/lib/libc/ctype/%.c
- $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,Compiling)
STRING_OBJS = strcat.o strchr.o strrchr.o strcpy.o strlen.o strncpy.o \
strcmp.o strncmp.o strcasecmp.o strncasecmp.o strstr.o \
memset.o memcpy.o memmove.o memcmp.o
%.o : $(SLOF_DIR)/lib/libc/string/%.c
- $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,Compiling)
STDLIB_OBJS = atoi.o atol.o strtoul.o strtol.o rand.o malloc.o free.o
%.o : $(SLOF_DIR)/lib/libc/stdlib/%.c
- $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,Compiling)
STDIO_OBJS = sprintf.o snprintf.o vfprintf.o vsnprintf.o vsprintf.o fprintf.o \
printf.o putc.o puts.o putchar.o stdchnls.o fileno.o
%.o : $(SLOF_DIR)/lib/libc/stdio/%.c
- $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,Compiling)
sbrk.o: $(SLOF_DIR)/slof/sbrk.c
- $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBC_CFLAGS) -c -o $@ $<,Compiling)
LIBCOBJS := $(STRING_OBJS) $(CTYPE_OBJS) $(STDLIB_OBJS) $(STDIO_OBJS) sbrk.o
libc.a: $(LIBCOBJS)
- $(call quiet-command,$(AR) -rc $@ $^,"AR","$(TARGET_DIR)$@")
+ $(call quiet-command,$(AR) -rc $@ $^,Creating static library)
# libnet files:
@@ -56,7 +56,7 @@ LIBNETCFLAGS = $(EXTRA_CFLAGS) $(CFLAGS) $(LIBC_INC) $(LIBNET_INC) \
-DDHCPARCH=0x1F -MMD -MP -MT $@ -MF $(@:%.o=%.d)
%.o : $(SLOF_DIR)/lib/libnet/%.c
- $(call quiet-command,$(CC) $(LIBNETCFLAGS) -c -o $@ $<,"CC","$(TARGET_DIR)$@")
+ $(call quiet-command,$(CC) $(LIBNETCFLAGS) -c -o $@ $<,Compiling)
libnet.a: $(LIBNETOBJS)
- $(call quiet-command,$(AR) -rc $@ $^,"AR","$(TARGET_DIR)$@")
+ $(call quiet-command,$(AR) -rc $@ $^,Creating static library)
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 20/20] pc-bios/vof: Adopt meson style Make output
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (18 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 19/20] pc-bios/s390-ccw: " Paolo Bonzini
@ 2022-08-25 22:27 ` Paolo Bonzini
2022-09-26 11:22 ` [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-08-25 22:27 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
pc-bios/vof/Makefile | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/pc-bios/vof/Makefile b/pc-bios/vof/Makefile
index 990f26af31..be8bd96294 100644
--- a/pc-bios/vof/Makefile
+++ b/pc-bios/vof/Makefile
@@ -2,19 +2,26 @@ include config.mak
VPATH=$(SRC_DIR)
all: vof.bin
+NULL :=
+SPACE := $(NULL) #
+TARGET_PREFIX := $(patsubst %/,%:$(SPACE),$(TARGET_DIR))
+
+quiet-@ = $(if $(V),,@$(if $1,,printf "%s\n" "$(TARGET_PREFIX)$1" && ))
+quiet-command = $(call quiet-@,$2 $@)$1
+
EXTRA_CFLAGS += -mcpu=power4
%.o: %.S
- $(CC) $(EXTRA_CFLAGS) -c -o $@ $<
+ $(call quiet-command, $(CC) $(EXTRA_CFLAGS) -c -o $@ $<,Assembling)
%.o: %.c
- $(CC) $(EXTRA_CFLAGS) -c -fno-stack-protector -o $@ $<
+ $(call quiet-command, $(CC) $(EXTRA_CFLAGS) -c -fno-stack-protector -o $@ $<,Compiling)
vof.elf: entry.o main.o ci.o bootmem.o libc.o
- $(LD) -nostdlib -e_start -T$(SRC_DIR)/vof.lds -EB -o $@ $^
+ $(call quiet-command, $(LD) -nostdlib -e_start -T$(SRC_DIR)/vof.lds -EB -o $@ $^,Linking)
%.bin: %.elf
- $(OBJCOPY) -O binary -j .text -j .data -j .toc -j .got2 $^ $@
+ $(call quiet-command, $(OBJCOPY) -O binary -j .text -j .data -j .toc -j .got2 $^ $@,Extracting raw object)
clean:
rm -f *.o vof.bin vof.elf *~
--
2.37.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 00/20] Cross compilation changes for 7.2
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
` (19 preceding siblings ...)
2022-08-25 22:27 ` [PATCH 20/20] pc-bios/vof: " Paolo Bonzini
@ 2022-09-26 11:22 ` Paolo Bonzini
20 siblings, 0 replies; 24+ messages in thread
From: Paolo Bonzini @ 2022-09-26 11:22 UTC (permalink / raw)
To: qemu-devel; +Cc: alex.bennee
Ping (I can also include it in my next pull request if desirable).
Paolo
On Fri, Aug 26, 2022 at 12:27 AM Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> This is a bunch of related changes leading up to building ROMs
> with container-based cross compilers:
>
> - detect pc-bios/ CC options just once instead of using make's $(shell)
> function
>
> - move CC option detection to tests/tcg Makefiles from QEMU's root
> configure
>
> - put all configuration of tests/tcg in config files instead of using
> $(MAKE) VAR=value
>
> - mostly unrelated, change pc-bios/ Make output to look like Meson's
> "Compiling foo.o".
>
> Paolo Bonzini (20):
> configure: do not invoke as/ld directly for pc-bios/optionrom
> pc-bios/optionrom: detect CC options just once
> pc-bios/s390-ccw: detect CC options just once
> vof: add distclean target
> build: add recursive distclean rules
> configure: return status code from probe_target_compiler
> configure: store container engine in config-host.mak
> tests: simplify Makefile invocation for tests/tcg
> tests/tcg: remove -f from Makefile invocation
> tests/tcg: add distclean rule
> tests/tcg: unify ppc64 and ppc64le Makefiles
> tests/tcg: clean up calls to run-test
> tests/tcg: move compiler tests to Makefiles
> configure: move tests/tcg/Makefile.prereqs to root build directory
> configure: unify creation of cross-compilation Makefiles
> configure: cleanup creation of tests/tcg target config
> configure: build ROMs with container-based cross compilers
> pc-bios/optionrom: Adopt meson style Make output
> pc-bios/s390-ccw: Adopt meson style Make output
> pc-bios/vof: Adopt meson style Make output
>
> Makefile | 12 +-
> configure | 251 +++++++-----------
> meson.build | 2 +-
> pc-bios/optionrom/Makefile | 51 ++--
> pc-bios/s390-ccw/Makefile | 43 ++-
> pc-bios/s390-ccw/netboot.mak | 27 +-
> pc-bios/vof/Makefile | 19 +-
> tests/Makefile.include | 24 +-
> tests/docker/Makefile.include | 2 +-
> tests/tcg/Makefile.target | 34 ++-
> tests/tcg/aarch64/Makefile.softmmu-target | 11 +-
> tests/tcg/aarch64/Makefile.target | 15 +-
> tests/tcg/arm/Makefile.target | 9 +-
> tests/tcg/cris/Makefile.target | 2 +-
> tests/tcg/i386/Makefile.softmmu-target | 3 +-
> tests/tcg/i386/Makefile.target | 11 +-
> tests/tcg/multiarch/Makefile.target | 18 +-
> .../multiarch/system/Makefile.softmmu-target | 2 +-
> tests/tcg/ppc64/Makefile.target | 8 +-
> tests/tcg/{ppc64le => ppc64}/bcdsub.c | 0
> tests/tcg/{ppc64le => ppc64}/byte_reverse.c | 0
> tests/tcg/{ppc64le => ppc64}/mffsce.c | 0
> tests/tcg/{ppc64le => ppc64}/mtfsf.c | 0
> .../{ppc64le => ppc64}/non_signalling_xscv.c | 0
> .../signal_save_restore_xer.c | 0
> tests/tcg/{ppc64le => ppc64}/xxspltw.c | 0
> tests/tcg/ppc64le/Makefile.target | 26 +-
> tests/tcg/s390x/Makefile.target | 2 +-
> tests/tcg/x86_64/Makefile.softmmu-target | 3 +-
> 29 files changed, 275 insertions(+), 300 deletions(-)
> rename tests/tcg/{ppc64le => ppc64}/bcdsub.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/byte_reverse.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/mffsce.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/mtfsf.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/non_signalling_xscv.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/signal_save_restore_xer.c (100%)
> rename tests/tcg/{ppc64le => ppc64}/xxspltw.c (100%)
>
> --
> 2.37.1
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom
2022-08-25 22:27 ` [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom Paolo Bonzini
@ 2022-09-26 15:25 ` Alex Bennée
0 siblings, 0 replies; 24+ messages in thread
From: Alex Bennée @ 2022-09-26 15:25 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel
Paolo Bonzini <pbonzini@redhat.com> writes:
> Just use using the compiler binary, with -nostdlib in the case of the
> linker; the compiler driver (whether i686-*-gcc, or x86_64-*-gcc with
> the -m32 option) will then pick the right magic option to as and ld.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 02/20] pc-bios/optionrom: detect CC options just once
2022-08-25 22:27 ` [PATCH 02/20] pc-bios/optionrom: detect CC options just once Paolo Bonzini
@ 2022-09-26 15:27 ` Alex Bennée
0 siblings, 0 replies; 24+ messages in thread
From: Alex Bennée @ 2022-09-26 15:27 UTC (permalink / raw)
To: Paolo Bonzini; +Cc: qemu-devel
Paolo Bonzini <pbonzini@redhat.com> writes:
> In preparation for adding Docker container support, detect compiler options
> just once rather than once per Make run; container startup overhead is
> substantial and doing the detection just once makes things faster.
>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
--
Alex Bennée
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2022-09-26 16:07 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-25 22:27 [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
2022-08-25 22:27 ` [PATCH 01/20] configure: do not invoke as/ld directly for pc-bios/optionrom Paolo Bonzini
2022-09-26 15:25 ` Alex Bennée
2022-08-25 22:27 ` [PATCH 02/20] pc-bios/optionrom: detect CC options just once Paolo Bonzini
2022-09-26 15:27 ` Alex Bennée
2022-08-25 22:27 ` [PATCH 03/20] pc-bios/s390-ccw: " Paolo Bonzini
2022-08-25 22:27 ` [PATCH 04/20] vof: add distclean target Paolo Bonzini
2022-08-25 22:27 ` [PATCH 05/20] build: add recursive distclean rules Paolo Bonzini
2022-08-25 22:27 ` [PATCH 06/20] configure: return status code from probe_target_compiler Paolo Bonzini
2022-08-25 22:27 ` [PATCH 07/20] configure: store container engine in config-host.mak Paolo Bonzini
2022-08-25 22:27 ` [PATCH 08/20] tests: simplify Makefile invocation for tests/tcg Paolo Bonzini
2022-08-25 22:27 ` [PATCH 09/20] tests/tcg: remove -f from Makefile invocation Paolo Bonzini
2022-08-25 22:27 ` [PATCH 10/20] tests/tcg: add distclean rule Paolo Bonzini
2022-08-25 22:27 ` [PATCH 11/20] tests/tcg: unify ppc64 and ppc64le Makefiles Paolo Bonzini
2022-08-25 22:27 ` [PATCH 12/20] tests/tcg: clean up calls to run-test Paolo Bonzini
2022-08-25 22:27 ` [PATCH 13/20] tests/tcg: move compiler tests to Makefiles Paolo Bonzini
2022-08-25 22:27 ` [PATCH 14/20] configure: move tests/tcg/Makefile.prereqs to root build directory Paolo Bonzini
2022-08-25 22:27 ` [PATCH 15/20] configure: unify creation of cross-compilation Makefiles Paolo Bonzini
2022-08-25 22:27 ` [PATCH 16/20] configure: cleanup creation of tests/tcg target config Paolo Bonzini
2022-08-25 22:27 ` [PATCH 17/20] configure: build ROMs with container-based cross compilers Paolo Bonzini
2022-08-25 22:27 ` [PATCH 18/20] pc-bios/optionrom: Adopt meson style Make output Paolo Bonzini
2022-08-25 22:27 ` [PATCH 19/20] pc-bios/s390-ccw: " Paolo Bonzini
2022-08-25 22:27 ` [PATCH 20/20] pc-bios/vof: " Paolo Bonzini
2022-09-26 11:22 ` [PATCH 00/20] Cross compilation changes for 7.2 Paolo Bonzini
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).