Re: [PATCH 0/4] disas: add libvixl to support A64 disassembly

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

 



Am 08.01.2014 00:00, schrieb Peter Maydell:
> On 7 January 2014 22:30, Stefan Weil <sw@xxxxxxxxxxx> 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


_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux