configure, pc-bios/vof: pass cross CFLAGS correctly

Use the flags passed to the configure script for the ppc cross compiler,
which in fact default to those that are needed to get the 32-bit ISA.
Add the endianness flag so that it remains possible to use a ppc64le
compiler to compile VOF.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2022-06-15 11:42:01 +02:00
parent 75b2447943
commit d44f2f96f7
2 changed files with 7 additions and 14 deletions

13
configure vendored
View File

@ -1858,7 +1858,7 @@ fi
: ${cross_cc_hexagon="hexagon-unknown-linux-musl-clang"} : ${cross_cc_hexagon="hexagon-unknown-linux-musl-clang"}
: ${cross_cc_cflags_hexagon="-mv67 -O2 -static"} : ${cross_cc_cflags_hexagon="-mv67 -O2 -static"}
: ${cross_cc_cflags_i386="-m32"} : ${cross_cc_cflags_i386="-m32"}
: ${cross_cc_cflags_ppc="-m32"} : ${cross_cc_cflags_ppc="-m32 -mbig-endian"}
: ${cross_cc_cflags_ppc64="-m64 -mbig-endian"} : ${cross_cc_cflags_ppc64="-m64 -mbig-endian"}
: ${cross_cc_ppc64le="$cross_cc_ppc64"} : ${cross_cc_ppc64le="$cross_cc_ppc64"}
: ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"} : ${cross_cc_cflags_ppc64le="-m64 -mlittle-endian"}
@ -2059,6 +2059,7 @@ probe_target_compiler() {
compute_target_variable $1 target_strip strip compute_target_variable $1 target_strip strip
case "$1:$cpu" in case "$1:$cpu" in
i386:x86_64 | \ i386:x86_64 | \
ppc*:ppc64 | \
"$cpu:$cpu") "$cpu:$cpu")
: ${target_cc:=$cc} : ${target_cc:=$cc}
: ${target_ccas:=$ccas} : ${target_ccas:=$ccas}
@ -2084,13 +2085,6 @@ probe_target_compiler() {
fi fi
} }
probe_target_compilers() {
for i; do
probe_target_compiler $i
test -n "$target_cc" && return 0
done
}
write_target_makefile() { write_target_makefile() {
if test -n "$target_cc"; then if test -n "$target_cc"; then
echo "CC=$target_cc" echo "CC=$target_cc"
@ -2265,12 +2259,13 @@ if test -n "$target_cc" &&
fi fi
fi fi
probe_target_compilers ppc ppc64 probe_target_compiler ppc
if test -n "$target_cc" && test "$softmmu" = yes; then if test -n "$target_cc" && test "$softmmu" = yes; then
roms="$roms pc-bios/vof" roms="$roms pc-bios/vof"
config_mak=pc-bios/vof/config.mak config_mak=pc-bios/vof/config.mak
echo "# Automatically generated by configure - do not modify" > $config_mak echo "# Automatically generated by configure - do not modify" > $config_mak
echo "SRC_DIR=$source_path/pc-bios/vof" >> $config_mak echo "SRC_DIR=$source_path/pc-bios/vof" >> $config_mak
echo "EXTRA_CFLAGS=$target_cflags" >> $config_mak
write_target_makefile >> $config_mak write_target_makefile >> $config_mak
fi fi

View File

@ -2,15 +2,13 @@ include config.mak
VPATH=$(SRC_DIR) VPATH=$(SRC_DIR)
all: vof.bin all: vof.bin
CC ?= $(CROSS)gcc EXTRA_CFLAGS += -mcpu=power4
LD ?= $(CROSS)ld
OBJCOPY ?= $(CROSS)objcopy
%.o: %.S %.o: %.S
$(CC) -m32 -mbig-endian -mcpu=power4 -c -o $@ $< $(CC) $(EXTRA_CFLAGS) -c -o $@ $<
%.o: %.c %.o: %.c
$(CC) -m32 -mbig-endian -mcpu=power4 -c -fno-stack-protector -o $@ $< $(CC) $(EXTRA_CFLAGS) -c -fno-stack-protector -o $@ $<
vof.elf: entry.o main.o ci.o bootmem.o libc.o vof.elf: entry.o main.o ci.o bootmem.o libc.o
$(LD) -nostdlib -e_start -T$(SRC_DIR)/vof.lds -EB -o $@ $^ $(LD) -nostdlib -e_start -T$(SRC_DIR)/vof.lds -EB -o $@ $^