Skip to content
  • Simon McVittie's avatar
    On Unix platforms with gcc (or compatible), hide non-exported symbols · 7d214f4d
    Simon McVittie authored
    This changes the Linux behaviour to match the default situation
    on Windows: symbols without DBUS_EXPORT or DBUS_PRIVATE_EXPORT
    decoration are internal to libdbus-1, and cannot be used by
    other programs, even within the dbus source tree.
    
    This means the compiler/linker can optimize calls to those functions
    by avoiding indirection through the PLT, which should improve
    performance a little. However, the primary purpose of doing this is
    that it means developers building libdbus on Linux are considerably
    less likely to break it on Windows by mistake.
    
    I'm deliberately not adding -fvisbility=hidden in CMake because the
    complexity of doing so is unnecessary: Autotools is the recommended
    way to build dbus for Unix, and the one Unix developers are going
    to use in practice, unless they are specifically checking that they
    haven't broken the CMake build.
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=83115
    
    
    Reviewed-by: default avatarRalf Habacker <ralf.habacker@freenet.de>
    7d214f4d