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