Message ID | 20180614193147.29680-1-richard.henderson@linaro.org |
---|---|
Headers | show |
Series | tcg queued patches | expand |
On 14 June 2018 at 20:31, Richard Henderson <richard.henderson@linaro.org> wrote: > The following changes since commit 2ab09bf2f9f55b9fb8d2de6eb2ba2a8570e268e2: > > Merge remote-tracking branch 'remotes/kraxel/tags/usb-20180612-pull-request' into staging (2018-06-12 15:34:34 +0100) > > are available in the Git repository at: > > https://github.com/rth7680/qemu.git tags/pull-tcg-20180614 > > for you to fetch changes up to ba3e9674da7b60ad627e122a6496d3e13f20c34f: > > tcg: remove tb_lock (2018-06-12 08:26:19 -1000) > > ---------------------------------------------------------------- > Workaround macos assembler lossage. > Eliminate tb_lock. > Hi; I get compile failures with clang I'm afraid (seen on x86-64 Linux, OSX and FreeBSD): /home/petmay01/linaro/qemu-for-merges/accel/tcg/translate-all.c:1800:44: error: incompatible integer to pointer conversion passing 'uintptr_t' (aka 'unsigned long') to parameter of type 'void *' [-Werror,-Wint-conversion] atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); ^~~~~~~~~~~~ /home/petmay01/linaro/qemu-for-merges/include/qemu/atomic.h:134:30: note: expanded from macro 'atomic_set' atomic_set__nocheck(ptr, i); \ ^ /home/petmay01/linaro/qemu-for-merges/include/qemu/atomic.h:130:27: note: expanded from macro 'atomic_set__nocheck' __atomic_store_n(ptr, i, __ATOMIC_RELAXED) ^ 1 error generated. thanks -- PMM
On Fri, Jun 15, 2018 at 11:41:28 +0100, Peter Maydell wrote: > Hi; I get compile failures with clang I'm afraid > (seen on x86-64 Linux, OSX and FreeBSD): > > /home/petmay01/linaro/qemu-for-merges/accel/tcg/translate-all.c:1800:44: > error: incompatible integer to pointer conversion passing 'uintptr_t' > (aka 'unsigned long') to parameter of type 'void *' > [-Werror,-Wint-conversion] > atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); Fixed with: --- a/accel/tcg/translate-all.c +++ b/accel/tcg/translate-all.c @@ -1797,7 +1797,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, uintptr_t orig_aligned = (uintptr_t)gen_code_buf; orig_aligned -= ROUND_UP(sizeof(*tb), qemu_icache_linesize); - atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); + atomic_set(&tcg_ctx->code_gen_ptr, (void *)orig_aligned); return existing_tb; } tcg_tb_insert(tb); This applies to patch 14/18 ("translate-all: discard TB when tb_link_page returns an existing matching TB") of the pull request. The rest compiles OK for me on clang 7.0.0. Richard: can you fold this fixup into patch 14? Thanks, Emilio
On 06/15/2018 04:01 AM, Emilio G. Cota wrote: > On Fri, Jun 15, 2018 at 11:41:28 +0100, Peter Maydell wrote: >> Hi; I get compile failures with clang I'm afraid >> (seen on x86-64 Linux, OSX and FreeBSD): >> >> /home/petmay01/linaro/qemu-for-merges/accel/tcg/translate-all.c:1800:44: >> error: incompatible integer to pointer conversion passing 'uintptr_t' >> (aka 'unsigned long') to parameter of type 'void *' >> [-Werror,-Wint-conversion] >> atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); > > Fixed with: > > --- a/accel/tcg/translate-all.c > +++ b/accel/tcg/translate-all.c > @@ -1797,7 +1797,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu, > uintptr_t orig_aligned = (uintptr_t)gen_code_buf; > > orig_aligned -= ROUND_UP(sizeof(*tb), qemu_icache_linesize); > - atomic_set(&tcg_ctx->code_gen_ptr, orig_aligned); > + atomic_set(&tcg_ctx->code_gen_ptr, (void *)orig_aligned); > return existing_tb; > } > tcg_tb_insert(tb); > > This applies to patch 14/18 ("translate-all: discard TB when > tb_link_page returns an existing matching TB") of the pull request. > > The rest compiles OK for me on clang 7.0.0. > > Richard: can you fold this fixup into patch 14? Will do. r~