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