qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]