Ticket #13308: boost_asio_symbol_visibility.patch

File boost_asio_symbol_visibility.patch, 3.0 KB (added by Jan Patera <japa@…>, 5 years ago)

Patch for proper handling visibility with gcc and clang

  • boost/asio/detail/pop_options.hpp

    a b  
    2323
    2424// Intel C++
    2525
    26 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    27 #  pragma GCC visibility pop
    28 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    29 
    30 #elif defined(__clang__)
    31 
    32 // Clang
    33 
    34 # if defined(__OBJC__)
    35 #  if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
    36 #   if defined(BOOST_ASIO_OBJC_WORKAROUND)
    37 #    undef Protocol
    38 #    undef id
    39 #    undef BOOST_ASIO_OBJC_WORKAROUND
    40 #   endif
    41 #  endif
    42 # endif
    43 
    44 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
    45 #  pragma GCC visibility pop
    46 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
    47 
    4826#elif defined(__GNUC__)
    4927
    5028// GNU C++
     
    6341#  endif
    6442# endif
    6543
    66 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    67 #  pragma GCC visibility pop
    68 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    69 
    7044#elif defined(__KCC)
    7145
    7246// Kai C++
  • boost/asio/detail/push_options.hpp

    a b  
    2323
    2424// Intel C++
    2525
    26 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    27 #  pragma GCC visibility push (default)
    28 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    29 
    30 #elif defined(__clang__)
    31 
    32 // Clang
    33 
    34 # if defined(__OBJC__)
    35 #  if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
    36 #   if !defined(BOOST_ASIO_DISABLE_OBJC_WORKAROUND)
    37 #    if !defined(Protocol) && !defined(id)
    38 #     define Protocol cpp_Protocol
    39 #     define id cpp_id
    40 #     define BOOST_ASIO_OBJC_WORKAROUND
    41 #    endif
    42 #   endif
    43 #  endif
    44 # endif
    45 
    46 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
    47 #  pragma GCC visibility push (default)
    48 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
    49 
    5026#elif defined(__GNUC__)
    5127
    5228// GNU C++
     
    6743#  endif
    6844# endif
    6945
    70 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    71 #  pragma GCC visibility push (default)
    72 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
    73 
    7446#elif defined(__KCC)
    7547
    7648// Kai C++
  • boost/asio/detail/service_registry.hpp

    a b  
    2727namespace asio {
    2828namespace detail {
    2929
     30#if defined(__GNUC__)
     31# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
     32#  pragma GCC visibility push (default)
     33# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
     34#endif // defined(__GNUC__)
     35
    3036template <typename T>
    3137class typeid_wrapper {};
    3238
     39#if defined(__GNUC__)
     40# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
     41#  pragma GCC visibility pop
     42# endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
     43#endif // defined(__GNUC__)
     44
    3345class service_registry
    3446  : private noncopyable
    3547{