qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 0/4] disas: add libvixl to support A64 disassemb


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH 0/4] disas: add libvixl to support A64 disassembly
Date: Wed, 08 Jan 2014 07:55:49 +0100
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0

Am 08.01.2014 00:00, schrieb Peter Maydell:
> On 7 January 2014 22:30, Stefan Weil <address@hidden> wrote:
>
>> I'd prefer one file disas/aarch64.cc instead of these two files:
>>
>>  disas/aarch64-cxx.cc        |   80
>> +++++++++++++++++++++++++++++++++++++++++++
>>  disas/aarch64.c             |   39 +++++++++++++++++++++
>>
>> This would also allow removing the extern statement in the C++ code (and
>> use a local function).
> See the comment in aarch64-cxx.cc -- to do that we'd need to
> make sure bfd.h was valid for C++ as well as C compilation. This
> came up when Andreas reviewed the RFC and that was Claudio's
> explanation for the split, which is why I added the comment.
>
> Claudio -- do you recall what the exact issue here is?
>
> Specifically, I think the problem is that if we put print_insn_aarch64()
> in the C++ file then we need to have its prototype in bfd.h guarded
> with "extern C {}" if (and only if) we're compiling a C++ file. If
> you care about restricting the C++-isms to the C++ files that's
> a bit ugly. But we could do that if people prefer.
>
> Some experimentation suggests it would also be possible to
> just do
>
> extern "C" {
> #include "disas/bfd.h"
> }
>
> in the C++ file. If that doesn't have any hidden gotchas I don't
> know about it looks like the nicest solution.
>

Adding the extern "C" to include/disas/bfd.h would be even better. It
might be possible to use the glib macros G_BEGIN_DECLS and G_END_DECLSor
__BEGIN_DECLS and __END_DECLS from the C library for this purpose.

Stefan





reply via email to

[Prev in Thread] Current Thread [Next in Thread]