diff mbox series

[v1,3/4] Revert "configure: build ROMs with container-based cross compilers"

Message ID 20221011113417.794841-4-alex.bennee@linaro.org
State Superseded
Headers show
Series testing/next hotfix (revert bios build, mingw) | expand

Commit Message

Alex Bennée Oct. 11, 2022, 11:34 a.m. UTC
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>
---
 configure | 30 ++++++++++++------------------
 1 file changed, 12 insertions(+), 18 deletions(-)

Comments

Daniel Henrique Barboza Oct. 11, 2022, 6:38 p.m. UTC | #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
diff mbox series

Patch

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