[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH 12/12] configure: enable cross compilation of vof
From: |
Paolo Bonzini |
Subject: |
[RFC PATCH 12/12] configure: enable cross compilation of vof |
Date: |
Fri, 29 Apr 2022 16:18:13 +0200 |
While container-based cross compilers are not supported, this already
makes it possible to build vof on any machine that has an installation
of GCC and binutils for 32- or 64-bit PowerPC.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
configure | 10 ++++++++++
pc-bios/vof/Makefile | 17 +++++++++--------
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/configure b/configure
index 6b8e2e2fdb..1db1eef7b1 100755
--- a/configure
+++ b/configure
@@ -2232,6 +2232,7 @@ 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"
LINKS="$LINKS .gdbinit scripts" # scripts needed by relative path in .gdbinit
LINKS="$LINKS tests/avocado tests/data"
LINKS="$LINKS tests/qemu-iotests/check"
@@ -2269,6 +2270,15 @@ if test -n "$target_cc" &&
fi
fi
+probe_target_compilers ppc ppc64
+if test -n "$target_cc" && test "$softmmu" = yes; then
+ roms="$roms vof"
+ 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
+fi
+
# Only build s390-ccw bios the compiler has -march=z900 or -march=z10 (which is
# the lowest architecture level that Clang supports)
probe_target_compiler s390x
diff --git a/pc-bios/vof/Makefile b/pc-bios/vof/Makefile
index aa1678c4d8..391ac0d600 100644
--- a/pc-bios/vof/Makefile
+++ b/pc-bios/vof/Makefile
@@ -1,11 +1,10 @@
-all: build-all
+include config.mak
+VPATH=$(SRC_DIR)
+all: vof.bin
-build-all: vof.bin
-
-CROSS ?=
-CC = $(CROSS)gcc
-LD = $(CROSS)ld
-OBJCOPY = $(CROSS)objcopy
+CC ?= $(CROSS)gcc
+LD ?= $(CROSS)ld
+OBJCOPY ?= $(CROSS)objcopy
%.o: %.S
$(CC) -m32 -mbig-endian -mcpu=power4 -c -o $@ $<
@@ -14,10 +13,12 @@ OBJCOPY = $(CROSS)objcopy
$(CC) -m32 -mbig-endian -mcpu=power4 -c -fno-stack-protector -o $@ $<
vof.elf: entry.o main.o ci.o bootmem.o libc.o
- $(LD) -nostdlib -e_start -Tvof.lds -EB -o $@ $^
+ $(LD) -nostdlib -e_start -T$(SRC_DIR)/vof.lds -EB -o $@ $^
%.bin: %.elf
$(OBJCOPY) -O binary -j .text -j .data -j .toc -j .got2 $^ $@
clean:
rm -f *.o vof.bin vof.elf *~
+
+.PHONY: all clean
--
2.35.1
- [RFC PATCH 00/12] Cross compilation of embedded firmware, Paolo Bonzini, 2022/04/29
- [RFC PATCH 03/12] configure: handle host compiler in probe_target_compiler, Paolo Bonzini, 2022/04/29
- [RFC PATCH 10/12] pc-bios/optionrom: compile with -Wno-array-bounds, Paolo Bonzini, 2022/04/29
- [RFC PATCH 12/12] configure: enable cross compilation of vof,
Paolo Bonzini <=
- [RFC PATCH 02/12] configure: add missing cross compiler fallbacks, Paolo Bonzini, 2022/04/29
- [RFC PATCH 01/12] tests/tcg: merge configure.sh back into main configure script, Paolo Bonzini, 2022/04/29
- [RFC PATCH 04/12] configure: introduce --cross-prefix-*=, Paolo Bonzini, 2022/04/29
- [RFC PATCH 06/12] configure, meson: move symlinking of ROMs to meson, Paolo Bonzini, 2022/04/29
- [RFC PATCH 05/12] configure: include more binutils in tests/tcg makefile, Paolo Bonzini, 2022/04/29