Re: [kvm-unit-tests PATCH] x86: Makefile refine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 05, 2016 at 04:03:42PM +0000, 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

This is a nice idea for a cleanup, but it seems to have a not so
nice side-effect. When I tested it I see a new final action occurs.
All x86/*.o and x86/*.elf files that we didn't keep the explicit
rule for (i.e. x86/hyperv_stimer.elf,  x86/hyperv_synic.elf,
x86/kvmclock_test.elf, x86/realmode.elf, x86/vmx.elf) are now
removed. I'd prefer we don't delete anything unless a 'make clean'
is done. Also, for arm, we need to keep the elf files for objdump
to work.

Is there any way to tell make to remove that 'rm'?

Thanks,
drew

> 
> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx>
> 
> ---
> This is based on latest master branch and I just tested this on x86_64
> arch.
> 
> ---
>  x86/Makefile.common |   69 +++------------------------------------------------
>  x86/Makefile.i386   |    4 ---
>  x86/Makefile.x86_64 |    2 ++
>  3 files changed, 6 insertions(+), 69 deletions(-)
> 
> diff --git a/x86/Makefile.common b/x86/Makefile.common
> index 298e5f7..842a9e7 100644
> --- a/x86/Makefile.common
> +++ b/x86/Makefile.common
> @@ -26,7 +26,7 @@ KEEP_FRAME_POINTER := y
>  libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name)
>  
>  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 +53,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
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux