c++: add extern declaration to the generated file
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 1 Feb 2018 19:06:55 +0000 (14:06 -0500)
committerDaniel P. Berrangé <berrange@redhat.com>
Fri, 2 Feb 2018 17:04:00 +0000 (17:04 +0000)
commit7779876a6b06755e3bb2c94ee3ded50635bcb0fa
tree526631694e74513076440d1e93bfb70ba0d3a7e6
parent0e0a317889464397d6f1ae03aad0d2ca593aab04
c++: add extern declaration to the generated file

The extern declaration affects how the C++ compiler does name mangling of global
variables.  With:

    $ g++ -c -Wall -std=c++11 -o osx2win32.o osx2win32.cc
    $ nm osx2win32.o | grep code_map_osx_to_win32
    0000000000000000 B code_map_osx_to_win32
    00000000000000a1 t _GLOBAL__sub_I_code_map_osx_to_win32

Without:

    $ g++ -c -Wall -std=c++11 -o osx2win32.o osx2win32.cc
    $ nm osx2win32.o | grep code_map_osx_to_win32
    0000000000000000 b _ZL21code_map_osx_to_win32

Not that unlike C, without "extern" you get a local variable ("b"), while
"extern" is needed to get a global!

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/keymap-gen