[PATCH] build: fix recurse-all target

Paolo Bonzini posted 1 patch 3 years, 8 months ago
Test docker-quick@centos7 passed
Test docker-mingw@fedora passed
Test checkpatch passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200831125645.29331-1-pbonzini@redhat.com
Maintainers: Cornelia Huck <cohuck@redhat.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Thomas Huth <thuth@redhat.com>
Makefile                   | 4 ++--
pc-bios/optionrom/Makefile | 8 ++------
pc-bios/s390-ccw/Makefile  | 3 ++-
3 files changed, 6 insertions(+), 9 deletions(-)
[PATCH] build: fix recurse-all target
Posted by Paolo Bonzini 3 years, 8 months ago
The missing "/all" suffix prevents the pc-bios/ parts of the build
from running.

In the meanwhile, -Wall has moved from QEMU_CFLAGS to CFLAGS.  Simplify
everything by not passing down CFLAGS, and add -Wall in the recursive
Makefiles.

Reported-by: Miroslav Rezanina <mrezanin@redhat.com>
Fixes: 5e6d1573b4 ("remove Makefile.target", 2020-08-21)
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 Makefile                   | 4 ++--
 pc-bios/optionrom/Makefile | 8 ++------
 pc-bios/s390-ccw/Makefile  | 3 ++-
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/Makefile b/Makefile
index 27bf8156ec..7230f0f1f3 100644
--- a/Makefile
+++ b/Makefile
@@ -186,10 +186,10 @@ ROM_DIRS_RULES=$(foreach t, all clean, $(addsuffix /$(t), $(ROM_DIRS)))
 # Only keep -O and -g cflags
 .PHONY: $(ROM_DIRS_RULES)
 $(ROM_DIRS_RULES):
-	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" CFLAGS="$(filter -O% -g%,$(CFLAGS))" $(notdir $@),)
+	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" $(notdir $@),)
 
 .PHONY: recurse-all recurse-clean
-recurse-all: $(ROM_DIRS)
+recurse-all: $(addsuffix /all, $(ROM_DIRS))
 recurse-clean: $(addsuffix /clean, $(ROM_DIRS))
 
 ######################################################################
diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
index 51cb6ca9d8..6495802d9f 100644
--- a/pc-bios/optionrom/Makefile
+++ b/pc-bios/optionrom/Makefile
@@ -8,15 +8,12 @@ all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
 	@true
 
 include ../../config-host.mak
+CFLAGS = -O2 -g
 
 quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
 cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null >/dev/null 2>&1 && echo OK), $1, $2)
 
-# Compiling with no optimization creates ROMs that are too large
-ifeq ($(lastword $(filter -O%, -O0 $(CFLAGS))),-O0)
-override CFLAGS += -O2
-endif
-override CFLAGS += -march=i486
+override CFLAGS += -march=i486 -Wall
 
 # Flags for dependency generation
 override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
@@ -42,7 +39,6 @@ Wa = -Wa,
 override ASFLAGS += -32
 override CFLAGS += $(call cc-option, $(Wa)-32)
 
-
 LD_I386_EMULATION ?= elf_i386
 override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
 override LDFLAGS += $(LDFLAGS_NOPIE)
diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
index cc0f77baa6..3eb785048a 100644
--- a/pc-bios/s390-ccw/Makefile
+++ b/pc-bios/s390-ccw/Makefile
@@ -3,6 +3,7 @@ all: build-all
 	@true
 
 include ../../config-host.mak
+CFLAGS = -O2 -g
 
 quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
 cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null > /dev/null \
@@ -28,7 +29,7 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
 OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
 	  virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
 
-QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
+QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
 QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
 QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
 QEMU_CFLAGS += -fno-asynchronous-unwind-tables
-- 
2.26.2


Re: [PATCH] build: fix recurse-all target
Posted by Miroslav Rezanina 3 years, 8 months ago
----- Original Message -----
> From: "Paolo Bonzini" <pbonzini@redhat.com>
> To: qemu-devel@nongnu.org
> Cc: thuth@redhat.com, "Miroslav Rezanina" <mrezanin@redhat.com>
> Sent: Monday, August 31, 2020 2:56:45 PM
> Subject: [PATCH] build: fix recurse-all target
> 
> The missing "/all" suffix prevents the pc-bios/ parts of the build
> from running.
> 
> In the meanwhile, -Wall has moved from QEMU_CFLAGS to CFLAGS.  Simplify
> everything by not passing down CFLAGS, and add -Wall in the recursive
> Makefiles.
> 
> Reported-by: Miroslav Rezanina <mrezanin@redhat.com>
> Fixes: 5e6d1573b4 ("remove Makefile.target", 2020-08-21)
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  Makefile                   | 4 ++--
>  pc-bios/optionrom/Makefile | 8 ++------
>  pc-bios/s390-ccw/Makefile  | 3 ++-
>  3 files changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 27bf8156ec..7230f0f1f3 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -186,10 +186,10 @@ ROM_DIRS_RULES=$(foreach t, all clean, $(addsuffix
> /$(t), $(ROM_DIRS)))
>  # Only keep -O and -g cflags
>  .PHONY: $(ROM_DIRS_RULES)
>  $(ROM_DIRS_RULES):
> -	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)"
> TARGET_DIR="$(dir $@)" CFLAGS="$(filter -O% -g%,$(CFLAGS))" $(notdir $@),)
> +	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)"
> TARGET_DIR="$(dir $@)" $(notdir $@),)
>  
>  .PHONY: recurse-all recurse-clean
> -recurse-all: $(ROM_DIRS)
> +recurse-all: $(addsuffix /all, $(ROM_DIRS))
>  recurse-clean: $(addsuffix /clean, $(ROM_DIRS))
>  
>  ######################################################################
> diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
> index 51cb6ca9d8..6495802d9f 100644
> --- a/pc-bios/optionrom/Makefile
> +++ b/pc-bios/optionrom/Makefile
> @@ -8,15 +8,12 @@ all: multiboot.bin linuxboot.bin linuxboot_dma.bin
> kvmvapic.bin pvh.bin
>  	@true
>  
>  include ../../config-host.mak
> +CFLAGS = -O2 -g
>  
>  quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1,
>  @$1))
>  cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null >/dev/null
>  2>&1 && echo OK), $1, $2)
>  
> -# Compiling with no optimization creates ROMs that are too large
> -ifeq ($(lastword $(filter -O%, -O0 $(CFLAGS))),-O0)
> -override CFLAGS += -O2
> -endif
> -override CFLAGS += -march=i486
> +override CFLAGS += -march=i486 -Wall
>  
>  # Flags for dependency generation
>  override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
> @@ -42,7 +39,6 @@ Wa = -Wa,
>  override ASFLAGS += -32
>  override CFLAGS += $(call cc-option, $(Wa)-32)
>  
> -
>  LD_I386_EMULATION ?= elf_i386
>  override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
>  override LDFLAGS += $(LDFLAGS_NOPIE)
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index cc0f77baa6..3eb785048a 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -3,6 +3,7 @@ all: build-all
>  	@true
>  
>  include ../../config-host.mak
> +CFLAGS = -O2 -g
>  
>  quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1,
>  @$1))
>  cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null > /dev/null
>  \
> @@ -28,7 +29,7 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
>  OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
>  	  virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
>  
> -QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
> +QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
>  QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
>  QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
>  QEMU_CFLAGS += -fno-asynchronous-unwind-tables
> --
> 2.26.2
> 
>

Missing roms built with the fix.

Reviewed-by: Miroslav Rezanina <mrezanin@redhat.com> 

-- 
Miroslav Rezanina
Software Engineer - Virtualization Team Maintainer


Re: [PATCH] build: fix recurse-all target
Posted by Thomas Huth 3 years, 8 months ago
On 31/08/2020 14.56, Paolo Bonzini wrote:
> The missing "/all" suffix prevents the pc-bios/ parts of the build
> from running.
> 
> In the meanwhile, -Wall has moved from QEMU_CFLAGS to CFLAGS.  Simplify
> everything by not passing down CFLAGS, and add -Wall in the recursive
> Makefiles.
> 
> Reported-by: Miroslav Rezanina <mrezanin@redhat.com>
> Fixes: 5e6d1573b4 ("remove Makefile.target", 2020-08-21)
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  Makefile                   | 4 ++--
>  pc-bios/optionrom/Makefile | 8 ++------
>  pc-bios/s390-ccw/Makefile  | 3 ++-
>  3 files changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 27bf8156ec..7230f0f1f3 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -186,10 +186,10 @@ ROM_DIRS_RULES=$(foreach t, all clean, $(addsuffix /$(t), $(ROM_DIRS)))
>  # Only keep -O and -g cflags
>  .PHONY: $(ROM_DIRS_RULES)
>  $(ROM_DIRS_RULES):
> -	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" CFLAGS="$(filter -O% -g%,$(CFLAGS))" $(notdir $@),)
> +	$(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $(dir $@) V="$(V)" TARGET_DIR="$(dir $@)" $(notdir $@),)
>  
>  .PHONY: recurse-all recurse-clean
> -recurse-all: $(ROM_DIRS)
> +recurse-all: $(addsuffix /all, $(ROM_DIRS))
>  recurse-clean: $(addsuffix /clean, $(ROM_DIRS))
>  
>  ######################################################################
> diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
> index 51cb6ca9d8..6495802d9f 100644
> --- a/pc-bios/optionrom/Makefile
> +++ b/pc-bios/optionrom/Makefile
> @@ -8,15 +8,12 @@ all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
>  	@true
>  
>  include ../../config-host.mak
> +CFLAGS = -O2 -g
>  
>  quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
>  cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null >/dev/null 2>&1 && echo OK), $1, $2)
>  
> -# Compiling with no optimization creates ROMs that are too large
> -ifeq ($(lastword $(filter -O%, -O0 $(CFLAGS))),-O0)
> -override CFLAGS += -O2
> -endif
> -override CFLAGS += -march=i486
> +override CFLAGS += -march=i486 -Wall
>  
>  # Flags for dependency generation
>  override CPPFLAGS += -MMD -MP -MT $@ -MF $(@D)/$(*F).d
> @@ -42,7 +39,6 @@ Wa = -Wa,
>  override ASFLAGS += -32
>  override CFLAGS += $(call cc-option, $(Wa)-32)
>  
> -
>  LD_I386_EMULATION ?= elf_i386
>  override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
>  override LDFLAGS += $(LDFLAGS_NOPIE)
> diff --git a/pc-bios/s390-ccw/Makefile b/pc-bios/s390-ccw/Makefile
> index cc0f77baa6..3eb785048a 100644
> --- a/pc-bios/s390-ccw/Makefile
> +++ b/pc-bios/s390-ccw/Makefile
> @@ -3,6 +3,7 @@ all: build-all
>  	@true
>  
>  include ../../config-host.mak
> +CFLAGS = -O2 -g
>  
>  quiet-command = $(if $(V),$1,$(if $(2),@printf "  %-7s %s\n" $2 $3 && $1, @$1))
>  cc-option = $(if $(shell $(CC) $1 -S -o /dev/null -xc /dev/null > /dev/null \
> @@ -28,7 +29,7 @@ QEMU_DGFLAGS = -MMD -MP -MT $@ -MF $(@D)/$(*F).d
>  OBJECTS = start.o main.o bootmap.o jump2ipl.o sclp.o menu.o \
>  	  virtio.o virtio-scsi.o virtio-blkdev.o libc.o cio.o dasd-ipl.o
>  
> -QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
> +QEMU_CFLAGS := -Wall $(filter -W%, $(QEMU_CFLAGS))
>  QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
>  QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
>  QEMU_CFLAGS += -fno-asynchronous-unwind-tables
> 

Thanks, this fixes the build of the s390-ccw bios on s390x, too!

Tested-by: Thomas Huth <thuth@redhat.com>