From: Paolo Bonzini <pbonzini@redhat.com>
To: Wei Yang <richard.weiyang@gmail.com>, drjones@redhat.com
Cc: kvm@vger.kernel.org
Subject: Re: [kvm-unit-tests Patch V2] x86: Makefile refine
Date: Tue, 10 May 2016 14:28:48 +0200 [thread overview]
Message-ID: <5731D400.2080909@redhat.com> (raw)
In-Reply-To: <1462713526-2582-1-git-send-email-richard.weiyang@gmail.com>
On 08/05/2016 15:18, Wei Yang wrote:
> In x86 Makefile, each elf target has a rule for its dependent, which shares
> the same pattern. We could let makefile to handle this job instead of
> writing a specific rule for each elf target. By doing so, the makefile rule
> looks clear and would be easy for adding new cases.
>
> This patch does several cleanup:
> 1. add $(cstart.o) in *.elf dependent
> 2. remove all those elf rules which share the same pattern
> 3. remove the *.o dependent in the elf rule who has extra dependent
> 4. move the vmx.elf rule to Makefile.x86_64 since this is not a common case
> 5. remove elf rules in Makefile.i386
> 6. Add %.elf and %.o in .PRECIOUS to keep them after make
>
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>
> ---
> v2:
> add .PRECIOUS special target to keep those intermediate files
Does
-.PRECIOUS: %.elf %.o
+.SECONDARY:
work for you? That is, .SECONDARY without any prefixes? We might even
put it in the toplevel makefile.
Still, the patch looks good, I've queued it.
Paolo
> ---
> x86/Makefile.common | 72 ++++++-----------------------------------------------
> x86/Makefile.i386 | 4 ---
> x86/Makefile.x86_64 | 2 ++
> 3 files changed, 9 insertions(+), 69 deletions(-)
>
> diff --git a/x86/Makefile.common b/x86/Makefile.common
> index 298e5f7..356d879 100644
> --- a/x86/Makefile.common
> +++ b/x86/Makefile.common
> @@ -25,8 +25,11 @@ KEEP_FRAME_POINTER := y
>
> libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
>
> +# We want to keep intermediate file: %.elf and %.o
> +.PRECIOUS: %.elf %.o
> +
> FLATLIBS = lib/libcflat.a $(libgcc)
> -%.elf: %.o $(FLATLIBS) x86/flat.lds
> +%.elf: %.o $(FLATLIBS) x86/flat.lds $(cstart.o)
> $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,x86/flat.lds \
> $(filter %.o, $^) $(FLATLIBS)
>
> @@ -53,77 +56,16 @@ test_cases: $(tests-common) $(tests)
>
> $(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I lib -I lib/x86
>
> -$(TEST_DIR)/access.elf: $(cstart.o) $(TEST_DIR)/access.o
> -
> -$(TEST_DIR)/hypercall.elf: $(cstart.o) $(TEST_DIR)/hypercall.o
> -
> -$(TEST_DIR)/sieve.elf: $(cstart.o) $(TEST_DIR)/sieve.o
> -
> -$(TEST_DIR)/vmexit.elf: $(cstart.o) $(TEST_DIR)/vmexit.o
> -
> -$(TEST_DIR)/smptest.elf: $(cstart.o) $(TEST_DIR)/smptest.o
> -
> -$(TEST_DIR)/emulator.elf: $(cstart.o) $(TEST_DIR)/emulator.o
> -
> -$(TEST_DIR)/port80.elf: $(cstart.o) $(TEST_DIR)/port80.o
> -
> -$(TEST_DIR)/tsc.elf: $(cstart.o) $(TEST_DIR)/tsc.o
> -
> -$(TEST_DIR)/tsc_adjust.elf: $(cstart.o) $(TEST_DIR)/tsc_adjust.o
> -
> -$(TEST_DIR)/apic.elf: $(cstart.o) $(TEST_DIR)/apic.o
> -
> -$(TEST_DIR)/ioapic.elf: $(cstart.o) $(TEST_DIR)/ioapic.o
> -
> -$(TEST_DIR)/tscdeadline_latency.elf: $(cstart.o) $(TEST_DIR)/tscdeadline_latency.o
> -
> -$(TEST_DIR)/init.elf: $(cstart.o) $(TEST_DIR)/init.o
> -
> $(TEST_DIR)/realmode.elf: $(TEST_DIR)/realmode.o
> $(CC) -m32 -nostdlib -o $@ -Wl,-T,$(TEST_DIR)/realmode.lds $^
>
> $(TEST_DIR)/realmode.o: bits = 32
>
> -$(TEST_DIR)/msr.elf: $(cstart.o) $(TEST_DIR)/msr.o
> -
> -$(TEST_DIR)/idt_test.elf: $(cstart.o) $(TEST_DIR)/idt_test.o
> -
> -$(TEST_DIR)/xsave.elf: $(cstart.o) $(TEST_DIR)/xsave.o
> -
> -$(TEST_DIR)/rmap_chain.elf: $(cstart.o) $(TEST_DIR)/rmap_chain.o
> -
> -$(TEST_DIR)/svm.elf: $(cstart.o) $(TEST_DIR)/svm.o
> -
> -$(TEST_DIR)/kvmclock_test.elf: $(cstart.o) $(TEST_DIR)/kvmclock.o \
> - $(TEST_DIR)/kvmclock_test.o
> -
> -$(TEST_DIR)/eventinj.elf: $(cstart.o) $(TEST_DIR)/eventinj.o
> -
> -$(TEST_DIR)/s3.elf: $(cstart.o) $(TEST_DIR)/s3.o
> -
> -$(TEST_DIR)/pmu.elf: $(cstart.o) $(TEST_DIR)/pmu.o
> -
> -$(TEST_DIR)/asyncpf.elf: $(cstart.o) $(TEST_DIR)/asyncpf.o
> -
> -$(TEST_DIR)/pcid.elf: $(cstart.o) $(TEST_DIR)/pcid.o
> -
> -$(TEST_DIR)/smap.elf: $(cstart.o) $(TEST_DIR)/smap.o
> -
> -$(TEST_DIR)/pku.elf: $(cstart.o) $(TEST_DIR)/pku.o
> -
> -$(TEST_DIR)/vmx.elf: $(cstart.o) $(TEST_DIR)/vmx.o $(TEST_DIR)/vmx_tests.o
> -
> -$(TEST_DIR)/debug.elf: $(cstart.o) $(TEST_DIR)/debug.o
> -
> -$(TEST_DIR)/memory.elf: $(cstart.o) $(TEST_DIR)/memory.o
> -
> -$(TEST_DIR)/hyperv_synic.elf: $(cstart.o) $(TEST_DIR)/hyperv.o \
> - $(TEST_DIR)/hyperv_synic.o
> +$(TEST_DIR)/kvmclock_test.elf: $(TEST_DIR)/kvmclock.o
>
> -$(TEST_DIR)/hyperv_stimer.elf: $(cstart.o) $(TEST_DIR)/hyperv.o \
> - $(TEST_DIR)/hyperv_stimer.o
> +$(TEST_DIR)/hyperv_synic.elf: $(TEST_DIR)/hyperv.o
>
> -$(TEST_DIR)/setjmp.elf: $(cstart.o) $(TEST_DIR)/setjmp.o
> +$(TEST_DIR)/hyperv_stimer.elf: $(TEST_DIR)/hyperv.o
>
> arch_clean:
> $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat $(TEST_DIR)/*.elf \
> diff --git a/x86/Makefile.i386 b/x86/Makefile.i386
> index 8a4c45c..c4176c4 100644
> --- a/x86/Makefile.i386
> +++ b/x86/Makefile.i386
> @@ -9,7 +9,3 @@ tests = $(TEST_DIR)/taskswitch.flat $(TEST_DIR)/taskswitch2.flat \
> $(TEST_DIR)/cmpxchg8b.flat
>
> include $(TEST_DIR)/Makefile.common
> -
> -$(TEST_DIR)/cmpxchg8b.elf: $(cstart.o) $(TEST_DIR)/cmpxchg8b.o
> -$(TEST_DIR)/taskswitch.elf: $(cstart.o) $(TEST_DIR)/taskswitch.o
> -$(TEST_DIR)/taskswitch2.elf: $(cstart.o) $(TEST_DIR)/taskswitch2.o
> diff --git a/x86/Makefile.x86_64 b/x86/Makefile.x86_64
> index 6b7ccfb..e166911 100644
> --- a/x86/Makefile.x86_64
> +++ b/x86/Makefile.x86_64
> @@ -16,3 +16,5 @@ tests += $(TEST_DIR)/vmx.flat
> tests += $(TEST_DIR)/tscdeadline_latency.flat
>
> include $(TEST_DIR)/Makefile.common
> +
> +$(TEST_DIR)/vmx.elf: $(TEST_DIR)/vmx_tests.o
>
next prev parent reply other threads:[~2016-05-10 12:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-08 13:18 [kvm-unit-tests Patch V2] x86: Makefile refine Wei Yang
2016-05-09 13:30 ` Andrew Jones
2016-05-10 8:09 ` Laurent Vivier
2016-05-10 9:16 ` Andrew Jones
2016-05-10 10:42 ` Laurent Vivier
2016-05-10 12:28 ` Paolo Bonzini [this message]
2016-05-10 15:31 ` Wei Yang
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=5731D400.2080909@redhat.com \
--to=pbonzini@redhat.com \
--cc=drjones@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=richard.weiyang@gmail.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.