configure: enable cross-compilation of s390-ccw
While container-based cross compilers are not supported, this already makes it possible to build s390-ccw on any machine that has s390x GCC and binutils installed. Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220517092616.1272238-14-pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Thomas Huth <thuth@redhat.com> Message-Id: <20220527153603.887929-25-alex.bennee@linaro.org>
This commit is contained in:
parent
ad38884512
commit
9ffed42614
18
configure
vendored
18
configure
vendored
@ -2231,24 +2231,32 @@ if { test "$cpu" = "i386" || test "$cpu" = "x86_64"; } && \
|
||||
done
|
||||
fi
|
||||
|
||||
# Only build s390-ccw bios if we're on s390x and the compiler has -march=z900
|
||||
# or -march=z10 (which is the lowest architecture level that Clang supports)
|
||||
if test "$cpu" = "s390x" ; then
|
||||
# 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
|
||||
if test -n "$target_cc" && test "$softmmu" = yes; then
|
||||
write_c_skeleton
|
||||
compile_prog "-march=z900" ""
|
||||
do_compiler "$target_cc" $target_cc_cflags -march=z900 -o $TMPO -c $TMPC
|
||||
has_z900=$?
|
||||
if [ $has_z900 = 0 ] || compile_object "-march=z10 -msoft-float -Werror"; then
|
||||
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
|
||||
roms="$roms 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
|
||||
# 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"
|
||||
fi
|
||||
fi
|
||||
|
||||
#######################################
|
||||
# generate config-host.mak
|
||||
|
||||
# Check that the C++ compiler exists and works with the C compiler.
|
||||
# All the QEMU_CXXFLAGS are based on QEMU_CFLAGS. Keep this at the end to don't miss any other that could be added.
|
||||
if has $cxx; then
|
||||
|
@ -2,8 +2,9 @@ all: build-all
|
||||
# Dummy command so that make thinks it has done something
|
||||
@true
|
||||
|
||||
include ../../config-host.mak
|
||||
include config-host.mak
|
||||
CFLAGS = -O2 -g
|
||||
MAKEFLAGS += -rR
|
||||
|
||||
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 \
|
||||
@ -11,7 +12,7 @@ cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \
|
||||
|
||||
VPATH_SUFFIXES = %.c %.h %.S %.m %.mak %.sh %.rc Kconfig% %.json.in
|
||||
set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1)))
|
||||
$(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
|
||||
$(call set-vpath, $(SRC_PATH))
|
||||
|
||||
# Flags for dependency generation
|
||||
QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
|
||||
@ -49,8 +50,8 @@ s390-ccw.img: s390-ccw.elf
|
||||
|
||||
$(OBJECTS): Makefile
|
||||
|
||||
ifneq ($(wildcard $(SRC_PATH)/roms/SLOF/lib/libnet),)
|
||||
include $(SRC_PATH)/pc-bios/s390-ccw/netboot.mak
|
||||
ifneq ($(wildcard $(SRC_PATH)/../../roms/SLOF/lib/libnet),)
|
||||
include $(SRC_PATH)/netboot.mak
|
||||
else
|
||||
s390-netboot.img:
|
||||
@echo "s390-netboot.img not built since roms/SLOF/ is not available."
|
||||
|
@ -1,5 +1,5 @@
|
||||
|
||||
SLOF_DIR := $(SRC_PATH)/roms/SLOF
|
||||
SLOF_DIR := $(SRC_PATH)/../../roms/SLOF
|
||||
|
||||
NETOBJS := start.o sclp.o cio.o virtio.o virtio-net.o jump2ipl.o netmain.o
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user