[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 00/21] tcg patch queue
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PULL 00/21] tcg patch queue |
Date: |
Mon, 22 Oct 2018 18:47:13 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 |
On 10/21/18 4:21 PM, Peter Maydell wrote:
> On 21 October 2018 at 16:01, Peter Maydell <address@hidden> wrote:
>> Any idea what's going on here? tcg/tcg.h has a comment saying
>> * The cmpxchg functions are only defined if HAVE_CMPXCHG128
>> so presumably the issue is that the helper-a64 code is
>> trying to refer to them anyway. There certainly doesn't
>> seem to be any kind of #defining around the listed functions
>> in helper-a64.c to stop them being compiled in this situation.
>>
>> NB: I build with --enable-debug in this tree -- are you
>> perhaps accidentally relying on the compiler's optimisation
>> to discard these functions if they're not needed?
>
> Adding a #if HAVE_CMPXCHG128 around the helper-a64.c
> functions just pushes the link error back a step to the
> references to those helpers:
> LINK aarch64-softmmu/qemu-system-aarch64w.exe
> tcg/tcg.o:tcg.c:(.rdata+0x9810): undefined reference to
> `helper_paired_cmpxchg64_le_parallel'
> tcg/tcg.o:tcg.c:(.rdata+0x9830): undefined reference to
> `helper_paired_cmpxchg64_be_parallel'
> tcg/tcg.o:tcg.c:(.rdata+0x9840): undefined reference to
> `helper_casp_le_parallel'
> tcg/tcg.o:tcg.c:(.rdata+0x9850): undefined reference to
> `helper_casp_be_parallel'
>
> which in turn I guess is because they're in the array
> of all helpers in tcg.c, so we need to also #if out the
> prototypes in helper-a64.h, which is awkward because
> there we don't have the HAVE_CMPXCHG128 defined...
I spoke with Peter in person today about this. For the list, I've reproduced
the problem, and I'm calling it a mingw bug. A patch against qemu/osdep.h to
fix this once and for all shortly.
r~
- [Qemu-devel] [PULL 18/21] target/s390x: Split do_cdsg, do_lpq, do_stpq, (continued)
- [Qemu-devel] [PULL 18/21] target/s390x: Split do_cdsg, do_lpq, do_stpq, Richard Henderson, 2018/10/16
- [Qemu-devel] [PULL 10/21] cputlb: serialize tlb updates with env->tlb_lock, Richard Henderson, 2018/10/16
- [Qemu-devel] [PULL 20/21] target/s390x: Check HAVE_ATOMIC128 and HAVE_CMPXCHG128 at translate, Richard Henderson, 2018/10/16
- [Qemu-devel] [PULL 11/21] tcg: Add tlb_index and tlb_entry helpers, Richard Henderson, 2018/10/16
- [Qemu-devel] [PULL 19/21] target/s390x: Skip wout, cout helpers if op helper does not return, Richard Henderson, 2018/10/16
- [Qemu-devel] [PULL 21/21] cputlb: read CPUTLBEntry.addr_write atomically, Richard Henderson, 2018/10/16
- Re: [Qemu-devel] [PULL 00/21] tcg patch queue, Peter Maydell, 2018/10/18