[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