diff mbox

[5/5] target/s390x: Add remaining switches to compile with --disable-tcg

Message ID 1500468850-15571-6-git-send-email-thuth@redhat.com
State New
Headers show

Commit Message

Thomas Huth July 19, 2017, 12:54 p.m. UTC
Adding some CONFIG_TCG tests to be finally able to compile QEMU
on s390x also without TCG.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 target/s390x/Makefile.objs | 6 +++---
 target/s390x/cpu.c         | 4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)

Comments

Richard Henderson July 19, 2017, 6:13 p.m. UTC | #1
On 07/19/2017 02:54 AM, Thomas Huth wrote:
>       cc->has_work = s390_cpu_has_work;
> +#ifdef CONFIG_TCG
>       cc->do_interrupt = s390_cpu_do_interrupt;
> +#endif
>       cc->dump_state = s390_cpu_dump_state;
>       cc->set_pc = s390_cpu_set_pc;
>       cc->gdb_read_register = s390_cpu_gdb_read_register;
> @@ -428,10 +430,12 @@ static void s390_cpu_class_init(ObjectClass *oc, void *data)
>       cc->get_phys_page_debug = s390_cpu_get_phys_page_debug;
>       cc->vmsd = &vmstate_s390_cpu;
>       cc->write_elf64_note = s390_cpu_write_elf64_note;
> +#ifdef CONFIG_TCG
>       cc->cpu_exec_interrupt = s390_cpu_exec_interrupt;
>       cc->debug_excp_handler = s390x_cpu_debug_excp_handler;
>       cc->do_unaligned_access = s390x_cpu_do_unaligned_access;
>   #endif
> +#endif

These ought to be if (tcg_enabled()), surely.


r~
Thomas Huth July 21, 2017, 2:05 p.m. UTC | #2
On 19.07.2017 20:13, Richard Henderson wrote:
> On 07/19/2017 02:54 AM, Thomas Huth wrote:
>>       cc->has_work = s390_cpu_has_work;
>> +#ifdef CONFIG_TCG
>>       cc->do_interrupt = s390_cpu_do_interrupt;
>> +#endif
>>       cc->dump_state = s390_cpu_dump_state;
>>       cc->set_pc = s390_cpu_set_pc;
>>       cc->gdb_read_register = s390_cpu_gdb_read_register;
>> @@ -428,10 +430,12 @@ static void s390_cpu_class_init(ObjectClass *oc,
>> void *data)
>>       cc->get_phys_page_debug = s390_cpu_get_phys_page_debug;
>>       cc->vmsd = &vmstate_s390_cpu;
>>       cc->write_elf64_note = s390_cpu_write_elf64_note;
>> +#ifdef CONFIG_TCG
>>       cc->cpu_exec_interrupt = s390_cpu_exec_interrupt;
>>       cc->debug_excp_handler = s390x_cpu_debug_excp_handler;
>>       cc->do_unaligned_access = s390x_cpu_do_unaligned_access;
>>   #endif
>> +#endif
> 
> These ought to be if (tcg_enabled()), surely.

I've tried that, but it does not work: s390_cpu_class_init() is called
before tcg_exec_init() (where tcg_allowed is initialized). So
tcg_enabled() always returns 0 here. ... so I guess I better keep the
patch in the current shape, especially since x86 is doing it this way,
too: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=79c664f6

 Thomas
diff mbox

Patch

diff --git a/target/s390x/Makefile.objs b/target/s390x/Makefile.objs
index cc2b4c9..f42cd1f 100644
--- a/target/s390x/Makefile.objs
+++ b/target/s390x/Makefile.objs
@@ -1,6 +1,6 @@ 
-obj-y += translate.o helper.o cpu.o interrupt.o
-obj-y += int_helper.o fpu_helper.o cc_helper.o mem_helper.o misc_helper.o
-obj-y += gdbstub.o cpu_models.o cpu_features.o excp_helper.o
+obj-y += cpu.o cpu_models.o cpu_features.o gdbstub.o interrupt.o helper.o
+obj-$(CONFIG_TCG) += translate.o cc_helper.o excp_helper.o fpu_helper.o
+obj-$(CONFIG_TCG) += int_helper.o mem_helper.o misc_helper.o
 obj-$(CONFIG_SOFTMMU) += machine.o ioinst.o arch_dump.o mmu_helper.o diag.o
 obj-$(CONFIG_KVM) += kvm.o
 
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index accef03..489bc25 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -417,7 +417,9 @@  static void s390_cpu_class_init(ObjectClass *oc, void *data)
     cc->reset = s390_cpu_full_reset;
     cc->class_by_name = s390_cpu_class_by_name,
     cc->has_work = s390_cpu_has_work;
+#ifdef CONFIG_TCG
     cc->do_interrupt = s390_cpu_do_interrupt;
+#endif
     cc->dump_state = s390_cpu_dump_state;
     cc->set_pc = s390_cpu_set_pc;
     cc->gdb_read_register = s390_cpu_gdb_read_register;
@@ -428,10 +430,12 @@  static void s390_cpu_class_init(ObjectClass *oc, void *data)
     cc->get_phys_page_debug = s390_cpu_get_phys_page_debug;
     cc->vmsd = &vmstate_s390_cpu;
     cc->write_elf64_note = s390_cpu_write_elf64_note;
+#ifdef CONFIG_TCG
     cc->cpu_exec_interrupt = s390_cpu_exec_interrupt;
     cc->debug_excp_handler = s390x_cpu_debug_excp_handler;
     cc->do_unaligned_access = s390x_cpu_do_unaligned_access;
 #endif
+#endif
     cc->disas_set_info = s390_cpu_disas_set_info;
 
     cc->gdb_num_core_regs = S390_NUM_CORE_REGS;