[boost] Add underscores around several uses of __attribute__((X))

Petr Machata pmachata at fedoraproject.org
Mon Jan 16 22:29:43 UTC 2012


commit a9044bc779064ad0898e458034a2c75b02676fc9
Author: Petr Machata <pmachata at redhat.com>
Date:   Mon Jan 16 23:26:54 2012 +0100

    Add underscores around several uses of __attribute__((X))

 boost-1.48.0-attribute.patch |  208 ++++++++++++++++++++++++++++++++++++++++++
 boost.spec                   |   11 ++-
 2 files changed, 218 insertions(+), 1 deletions(-)
---
diff --git a/boost-1.48.0-attribute.patch b/boost-1.48.0-attribute.patch
new file mode 100644
index 0000000..95a6f13
--- /dev/null
+++ b/boost-1.48.0-attribute.patch
@@ -0,0 +1,208 @@
+diff -urp boost_1_48_0~/boost/accumulators/statistics/sum_kahan.hpp boost_1_48_0/boost/accumulators/statistics/sum_kahan.hpp
+--- boost_1_48_0~/boost/accumulators/statistics/sum_kahan.hpp	2012-01-16 16:15:24.249239726 +0100
++++ boost_1_48_0/boost/accumulators/statistics/sum_kahan.hpp	2012-01-16 16:18:41.088244223 +0100
+@@ -51,7 +51,7 @@ struct sum_kahan_impl
+     template<typename Args>
+     void 
+ #if BOOST_ACCUMULATORS_GCC_VERSION > 40305
+-    __attribute__((optimize("no-associative-math")))
++    __attribute__((__optimize__("no-associative-math")))
+ #endif
+     operator ()(Args const & args)
+     {
+diff -urp boost_1_48_0~/boost/accumulators/statistics/weighted_sum_kahan.hpp boost_1_48_0/boost/accumulators/statistics/weighted_sum_kahan.hpp
+--- boost_1_48_0~/boost/accumulators/statistics/weighted_sum_kahan.hpp	2012-01-16 16:15:24.271239755 +0100
++++ boost_1_48_0/boost/accumulators/statistics/weighted_sum_kahan.hpp	2012-01-16 16:18:25.408243823 +0100
+@@ -52,7 +52,7 @@ namespace impl
+         template<typename Args>
+         void 
+ #if BOOST_ACCUMULATORS_GCC_VERSION > 40305
+-        __attribute__((optimize("no-associative-math")))
++        __attribute__((__optimize__("no-associative-math")))
+ #endif
+         operator ()(Args const &args)
+         {
+diff -urp boost_1_48_0~/boost/asio/buffers_iterator.hpp boost_1_48_0/boost/asio/buffers_iterator.hpp
+--- boost_1_48_0~/boost/asio/buffers_iterator.hpp	2012-01-16 16:15:26.550239797 +0100
++++ boost_1_48_0/boost/asio/buffers_iterator.hpp	2012-01-16 16:17:45.880243120 +0100
+@@ -128,7 +128,7 @@ public:
+   /// Construct an iterator representing the beginning of the buffers' data.
+   static buffers_iterator begin(const BufferSequence& buffers)
+ #if BOOST_WORKAROUND(__GNUC__, == 4) && BOOST_WORKAROUND(__GNUC_MINOR__, == 3)
+-    __attribute__ ((noinline))
++    __attribute__ ((__noinline__))
+ #endif
+   {
+     buffers_iterator new_iter;
+@@ -148,7 +148,7 @@ public:
+   /// Construct an iterator representing the end of the buffers' data.
+   static buffers_iterator end(const BufferSequence& buffers)
+ #if BOOST_WORKAROUND(__GNUC__, == 4) && BOOST_WORKAROUND(__GNUC_MINOR__, == 3)
+-    __attribute__ ((noinline))
++    __attribute__ ((__noinline__))
+ #endif
+   {
+     buffers_iterator new_iter;
+diff -urp boost_1_48_0~/boost/config/compiler/gcc.hpp boost_1_48_0/boost/config/compiler/gcc.hpp
+--- boost_1_48_0~/boost/config/compiler/gcc.hpp	2012-01-16 16:15:14.643239525 +0100
++++ boost_1_48_0/boost/config/compiler/gcc.hpp	2012-01-16 16:21:24.072247987 +0100
+@@ -120,13 +120,13 @@
+      // _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
+      // so does not define _WIN32 or its variants.
+ #    define BOOST_HAS_DECLSPEC
+-#    define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
+-#    define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
++#    define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
++#    define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
+ #  else
+-#    define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
++#    define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
+ #    define BOOST_SYMBOL_IMPORT
+ #  endif
+-#  define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
++#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
+ #else
+ // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  
+ #  define BOOST_SYMBOL_EXPORT
+diff -urp boost_1_48_0~/boost/exception/detail/attribute_noreturn.hpp boost_1_48_0/boost/exception/detail/attribute_noreturn.hpp
+--- boost_1_48_0~/boost/exception/detail/attribute_noreturn.hpp	2012-01-16 16:15:24.814239755 +0100
++++ boost_1_48_0/boost/exception/detail/attribute_noreturn.hpp	2012-01-16 16:17:41.416242878 +0100
+@@ -9,7 +9,7 @@
+ #if defined(_MSC_VER)
+ #define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
+ #elif defined(__GNUC__)
+-#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))
++#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
+ #else
+ #define BOOST_ATTRIBUTE_NORETURN
+ #endif
+diff -urp boost_1_48_0~/boost/gil/gil_config.hpp boost_1_48_0/boost/gil/gil_config.hpp
+--- boost_1_48_0~/boost/gil/gil_config.hpp	2012-01-16 16:15:29.883239865 +0100
++++ boost_1_48_0/boost/gil/gil_config.hpp	2012-01-16 16:17:49.096243036 +0100
+@@ -32,7 +32,7 @@
+ #if   defined(_MSC_VER)
+ #    define GIL_FORCEINLINE __forceinline
+ #elif defined(__GNUC__) && __GNUC__ > 3
+-#    define GIL_FORCEINLINE inline __attribute__ ((always_inline))
++#    define GIL_FORCEINLINE inline __attribute__ ((__always_inline__))
+ #else
+ #    define GIL_FORCEINLINE inline
+ #endif
+diff -urp boost_1_48_0~/boost/interprocess/offset_ptr.hpp boost_1_48_0/boost/interprocess/offset_ptr.hpp
+--- boost_1_48_0~/boost/interprocess/offset_ptr.hpp	2012-01-16 16:15:22.825239716 +0100
++++ boost_1_48_0/boost/interprocess/offset_ptr.hpp	2012-01-16 16:19:06.241244783 +0100
+@@ -67,7 +67,7 @@ class offset_ptr
+    #if defined(_MSC_VER) && (_MSC_VER >= 1400)
+    __declspec(noinline) //this workaround is needed for msvc-8.0 and msvc-9.0
+    #elif defined (__GNUC__)//this workaround is needed for GCC
+-   __attribute__((noinline))
++   __attribute__((__noinline__))
+    #endif
+    void set_offset(const PointedType *ptr)
+    {
+@@ -87,7 +87,7 @@ class offset_ptr
+    #if defined(_MSC_VER) && (_MSC_VER >= 1400)
+    __declspec(noinline)
+    #elif defined (__GNUC__)
+-   __attribute__((noinline))
++   __attribute__((__noinline__))
+    #endif
+    PointedType * get_pointer() const
+    {
+diff -urp boost_1_48_0~/boost/math/special_functions/detail/lanczos_sse2.hpp boost_1_48_0/boost/math/special_functions/detail/lanczos_sse2.hpp
+--- boost_1_48_0~/boost/math/special_functions/detail/lanczos_sse2.hpp	2012-01-16 16:15:30.509239887 +0100
++++ boost_1_48_0/boost/math/special_functions/detail/lanczos_sse2.hpp	2012-01-16 16:17:52.376243192 +0100
+@@ -13,7 +13,7 @@
+ #include <emmintrin.h>
+ 
+ #if defined(__GNUC__) || defined(__PGI)
+-#define ALIGN16 __attribute__((aligned(16)))
++#define ALIGN16 __attribute__((__aligned__(16)))
+ #else
+ #define ALIGN16 __declspec(align(16))
+ #endif
+diff -urp boost_1_48_0~/boost/optional/optional.hpp boost_1_48_0/boost/optional/optional.hpp
+--- boost_1_48_0~/boost/optional/optional.hpp	2012-01-16 16:15:29.743239804 +0100
++++ boost_1_48_0/boost/optional/optional.hpp	2012-01-16 16:17:47.488242994 +0100
+@@ -127,7 +127,7 @@ class aligned_storage
+     union
+     // This works around GCC warnings about breaking strict aliasing rules when casting storage address to T*
+ #if defined(BOOST_OPTIONAL_DETAIL_USE_ATTRIBUTE_MAY_ALIAS)
+-    __attribute__((may_alias))
++    __attribute__((__may_alias__))
+ #endif
+     dummy_u
+     {
+diff -urp boost_1_48_0~/boost/python/detail/config.hpp boost_1_48_0/boost/python/detail/config.hpp
+--- boost_1_48_0~/boost/python/detail/config.hpp	2012-01-16 16:15:19.994239647 +0100
++++ boost_1_48_0/boost/python/detail/config.hpp	2012-01-16 16:20:20.080246608 +0100
+@@ -76,13 +76,13 @@
+ 
+ #  if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY
+ #     if defined(BOOST_PYTHON_SOURCE)
+-#        define BOOST_PYTHON_DECL __attribute__ ((visibility("default")))
++#        define BOOST_PYTHON_DECL __attribute__ ((__visibility__("default")))
+ #        define BOOST_PYTHON_BUILD_DLL
+ #     else
+ #        define BOOST_PYTHON_DECL
+ #     endif
+ #     define BOOST_PYTHON_DECL_FORWARD
+-#     define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((visibility("default")))
++#     define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((__visibility__("default")))
+ #  elif (defined(_WIN32) || defined(__CYGWIN__))
+ #     if defined(BOOST_PYTHON_SOURCE)
+ #        define BOOST_PYTHON_DECL __declspec(dllexport)
+diff -urp boost_1_48_0~/boost/python/module_init.hpp boost_1_48_0/boost/python/module_init.hpp
+--- boost_1_48_0~/boost/python/module_init.hpp	2012-01-16 16:15:19.969239646 +0100
++++ boost_1_48_0/boost/python/module_init.hpp	2012-01-16 16:20:45.160247063 +0100
+@@ -76,7 +76,7 @@ extern "C" __declspec(dllexport) _BOOST_
+ 
+ #   define BOOST_PYTHON_MODULE_INIT(name)                               \
+   void BOOST_PP_CAT(init_module_,name)();                               \
+-extern "C" __attribute__ ((visibility("default"))) _BOOST_PYTHON_MODULE_INIT(name)
++extern "C" __attribute__ ((__visibility__("default"))) _BOOST_PYTHON_MODULE_INIT(name)
+ 
+ #  else
+ 
+diff -urp boost_1_48_0~/boost/random/detail/integer_log2.hpp boost_1_48_0/boost/random/detail/integer_log2.hpp
+--- boost_1_48_0~/boost/random/detail/integer_log2.hpp	2012-01-16 16:15:24.962239810 +0100
++++ boost_1_48_0/boost/random/detail/integer_log2.hpp	2012-01-16 16:17:44.104242884 +0100
+@@ -27,7 +27,7 @@ namespace detail {
+ #elif defined(BOOST_MSVC)
+ #define BOOST_RANDOM_DETAIL_CONSTEXPR __forceinline
+ #elif defined(__GNUC__) && __GNUC__ >= 4
+-#define BOOST_RANDOM_DETAIL_CONSTEXPR __attribute__((const)) __attribute__((always_inline))
++#define BOOST_RANDOM_DETAIL_CONSTEXPR __attribute__((__const__)) __attribute__((__always_inline__))
+ #else
+ #define BOOST_RANDOM_DETAIL_CONSTEXPR inline
+ #endif
+diff -urp boost_1_48_0~/boost/serialization/force_include.hpp boost_1_48_0/boost/serialization/force_include.hpp
+--- boost_1_48_0~/boost/serialization/force_include.hpp	2012-01-16 16:15:14.172239515 +0100
++++ boost_1_48_0/boost/serialization/force_include.hpp	2012-01-16 16:22:14.424249130 +0100
+@@ -40,11 +40,11 @@
+ #   if defined(__MWERKS__)
+ #       define BOOST_DLLEXPORT __declspec(dllexport)
+ #   elif defined(__GNUC__) && (__GNUC__ >= 3)
+-#       define BOOST_USED __attribute__ ((used))
++#       define BOOST_USED __attribute__ ((__used__))
+ #   elif defined(__IBMCPP__) && (__IBMCPP__ >= 1110)
+-#       define BOOST_USED __attribute__ ((used))
++#       define BOOST_USED __attribute__ ((__used__))
+ #   elif defined(__INTEL_COMPILER) && (BOOST_INTEL_CXX_VERSION >= 800)
+-#       define BOOST_USED __attribute__ ((used))
++#       define BOOST_USED __attribute__ ((__used__))
+ #   endif
+ #endif
+ 
+diff -urp boost_1_48_0~/boost/xpressive/detail/core/adaptor.hpp boost_1_48_0/boost/xpressive/detail/core/adaptor.hpp
+--- boost_1_48_0~/boost/xpressive/detail/core/adaptor.hpp	2012-01-16 16:15:32.315239932 +0100
++++ boost_1_48_0/boost/xpressive/detail/core/adaptor.hpp	2012-01-16 16:17:54.024243179 +0100
+@@ -41,7 +41,7 @@ struct xpression_adaptor
+       && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+         // Ugh, gcc has an optimizer bug which elides this c'tor call
+         // resulting in pure virtual function calls.
+-        __attribute__((noinline))
++        __attribute__((__noinline__))
+     #endif
+       : xpr_(xpr)
+     {
diff --git a/boost.spec b/boost.spec
index 85cb51b..073f644 100644
--- a/boost.spec
+++ b/boost.spec
@@ -28,7 +28,7 @@ Name: boost
 Summary: The free peer-reviewed portable C++ source libraries
 Version: 1.48.0
 %define version_enc 1_48_0
-Release: 7%{?dist}
+Release: 8%{?dist}
 License: Boost and MIT and Python
 
 # The CMake build framework (set of CMakeLists.txt and module.cmake files) is
@@ -114,6 +114,9 @@ Patch7: boost-1.48.0-foreach.patch
 # https://svn.boost.org/trac/boost/ticket/6165
 Patch8: boost-1.48.0-gcc47-pthreads.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=781859
+Patch9: boost-1.48.0-attribute.patch
+
 %bcond_with tests
 %bcond_with docs_generated
 
@@ -480,6 +483,7 @@ sed 's/_FEDORA_SONAME/%{sonamever}/' %{PATCH1} | %{__patch} -p0 --fuzz=0
 %patch6 -p1
 %patch7 -p2
 %patch8 -p0
+%patch9 -p1
 
 %build
 # Support for building tests.
@@ -983,6 +987,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man1/bjam.1*
 
 %changelog
+* Mon Jan 16 2012 Petr Machata <pmachata at redhat.com> - 1.48.0-8
+- Add underscores around several uses of __attribute__((X)) to prevent
+  interactions with user-defined macro X
+- Resolves: #781859
+
 * Sat Jan 14 2012 Denis Arnaud <denis.arnaud_fedora at m4x.org> - 1.48.0-7
 - Added source source files for mingw cross-compilation of Boost.Locale.
 - Resolves: #781751


More information about the scm-commits mailing list