From: Nicholas Piggin <npiggin@gmail.com>
To: Thomas Huth <thuth@redhat.com>
Cc: Nicholas Piggin <npiggin@gmail.com>,
Andrew Jones <andrew.jones@linux.dev>,
kvm@vger.kernel.org
Subject: [kvm-unit-tests PATCH 3/4] build: Make build output pretty
Date: Sun, 2 Jun 2024 22:25:57 +1000 [thread overview]
Message-ID: <20240602122559.118345-4-npiggin@gmail.com> (raw)
In-Reply-To: <20240602122559.118345-1-npiggin@gmail.com>
Unless make V=1 is specified, silence make recipe echoing and print
an abbreviated line for major build steps.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
Makefile | 14 ++++++++++++++
arm/Makefile.common | 7 +++++++
powerpc/Makefile.common | 11 +++++++----
riscv/Makefile | 5 +++++
s390x/Makefile | 18 +++++++++++++++++-
scripts/mkstandalone.sh | 2 +-
x86/Makefile.common | 5 +++++
7 files changed, 56 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
index 5b7998b79..cbb2fdbf1 100644
--- a/Makefile
+++ b/Makefile
@@ -9,6 +9,11 @@ include config.mak
# Set search path for all sources
VPATH = $(SRCDIR)
+V=0
+ifeq ($V, 0)
+.SILENT:
+endif
+
libdirs-get = $(shell [ -d "lib/$(1)" ] && echo "lib/$(1) lib/$(1)/asm")
ARCH_LIBDIRS := $(call libdirs-get,$(ARCH_LIBDIR)) $(call libdirs-get,$(TEST_DIR))
OBJDIRS := $(ARCH_LIBDIRS)
@@ -95,11 +100,13 @@ autodepend-flags = -MMD -MP -MF $(dir $*).$(notdir $*).d
LDFLAGS += -nostdlib $(no_pie) -z noexecstack
$(libcflat): $(cflatobjs)
+ @echo " [AR] $@"
$(AR) rcs $@ $^
include $(LIBFDT_srcdir)/Makefile.libfdt
$(LIBFDT_archive): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -Wno-sign-compare
$(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS))
+ @echo " [AR] $@"
$(AR) rcs $@ $^
libfdt_clean: VECHO = echo " "
@@ -112,7 +119,12 @@ libfdt_clean: SHAREDLIB_EXT = so
directories:
@mkdir -p $(OBJDIRS)
+%.o: %.c
+ @echo " [CC] $@"
+ $(CC) $(CFLAGS) -c -nostdlib -o $@ $<
+
%.o: %.S
+ @echo " [AS] $@"
$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
-include */.*.d */*/.*.d
@@ -123,6 +135,7 @@ standalone: all
@scripts/mkstandalone.sh
install: standalone
+ @echo " [INSTALL] tests -> $(DESTDIR)"
mkdir -p $(DESTDIR)
install tests/* $(DESTDIR)
@@ -136,6 +149,7 @@ distclean: clean
cscope: cscope_dirs = lib lib/libfdt lib/linux $(TEST_DIR) $(ARCH_LIBDIRS) lib/asm-generic
cscope:
+ @echo " [CSCOPE]"
$(RM) ./cscope.*
find -L $(cscope_dirs) -maxdepth 1 \
-name '*.[chsS]' -exec realpath --relative-base=$(CURDIR) {} \; | sort -u > ./cscope.files
diff --git a/arm/Makefile.common b/arm/Makefile.common
index f828dbe01..9d6b31239 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -73,15 +73,18 @@ FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libeabi)
ifeq ($(CONFIG_EFI),y)
%.aux.o: $(SRCDIR)/lib/auxinfo.c
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -o $@ $< \
-DPROGNAME=\"$(@:.aux.o=.efi)\" -DAUXFLAGS=$(AUXFLAGS)
%.so: EFI_LDFLAGS += -defsym=EFI_SUBSYSTEM=0xa --no-undefined
%.so: %.o $(FLATLIBS) $(SRCDIR)/arm/efi/elf_aarch64_efi.lds $(cstart.o) %.aux.o
+ @echo " [LD] $@"
$(LD) $(EFI_LDFLAGS) -o $@ -T $(SRCDIR)/arm/efi/elf_aarch64_efi.lds \
$(filter %.o, $^) $(FLATLIBS) $(EFI_LIBS)
%.efi: %.so
+ @echo " [OBJCOPY] $@"
$(call arch_elf_check, $^)
$(OBJCOPY) --only-keep-debug $^ $@.debug
$(OBJCOPY) --strip-debug $^
@@ -93,22 +96,26 @@ ifeq ($(CONFIG_EFI),y)
-O binary $^ $@
else
%.aux.o: $(SRCDIR)/lib/auxinfo.c
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -o $@ $< \
-DPROGNAME=\"$(@:.aux.o=.flat)\" -DAUXFLAGS=$(AUXFLAGS)
%.elf: LDFLAGS += $(arch_LDFLAGS)
%.elf: %.o $(FLATLIBS) $(SRCDIR)/arm/flat.lds $(cstart.o) %.aux.o
+ @echo " [LD] $@"
$(LD) $(LDFLAGS) -o $@ -T $(SRCDIR)/arm/flat.lds \
$(filter %.o, $^) $(FLATLIBS)
@chmod a-x $@
%.flat: %.elf
+ @echo " [OBJCOPY] $@"
$(call arch_elf_check, $^)
$(OBJCOPY) -O binary $^ $@
@chmod a-x $@
endif
$(libeabi): $(eabiobjs)
+ @echo " [AR] $@"
$(AR) rcs $@ $^
arm_clean: asm_offsets_clean
diff --git a/powerpc/Makefile.common b/powerpc/Makefile.common
index 68165fc25..b0af9fc00 100644
--- a/powerpc/Makefile.common
+++ b/powerpc/Makefile.common
@@ -51,31 +51,34 @@ cflatobjs += lib/powerpc/smp.o
OBJDIRS += lib/powerpc
%.aux.o: $(SRCDIR)/lib/auxinfo.c
+ @echo " [LD] $@"
$(CC) $(CFLAGS) -c -o $@ $< -DPROGNAME=\"$(@:.aux.o=.elf)\"
FLATLIBS = $(libcflat) $(LIBFDT_archive)
%.elf: CFLAGS += $(arch_CFLAGS)
%.elf: LDFLAGS += $(arch_LDFLAGS) -pie -n
%.elf: %.o $(FLATLIBS) $(SRCDIR)/powerpc/flat.lds $(cstart.o) $(reloc.o) %.aux.o
+ @echo " [LD] $@"
$(LD) $(LDFLAGS) -o $@ \
-T $(SRCDIR)/powerpc/flat.lds --build-id=none \
$(filter %.o, $^) $(FLATLIBS)
@chmod a-x $@
- @echo -n Checking $@ for unsupported reloc types...
@if $(OBJDUMP) -R $@ | grep R_ | grep -v R_PPC64_RELATIVE; then \
+ @echo "Unsupported reloc types in $@" \
false; \
- else \
- echo " looks good."; \
fi
$(TEST_DIR)/boot_rom.bin: $(TEST_DIR)/boot_rom.elf
- dd if=/dev/zero of=$@ bs=256 count=1
+ @echo " [DD] $@"
+ dd if=/dev/zero of=$@ bs=256 count=1 status=none
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -O binary $^ $@.tmp
cat $@.tmp >> $@
$(RM) $@.tmp
$(TEST_DIR)/boot_rom.elf: CFLAGS = -mbig-endian
$(TEST_DIR)/boot_rom.elf: $(TEST_DIR)/boot_rom.o
+ @echo " [LD] $@"
$(LD) -EB -nostdlib -Ttext=0x100 --entry=start --build-id=none -o $@ $<
@chmod a-x $@
diff --git a/riscv/Makefile b/riscv/Makefile
index 919a3ebb5..ca33d4960 100644
--- a/riscv/Makefile
+++ b/riscv/Makefile
@@ -82,6 +82,7 @@ asm-offsets = lib/riscv/asm-offsets.h
include $(SRCDIR)/scripts/asm-offsets.mak
%.aux.o: $(SRCDIR)/lib/auxinfo.c
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -o $@ $< \
-DPROGNAME=\"$(notdir $(@:.aux.o=.$(exe)))\" -DAUXFLAGS=$(AUXFLAGS)
@@ -96,10 +97,12 @@ cflatobjs += lib/efi.o
%.so: EFI_LDFLAGS += -defsym=EFI_SUBSYSTEM=0xa --no-undefined
%.so: %.o $(FLATLIBS) $(SRCDIR)/riscv/efi/elf_riscv64_efi.lds $(cstart.o) %.aux.o
+ @echo " [LD] $@"
$(LD) $(EFI_LDFLAGS) -o $@ -T $(SRCDIR)/riscv/efi/elf_riscv64_efi.lds \
$(filter %.o, $^) $(FLATLIBS) $(EFI_LIBS)
%.efi: %.so
+ @echo " [OBJCOPY] $@"
$(call arch_elf_check, $^)
$(OBJCOPY) --only-keep-debug $^ $@.debug
$(OBJCOPY) --strip-debug $^
@@ -112,11 +115,13 @@ cflatobjs += lib/efi.o
else
%.elf: LDFLAGS += -pie -n -z notext
%.elf: %.o $(FLATLIBS) $(SRCDIR)/riscv/flat.lds $(cstart.o) %.aux.o
+ @echo " [LD] $@"
$(LD) $(LDFLAGS) -o $@ -T $(SRCDIR)/riscv/flat.lds \
$(filter %.o, $^) $(FLATLIBS)
@chmod a-x $@
%.flat: %.elf
+ @echo " [OBJCOPY] $@"
$(call arch_elf_check, $^)
$(OBJCOPY) -O binary $^ $@
@chmod a-x $@
diff --git a/s390x/Makefile b/s390x/Makefile
index 8603a523c..19c41a2ec 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -148,42 +148,54 @@ endif
# the asm/c snippets %.o have additional generated files as dependencies
$(SNIPPET_DIR)/asm/%.o: $(SNIPPET_DIR)/asm/%.S $(asm-offsets)
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
$(SNIPPET_DIR)/c/%.o: $(SNIPPET_DIR)/c/%.c $(asm-offsets)
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
$(SNIPPET_DIR)/asm/%.gbin: $(SNIPPET_DIR)/asm/%.o $(SNIPPET_DIR)/asm/flat.lds
+ @echo " [LD] $@"
$(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/asm/flat.lds $<
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@
truncate -s '%4096' $@
$(SNIPPET_DIR)/c/%.gbin: $(SNIPPET_DIR)/c/%.o $(snippet_lib) $(FLATLIBS) $(SNIPPET_DIR)/c/flat.lds
+ @echo " [LD] $@"
$(CC) $(LDFLAGS) -o $@ -T $(SNIPPET_DIR)/c/flat.lds $< $(snippet_lib) $(FLATLIBS)
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -O binary -j ".rodata" -j ".lowcore" -j ".text" -j ".data" -j ".bss" --set-section-flags .bss=alloc,load,contents $@ $@
truncate -s '%4096' $@
%.hdr: %.gbin $(HOST_KEY_DOCUMENT)
+ @echo " [SEHDR ] $@"
$(GEN_SE_HEADER) -k $(HOST_KEY_DOCUMENT) -c $<,0x0,0x00000000000000420000000000000000 --psw-addr 0x4000 -o $@
.SECONDARY:
%.gobj: %.gbin
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@
.SECONDARY:
%.hdr.obj: %.hdr
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -I binary -O elf64-s390 -B "s390:64-bit" $< $@
lds-autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d -MT $@
%.lds: %.lds.S $(asm-offsets)
+ @echo " [CPP] $@"
$(CPP) $(lds-autodepend-flags) $(CPPFLAGS) -P -C -o $@ $<
%.aux.o: $(SRCDIR)/lib/auxinfo.c
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -o $@ $< -DPROGNAME=\"$(@:.aux.o=.elf)\"
.SECONDEXPANSION:
%.elf: $(FLATLIBS) $(asmlib) $(SRCDIR)/s390x/flat.lds $$(snippets-obj) $$(snippet-hdr-obj) %.o %.aux.o
- @$(CC) $(LDFLAGS) -o $@ -T $(SRCDIR)/s390x/flat.lds \
+ @echo " [CC] $@"
+ $(CC) $(LDFLAGS) -o $@ -T $(SRCDIR)/s390x/flat.lds \
$(filter %.o, $^) $(FLATLIBS) $(snippets-obj) $(snippet-hdr-obj) || \
{ echo "Failure probably caused by missing definition of gen-se-header executable"; exit 1; }
@chmod a-x $@
@@ -192,9 +204,11 @@ lds-autodepend-flags = -MMD -MF $(dir $*).$(notdir $*).d -MT $@
# 32 bytes of key material, uses existing one if available
comm-key = $(TEST_DIR)/comm.key
$(comm-key):
+ @echo " [DD] $@"
dd if=/dev/urandom of=$@ bs=32 count=1 status=none
%.bin: %.elf
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -O binary $< $@
# The genprotimg arguments for the cck changed over time so we need to
@@ -216,10 +230,12 @@ endif
$(patsubst %.parmfile,%.pv.bin,$(wildcard s390x/*.parmfile)): %.pv.bin: %.parmfile
%.pv.bin: %.bin $(HOST_KEY_DOCUMENT) $(comm-key)
+ @echo " [GENPROT] $@"
$(eval parmfile_args = $(if $(filter %.parmfile,$^),--parmfile $(filter %.parmfile,$^),))
$(GENPROTIMG) --host-key-document $(HOST_KEY_DOCUMENT) --no-verify $(GENPROTIMG_COMM_OPTION) $(comm-key) --x-pcf $(GENPROTIMG_PCF) $(parmfile_args) --image $(filter %.bin,$^) -o $@
$(snippet_asmlib): $$(patsubst %.o,%.S,$$@) $(asm-offsets)
+ @echo " [CC] $@"
$(CC) $(CFLAGS) -c -nostdlib -o $@ $<
diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
index 2318a85f0..3307c25b1 100755
--- a/scripts/mkstandalone.sh
+++ b/scripts/mkstandalone.sh
@@ -94,7 +94,7 @@ function mkstandalone()
generate_test "$@" > $standalone
chmod +x $standalone
- echo Written $standalone.
+ echo " [WRITE] $standalone"
}
if [ "$ENVIRON_DEFAULT" = "yes" ] && [ "$ERRATATXT" ] && [ ! -f "$ERRATATXT" ]; then
diff --git a/x86/Makefile.common b/x86/Makefile.common
index 4ae9a5579..96fb0660c 100644
--- a/x86/Makefile.common
+++ b/x86/Makefile.common
@@ -49,11 +49,13 @@ ifeq ($(CONFIG_EFI),y)
.PRECIOUS: %.efi %.so
%.so: %.o $(FLATLIBS) $(SRCDIR)/x86/efi/elf_x86_64_efi.lds $(cstart.o)
+ @echo " [LD] $@"
$(LD) -T $(SRCDIR)/x86/efi/elf_x86_64_efi.lds $(EFI_LDFLAGS) -o $@ \
$(filter %.o, $^) $(FLATLIBS)
@chmod a-x $@
%.efi: %.so
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) --only-keep-debug $^ $@.debug
$(OBJCOPY) --strip-debug $^
$(OBJCOPY) --add-gnu-debuglink=$@.debug $^
@@ -67,11 +69,13 @@ else
%.elf: LDFLAGS += $(arch_LDFLAGS)
%.elf: %.o $(FLATLIBS) $(SRCDIR)/x86/flat.lds $(cstart.o)
+ @echo " [LD] $@"
$(LD) $(LDFLAGS) -T $(SRCDIR)/x86/flat.lds -o $@ \
$(filter %.o, $^) $(FLATLIBS)
@chmod a-x $@
%.flat: %.elf
+ @echo " [OBJCOPY] $@"
$(OBJCOPY) -O elf32-i386 $^ $@
@chmod a-x $@
endif
@@ -104,6 +108,7 @@ test_cases: $(tests-common) $(tests)
$(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/x86 -I lib
$(TEST_DIR)/realmode.elf: $(TEST_DIR)/realmode.o
+ @echo " [LD] $@"
$(LD) -m elf_i386 -nostdlib -o $@ \
-T $(SRCDIR)/$(TEST_DIR)/realmode.lds $^
--
2.43.0
next prev parent reply other threads:[~2024-06-02 12:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-02 12:25 [kvm-unit-tests PATCH 0/4] powerpc fix and misc docs/build/CI improvements Nicholas Piggin
2024-06-02 12:25 ` [kvm-unit-tests PATCH 1/4] powerpc/sprs: Fix report_kfail call Nicholas Piggin
2024-06-03 4:22 ` Thomas Huth
2024-06-02 12:25 ` [kvm-unit-tests PATCH 2/4] doc: update unittests doc Nicholas Piggin
2024-06-03 4:24 ` Thomas Huth
2024-06-03 6:47 ` Andrew Jones
2024-06-03 8:12 ` Nicholas Piggin
2024-06-03 8:45 ` Andrew Jones
2024-06-02 12:25 ` Nicholas Piggin [this message]
2024-06-03 7:00 ` [kvm-unit-tests PATCH 3/4] build: Make build output pretty Andrew Jones
2024-06-03 8:26 ` Thomas Huth
2024-06-03 8:56 ` Andrew Jones
2024-06-05 0:38 ` Nicholas Piggin
2024-06-12 10:32 ` Thomas Huth
2024-06-14 1:07 ` Nicholas Piggin
2024-06-04 5:05 ` Nicholas Piggin
2024-06-02 12:25 ` [kvm-unit-tests PATCH 4/4] gitlab-ci: Always save artifacts Nicholas Piggin
2024-06-03 4:29 ` Thomas Huth
2024-06-03 8:17 ` Nicholas Piggin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240602122559.118345-4-npiggin@gmail.com \
--to=npiggin@gmail.com \
--cc=andrew.jones@linux.dev \
--cc=kvm@vger.kernel.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.