From: Avi Kivity <avi@xxxxxxxxxx> Recent qemus no longer load 64-bit elf kernels. Fix by converting to 32-bit elf. Signed-off-by: Avi Kivity <avi@xxxxxxxxxx> diff --git a/config-x86-common.mak b/config-x86-common.mak index b541c1c..c5508b3 100644 --- a/config-x86-common.mak +++ b/config-x86-common.mak @@ -20,9 +20,12 @@ CFLAGS += -m$(bits) libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name) FLATLIBS = lib/libcflat.a $(libgcc) -%.flat: %.o $(FLATLIBS) flat.lds +%.elf: %.o $(FLATLIBS) flat.lds $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,flat.lds $(filter %.o, $^) $(FLATLIBS) +%.flat: %.elf + objcopy -O elf32-i386 $^ $@ + tests-common = $(TEST_DIR)/vmexit.flat $(TEST_DIR)/tsc.flat \ $(TEST_DIR)/smptest.flat $(TEST_DIR)/port80.flat \ $(TEST_DIR)/realmode.flat $(TEST_DIR)/msr.flat \ @@ -35,47 +38,47 @@ test_cases: $(tests-common) $(tests) $(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I lib -I lib/x86 -$(TEST_DIR)/access.flat: $(cstart.o) $(TEST_DIR)/access.o +$(TEST_DIR)/access.elf: $(cstart.o) $(TEST_DIR)/access.o -$(TEST_DIR)/hypercall.flat: $(cstart.o) $(TEST_DIR)/hypercall.o +$(TEST_DIR)/hypercall.elf: $(cstart.o) $(TEST_DIR)/hypercall.o -$(TEST_DIR)/sieve.flat: $(cstart.o) $(TEST_DIR)/sieve.o \ +$(TEST_DIR)/sieve.elf: $(cstart.o) $(TEST_DIR)/sieve.o \ $(TEST_DIR)/vm.o -$(TEST_DIR)/vmexit.flat: $(cstart.o) $(TEST_DIR)/vmexit.o +$(TEST_DIR)/vmexit.elf: $(cstart.o) $(TEST_DIR)/vmexit.o -$(TEST_DIR)/smptest.flat: $(cstart.o) $(TEST_DIR)/smptest.o +$(TEST_DIR)/smptest.elf: $(cstart.o) $(TEST_DIR)/smptest.o -$(TEST_DIR)/emulator.flat: $(cstart.o) $(TEST_DIR)/emulator.o \ +$(TEST_DIR)/emulator.elf: $(cstart.o) $(TEST_DIR)/emulator.o \ $(TEST_DIR)/vm.o $(TEST_DIR)/idt.o -$(TEST_DIR)/port80.flat: $(cstart.o) $(TEST_DIR)/port80.o +$(TEST_DIR)/port80.elf: $(cstart.o) $(TEST_DIR)/port80.o -$(TEST_DIR)/tsc.flat: $(cstart.o) $(TEST_DIR)/tsc.o +$(TEST_DIR)/tsc.elf: $(cstart.o) $(TEST_DIR)/tsc.o -$(TEST_DIR)/apic.flat: $(cstart.o) $(TEST_DIR)/apic.o $(TEST_DIR)/vm.o +$(TEST_DIR)/apic.elf: $(cstart.o) $(TEST_DIR)/apic.o $(TEST_DIR)/vm.o -$(TEST_DIR)/realmode.flat: $(TEST_DIR)/realmode.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.flat: $(cstart.o) $(TEST_DIR)/msr.o +$(TEST_DIR)/msr.elf: $(cstart.o) $(TEST_DIR)/msr.o -$(TEST_DIR)/idt_test.flat: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/idt_test.o +$(TEST_DIR)/idt_test.elf: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/idt_test.o -$(TEST_DIR)/xsave.flat: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/xsave.o +$(TEST_DIR)/xsave.elf: $(cstart.o) $(TEST_DIR)/idt.o $(TEST_DIR)/xsave.o -$(TEST_DIR)/rmap_chain.flat: $(cstart.o) $(TEST_DIR)/rmap_chain.o \ +$(TEST_DIR)/rmap_chain.elf: $(cstart.o) $(TEST_DIR)/rmap_chain.o \ $(TEST_DIR)/vm.o -$(TEST_DIR)/svm.flat: $(cstart.o) $(TEST_DIR)/vm.o +$(TEST_DIR)/svm.elf: $(cstart.o) $(TEST_DIR)/vm.o -$(TEST_DIR)/kvmclock_test.flat: $(cstart.o) $(TEST_DIR)/kvmclock.o \ +$(TEST_DIR)/kvmclock_test.elf: $(cstart.o) $(TEST_DIR)/kvmclock.o \ $(TEST_DIR)/kvmclock_test.o arch_clean: - $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat \ + $(RM) $(TEST_DIR)/*.o $(TEST_DIR)/*.flat $(TEST_DIR)/*.elf \ $(TEST_DIR)/.*.d $(TEST_DIR)/lib/.*.d $(TEST_DIR)/lib/*.o -include $(TEST_DIR)/.*.d lib/.*.d lib/x86/.*.d -- To unsubscribe from this list: send the line "unsubscribe kvm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html