[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v1 3/4] Revert "configure: build ROMs with container-based cr
From: |
Daniel Henrique Barboza |
Subject: |
Re: [PATCH v1 3/4] Revert "configure: build ROMs with container-based cross compilers" |
Date: |
Tue, 11 Oct 2022 15:38:25 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.1 |
On 10/11/22 08:34, Alex Bennée wrote:
This reverts commit 730fe750fba63023e294ff0acf0f874369f1946f.
Unconditionally building all the bios for all arches was a little too
far too fast.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
---
Thanks for this patch. I was having problems building the ppc64 targets in
an x86 Intel Xeon host today. 'make -j' was being spammed with errors like
this:
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:32: strstr.o]
Error 1
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:44: sbrk.o]
Error 1
make[1]: *** [Makefile:24: virtio.o] Error 1
Traceback (most recent call last):
File "/home/danielhb/qemu/tests/docker/docker.py", line 683, in <module>
sys.exit(main())
File "/home/danielhb/qemu/tests/docker/docker.py", line 679, in main
return args.cmdobj.run(args, argv)
File "/home/danielhb/qemu/tests/docker/docker.py", line 657, in run
return Docker().run(cmd, False, quiet=args.quiet,
File "/home/danielhb/qemu/tests/docker/docker.py", line 370, in run
ret = self._do_check(["run", "--rm", "--label",
File "/home/danielhb/qemu/tests/docker/docker.py", line 247, in _do_check
return subprocess.check_call(self._command + cmd, **kwargs)
File "/usr/lib64/python3.9/subprocess.py", line 373, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['podman', 'run', '--rm', '--label',
'com.qemu.instance.uuid=7782aa219ff64bc89847adf489cf49c3', '--userns=keep-id',
'-u', '1005', '-w', '/home/danielhb/qemu/build/pc-bios/s390-ccw', '-v',
'/home/danielhb/qemu/build/pc-bios/s390-ccw:/home/danielhb/qemu/build/pc-bios/s390-ccw:rw',
'-v', '/home/danielhb/qemu:/home/danielhb/qemu:ro,z',
'qemu/debian-s390x-cross', 's390x-linux-gnu-gcc', '-Wall', '-ffreestanding',
'-fno-delete-null-pointer-checks', '-fno-common', '-fPIE', '-fwrapv',
'-fno-strict-aliasing', '-fno-asynchronous-unwind-tables', '-msoft-float',
'-std=gnu99', '-march=z10', '-O2', '-g', '-nostdinc',
'-I/home/danielhb/qemu/pc-bios/s390-ccw/../../roms/SLOF/lib/libc/include',
'-I/home/danielhb/qemu/pc-bios/s390-ccw/../../roms/SLOF/lib/libnet', '-MMD',
'-MP', '-MT', 'rand.o', '-MF', 'rand.d', '-c', '-o', 'rand.o',
'/home/danielhb/qemu/pc-bios/s390-ccw/../../roms/SLOF/lib/libc/stdlib/rand.c']'
returned non-zero exit status 127.
filter=--filter=label=com.qemu.instance.uuid=7782aa219ff64bc89847adf489cf49c3
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:41: fprintf.o]
Error 1
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:32:
strncasecmp.o] Error 1
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:26: isdigit.o]
Error 1
make[1]: *** [/home/danielhb/qemu/pc-bios/s390-ccw/netboot.mak:36: rand.o]
Error 1
make: *** [Makefile:195: pc-bios/s390-ccw/all] Error 2
I don't see this error in my development box though. I was going to check
whether I
was missing packages from one system to the other.
But this patch makes 'make -j' functional again for me.
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
configure | 30 ++++++++++++------------------
1 file changed, 12 insertions(+), 18 deletions(-)
diff --git a/configure b/configure
index baa69189f0..45ee6f4eb3 100755
--- a/configure
+++ b/configure
@@ -2121,7 +2121,7 @@ probe_target_compiler() {
target_ranlib=
target_strip=
fi
- test -n "$target_cc" || test -n "$container_image"
+ test -n "$target_cc"
}
write_target_makefile() {
@@ -2268,7 +2268,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 pc-bios/optionrom/all >> $config_mak
+ write_target_makefile >> $config_mak
fi
if test "$softmmu" = yes && probe_target_compiler ppc-softmmu; then
@@ -2276,31 +2276,25 @@ 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 pc-bios/vof/all >> $config_mak
+ write_target_makefile >> $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
- 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
+ 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
- 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 pc-bios/s390-ccw/all >> $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"
@@ -2488,7 +2482,7 @@ for target in $target_list; do
;;
esac
- if probe_target_compiler $target; then
+ if probe_target_compiler $target || test -n "$container_image"; then
test -n "$container_image" && build_static=y
mkdir -p "tests/tcg/$target"
config_target_mak=tests/tcg/$target/config-target.mak
- [PATCH v1 0/4] testing/next hotfix (revert bios build, mingw), Alex Bennée, 2022/10/11
- [PATCH v1 2/4] tests/docker: update test-mingw to run single build, Alex Bennée, 2022/10/11
- [PATCH v1 3/4] Revert "configure: build ROMs with container-based cross compilers", Alex Bennée, 2022/10/11
- Re: [PATCH v1 3/4] Revert "configure: build ROMs with container-based cross compilers",
Daniel Henrique Barboza <=
- [PATCH v1 4/4] configure: expose the direct container command, Alex Bennée, 2022/10/11
- [PATCH v1 1/4] tests/docker: update fedora-win[32|64]-cross with lcitool, Alex Bennée, 2022/10/11
- Re: [PATCH v1 0/4] testing/next hotfix (revert bios build, mingw), Stefan Hajnoczi, 2022/10/11