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 + 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 + 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 + + #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 - 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 - 1.48.0-7 - Added source source files for mingw cross-compilation of Boost.Locale. - Resolves: #781751