[arch-commits] Commit in boost/trunk (4 files)
Kevin Piche
kevin at archlinux.org
Tue Jul 1 23:00:44 UTC 2008
Date: Tuesday, July 1, 2008 @ 19:00:18
Author: kevin
Revision: 3878
upgpkg: boost 1.35.0-1
Modified:
boost/trunk/PKGBUILD
Deleted:
boost/trunk/05_all_1.34.1-function.patch
boost/trunk/07_all_1.34.1-CVE-2008-0171_and_0172.patch
boost/trunk/gcc-4.3.patch
--------------------------------------------+
05_all_1.34.1-function.patch | 704 ---------------------------
07_all_1.34.1-CVE-2008-0171_and_0172.patch | 50 -
PKGBUILD | 22
gcc-4.3.patch | 176 ------
4 files changed, 6 insertions(+), 946 deletions(-)
Deleted: 05_all_1.34.1-function.patch
===================================================================
--- 05_all_1.34.1-function.patch 2008-07-01 22:25:49 UTC (rev 3877)
+++ 05_all_1.34.1-function.patch 2008-07-01 23:00:18 UTC (rev 3878)
@@ -1,704 +0,0 @@
-diff -Naur boost_1_34_1.orig/boost/function/function_base.hpp boost_1_34_1/boost/function/function_base.hpp
---- boost_1_34_1.orig/boost/function/function_base.hpp 2006-10-13 16:29:45.000000000 +0200
-+++ boost_1_34_1/boost/function/function_base.hpp 2007-12-21 14:45:15.000000000 +0100
-@@ -15,6 +15,7 @@
- #include <memory>
- #include <new>
- #include <typeinfo>
-+#include <functional> // unary_function, binary_function
- #include <boost/config.hpp>
- #include <boost/assert.hpp>
- #include <boost/type_traits/is_integral.hpp>
-@@ -30,6 +31,20 @@
- #endif
- #include <boost/function_equal.hpp>
-
-+#if defined(BOOST_MSVC)
-+# pragma warning( push )
-+# pragma warning( disable : 4793 ) // complaint about native code generation
-+# pragma warning( disable : 4127 ) // "conditional expression is constant"
-+#endif
-+
-+// Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
-+#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
-+// Embedded VC++ does not have type_info in namespace std
-+# define BOOST_FUNCTION_STD_NS
-+#else
-+# define BOOST_FUNCTION_STD_NS std
-+#endif
-+
- // Borrowed from Boost.Python library: determines the cases where we
- // need to use std::type_info::name to compare instead of operator==.
- # if (defined(__GNUC__) && __GNUC__ >= 3) \
-@@ -59,7 +74,7 @@
-
- #if defined (BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG) \
-- || !(BOOST_STRICT_CONFIG || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
-+ || !(defined(BOOST_STRICT_CONFIG) || !defined(__SUNPRO_CC) || __SUNPRO_CC > 0x540)
- # define BOOST_FUNCTION_NO_FUNCTION_TYPE_SYNTAX
- #endif
-
-@@ -198,8 +213,8 @@
- struct reference_manager
- {
- static inline void
-- get(const function_buffer& in_buffer, function_buffer& out_buffer,
-- functor_manager_operation_type op)
-+ manage(const function_buffer& in_buffer, function_buffer& out_buffer,
-+ functor_manager_operation_type op)
- {
- switch (op) {
- case clone_functor_tag:
-@@ -215,8 +230,8 @@
- // DPG TBD: Since we're only storing a pointer, it's
- // possible that the user could ask for a base class or
- // derived class. Is that okay?
-- const std::type_info& check_type =
-- *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+ const BOOST_FUNCTION_STD_NS::type_info& check_type =
-+ *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(F)))
- out_buffer.obj_ptr = in_buffer.obj_ptr;
- else
-@@ -265,8 +280,8 @@
- else if (op == destroy_functor_tag)
- out_buffer.func_ptr = 0;
- else /* op == check_functor_type_tag */ {
-- const std::type_info& check_type =
-- *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+ const BOOST_FUNCTION_STD_NS::type_info& check_type =
-+ *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
- out_buffer.obj_ptr = &in_buffer.func_ptr;
- else
-@@ -287,8 +302,8 @@
- // Some compilers (Borland, vc6, ...) are unhappy with ~functor_type.
- reinterpret_cast<functor_type*>(&out_buffer.data)->~Functor();
- } else /* op == check_functor_type_tag */ {
-- const std::type_info& check_type =
-- *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+ const BOOST_FUNCTION_STD_NS::type_info& check_type =
-+ *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
- out_buffer.obj_ptr = &in_buffer.data;
- else
-@@ -348,8 +363,8 @@
- # endif // BOOST_NO_STD_ALLOCATOR
- out_buffer.obj_ptr = 0;
- } else /* op == check_functor_type_tag */ {
-- const std::type_info& check_type =
-- *static_cast<const std::type_info*>(out_buffer.const_obj_ptr);
-+ const BOOST_FUNCTION_STD_NS::type_info& check_type =
-+ *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(out_buffer.const_obj_ptr);
- if (BOOST_FUNCTION_COMPARE_TYPE_ID(check_type, typeid(Functor)))
- out_buffer.obj_ptr = in_buffer.obj_ptr;
- else
-@@ -368,6 +383,15 @@
- mpl::bool_<(function_allows_small_object_optimization<functor_type>::value)>());
- }
-
-+ // For member pointers, we treat them as function objects with
-+ // the small-object optimization always enabled.
-+ static inline void
-+ manager(const function_buffer& in_buffer, function_buffer& out_buffer,
-+ functor_manager_operation_type op, member_ptr_tag)
-+ {
-+ manager(in_buffer, out_buffer, op, mpl::true_());
-+ }
-+
- public:
- /* Dispatch to an appropriate manager based on whether we have a
- function pointer or a function object pointer. */
-@@ -456,7 +480,6 @@
- */
- struct vtable_base
- {
-- vtable_base() : manager(0) { }
- void (*manager)(const function_buffer& in_buffer,
- function_buffer& out_buffer,
- functor_manager_operation_type op);
-@@ -480,13 +503,13 @@
-
- /** Retrieve the type of the stored function object, or typeid(void)
- if this is empty. */
-- const std::type_info& target_type() const
-+ const BOOST_FUNCTION_STD_NS::type_info& target_type() const
- {
- if (!vtable) return typeid(void);
-
- detail::function::function_buffer type;
- vtable->manager(functor, type, detail::function::get_functor_type_tag);
-- return *static_cast<const std::type_info*>(type.const_obj_ptr);
-+ return *static_cast<const BOOST_FUNCTION_STD_NS::type_info*>(type.const_obj_ptr);
- }
-
- template<typename Functor>
-@@ -558,7 +581,7 @@
- #endif
-
- public: // should be protected, but GCC 2.95.3 will fail to allow access
-- detail::function::vtable_base* vtable;
-+ const detail::function::vtable_base* vtable;
- mutable detail::function::function_buffer functor;
- };
-
-@@ -733,4 +756,8 @@
- #undef BOOST_FUNCTION_ENABLE_IF_NOT_INTEGRAL
- #undef BOOST_FUNCTION_COMPARE_TYPE_ID
-
-+#if defined(BOOST_MSVC)
-+# pragma warning( pop )
-+#endif
-+
- #endif // BOOST_FUNCTION_BASE_HEADER
-diff -Naur boost_1_34_1.orig/boost/function/function_template.hpp boost_1_34_1/boost/function/function_template.hpp
---- boost_1_34_1.orig/boost/function/function_template.hpp 2006-09-29 19:23:28.000000000 +0200
-+++ boost_1_34_1/boost/function/function_template.hpp 2007-12-19 15:13:28.000000000 +0100
-@@ -11,6 +11,11 @@
- // protection.
- #include <boost/function/detail/prologue.hpp>
-
-+#if defined(BOOST_MSVC)
-+# pragma warning( push )
-+# pragma warning( disable : 4127 ) // "conditional expression is constant"
-+#endif
-+
- #define BOOST_FUNCTION_TEMPLATE_PARMS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, typename T)
-
- #define BOOST_FUNCTION_TEMPLATE_ARGS BOOST_PP_ENUM_PARAMS(BOOST_FUNCTION_NUM_ARGS, T)
-@@ -54,12 +59,20 @@
- BOOST_JOIN(function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER \
- BOOST_JOIN(void_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_MEMBER_INVOKER \
-+ BOOST_JOIN(member_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_VOID_MEMBER_INVOKER \
-+ BOOST_JOIN(void_member_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_INVOKER \
- BOOST_JOIN(get_function_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER \
- BOOST_JOIN(get_function_obj_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER \
- BOOST_JOIN(get_function_ref_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_GET_MEMBER_INVOKER \
-+ BOOST_JOIN(get_member_invoker,BOOST_FUNCTION_NUM_ARGS)
-+#define BOOST_FUNCTION_GET_INVOKER \
-+ BOOST_JOIN(get_invoker,BOOST_FUNCTION_NUM_ARGS)
- #define BOOST_FUNCTION_VTABLE BOOST_JOIN(basic_vtable,BOOST_FUNCTION_NUM_ARGS)
-
- #ifndef BOOST_NO_VOID_RETURNS
-@@ -70,16 +83,6 @@
- # define BOOST_FUNCTION_RETURN(X) X; return BOOST_FUNCTION_VOID_RETURN_TYPE ()
- #endif
-
--#ifdef BOOST_MSVC
--# pragma warning(push)
--# pragma warning(disable: 4127) // conditional expression is constant.
--#endif
--
--#ifdef BOOST_MSVC
--# pragma warning(push)
--# pragma warning(disable: 4127) // conditional expression is constant.
--#endif
--
- namespace boost {
- namespace detail {
- namespace function {
-@@ -191,6 +194,44 @@
- }
- };
-
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+ /* Handle invocation of member pointers. */
-+ template<
-+ typename MemberPtr,
-+ typename R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_PARMS
-+ >
-+ struct BOOST_FUNCTION_MEMBER_INVOKER
-+ {
-+ static R invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_PARMS)
-+
-+ {
-+ MemberPtr* f =
-+ reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-+ return boost::mem_fn(*f)(BOOST_FUNCTION_ARGS);
-+ }
-+ };
-+
-+ template<
-+ typename MemberPtr,
-+ typename R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_PARMS
-+ >
-+ struct BOOST_FUNCTION_VOID_MEMBER_INVOKER
-+ {
-+ static BOOST_FUNCTION_VOID_RETURN_TYPE
-+ invoke(function_buffer& function_obj_ptr BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_PARMS)
-+
-+ {
-+ MemberPtr* f =
-+ reinterpret_cast<MemberPtr*>(&function_obj_ptr.data);
-+ BOOST_FUNCTION_RETURN(boost::mem_fn(*f)(BOOST_FUNCTION_ARGS));
-+ }
-+ };
-+#endif
-+
- template<
- typename FunctionPtr,
- typename R BOOST_FUNCTION_COMMA
-@@ -254,12 +295,130 @@
- >::type type;
- };
-
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+ /* Retrieve the appropriate invoker for a member pointer. */
-+ template<
-+ typename MemberPtr,
-+ typename R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_PARMS
-+ >
-+ struct BOOST_FUNCTION_GET_MEMBER_INVOKER
-+ {
-+ typedef typename mpl::if_c<(is_void<R>::value),
-+ BOOST_FUNCTION_VOID_MEMBER_INVOKER<
-+ MemberPtr,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >,
-+ BOOST_FUNCTION_MEMBER_INVOKER<
-+ MemberPtr,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >
-+ >::type type;
-+ };
-+#endif
-+
-+ /* Given the tag returned by get_function_tag, retrieve the
-+ actual invoker that will be used for the given function
-+ object.
-+
-+ Each specialization contains an "apply" nested class template
-+ that accepts the function object, return type, function
-+ argument types, and allocator. The resulting "apply" class
-+ contains two typedefs, "invoker_type" and "manager_type",
-+ which correspond to the invoker and manager types. */
-+ template<typename Tag>
-+ struct BOOST_FUNCTION_GET_INVOKER { };
-+
-+ /* Retrieve the invoker for a function pointer. */
-+ template<>
-+ struct BOOST_FUNCTION_GET_INVOKER<function_ptr_tag>
-+ {
-+ template<typename FunctionPtr,
-+ typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+ typename Allocator>
-+ struct apply
-+ {
-+ typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
-+ FunctionPtr,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >::type
-+ invoker_type;
-+
-+ typedef functor_manager<FunctionPtr, Allocator> manager_type;
-+ };
-+ };
-+
-+#if BOOST_FUNCTION_NUM_ARGS > 0
-+ /* Retrieve the invoker for a member pointer. */
-+ template<>
-+ struct BOOST_FUNCTION_GET_INVOKER<member_ptr_tag>
-+ {
-+ template<typename MemberPtr,
-+ typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+ typename Allocator>
-+ struct apply
-+ {
-+ typedef typename BOOST_FUNCTION_GET_MEMBER_INVOKER<
-+ MemberPtr,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >::type
-+ invoker_type;
-+
-+ typedef functor_manager<MemberPtr, Allocator> manager_type;
-+ };
-+ };
-+#endif
-+
-+ /* Retrieve the invoker for a function object. */
-+ template<>
-+ struct BOOST_FUNCTION_GET_INVOKER<function_obj_tag>
-+ {
-+ template<typename FunctionObj,
-+ typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+ typename Allocator>
-+ struct apply
-+ {
-+ typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
-+ FunctionObj,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >::type
-+ invoker_type;
-+
-+ typedef functor_manager<FunctionObj, Allocator> manager_type;
-+ };
-+ };
-+
-+ /* Retrieve the invoker for a reference to a function object. */
-+ template<>
-+ struct BOOST_FUNCTION_GET_INVOKER<function_obj_ref_tag>
-+ {
-+ template<typename RefWrapper,
-+ typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
-+ typename Allocator>
-+ struct apply
-+ {
-+ typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
-+ typename RefWrapper::type,
-+ R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS
-+ >::type
-+ invoker_type;
-+
-+ typedef reference_manager<typename RefWrapper::type> manager_type;
-+ };
-+ };
-+
- /**
- * vtable for a specific boost::function instance.
- */
- template<typename R BOOST_FUNCTION_COMMA BOOST_FUNCTION_TEMPLATE_PARMS,
- typename Allocator>
-- struct BOOST_FUNCTION_VTABLE : vtable_base
-+ struct BOOST_FUNCTION_VTABLE
- {
- #ifndef BOOST_NO_VOID_RETURNS
- typedef R result_type;
-@@ -272,50 +431,25 @@
- BOOST_FUNCTION_TEMPLATE_ARGS);
-
- template<typename F>
-- BOOST_FUNCTION_VTABLE(F f) : vtable_base(), invoker(0)
-- {
-- init(f);
-- }
--
-- template<typename F>
-- bool assign_to(F f, function_buffer& functor)
-+ bool assign_to(const F& f, function_buffer& functor) const
- {
- typedef typename get_function_tag<F>::type tag;
- return assign_to(f, functor, tag());
- }
-
-- void clear(function_buffer& functor)
-+ void clear(function_buffer& functor) const
- {
-- if (manager)
-- manager(functor, functor, destroy_functor_tag);
-+ if (base.manager)
-+ base.manager(functor, functor, destroy_functor_tag);
- }
--
-+#ifndef BOOST_NO_PRIVATE_IN_AGGREGATE
- private:
-- template<typename F>
-- void init(F f)
-- {
-- typedef typename get_function_tag<F>::type tag;
-- init(f, tag());
-- }
--
-+#endif
- // Function pointers
- template<typename FunctionPtr>
-- void init(FunctionPtr /*f*/, function_ptr_tag)
-- {
-- typedef typename BOOST_FUNCTION_GET_FUNCTION_INVOKER<
-- FunctionPtr,
-- R BOOST_FUNCTION_COMMA
-- BOOST_FUNCTION_TEMPLATE_ARGS
-- >::type
-- actual_invoker_type;
--
-- invoker = &actual_invoker_type::invoke;
-- manager = &functor_manager<FunctionPtr, Allocator>::manage;
-- }
--
-- template<typename FunctionPtr>
- bool
-- assign_to(FunctionPtr f, function_buffer& functor, function_ptr_tag)
-+ assign_to(FunctionPtr f, function_buffer& functor,
-+ function_ptr_tag) const
- {
- this->clear(functor);
- if (f) {
-@@ -331,22 +465,13 @@
- // Member pointers
- #if BOOST_FUNCTION_NUM_ARGS > 0
- template<typename MemberPtr>
-- void init(MemberPtr f, member_ptr_tag)
-- {
-- // DPG TBD: Add explicit support for member function
-- // objects, so we invoke through mem_fn() but we retain the
-- // right target_type() values.
-- this->init(mem_fn(f));
-- }
--
-- template<typename MemberPtr>
-- bool assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag)
-+ bool
-+ assign_to(MemberPtr f, function_buffer& functor, member_ptr_tag) const
- {
-- // DPG TBD: Add explicit support for member function
-- // objects, so we invoke through mem_fn() but we retain the
-- // right target_type() values.
- if (f) {
-- this->assign_to(mem_fn(f), functor);
-+ // Always use the small-object optimization for member
-+ // pointers.
-+ assign_functor(f, functor, mpl::true_());
- return true;
- } else {
- return false;
-@@ -355,24 +480,11 @@
- #endif // BOOST_FUNCTION_NUM_ARGS > 0
-
- // Function objects
-- template<typename FunctionObj>
-- void init(FunctionObj /*f*/, function_obj_tag)
-- {
-- typedef typename BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER<
-- FunctionObj,
-- R BOOST_FUNCTION_COMMA
-- BOOST_FUNCTION_TEMPLATE_ARGS
-- >::type
-- actual_invoker_type;
--
-- invoker = &actual_invoker_type::invoke;
-- manager = &functor_manager<FunctionObj, Allocator>::manage;
-- }
--
- // Assign to a function object using the small object optimization
- template<typename FunctionObj>
- void
-- assign_functor(FunctionObj f, function_buffer& functor, mpl::true_)
-+ assign_functor(const FunctionObj& f, function_buffer& functor,
-+ mpl::true_) const
- {
- new ((void*)&functor.data) FunctionObj(f);
- }
-@@ -380,7 +492,8 @@
- // Assign to a function object allocated on the heap.
- template<typename FunctionObj>
- void
-- assign_functor(FunctionObj f, function_buffer& functor, mpl::false_)
-+ assign_functor(const FunctionObj& f, function_buffer& functor,
-+ mpl::false_) const
- {
- #ifndef BOOST_NO_STD_ALLOCATOR
- typedef typename Allocator::template rebind<FunctionObj>::other
-@@ -400,7 +513,8 @@
-
- template<typename FunctionObj>
- bool
-- assign_to(FunctionObj f, function_buffer& functor, function_obj_tag)
-+ assign_to(const FunctionObj& f, function_buffer& functor,
-+ function_obj_tag) const
- {
- if (!boost::detail::function::has_empty_target(boost::addressof(f))) {
- assign_functor(f, functor,
-@@ -413,24 +527,9 @@
-
- // Reference to a function object
- template<typename FunctionObj>
-- void
-- init(const reference_wrapper<FunctionObj>& /*f*/, function_obj_ref_tag)
-- {
-- typedef typename BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER<
-- FunctionObj,
-- R BOOST_FUNCTION_COMMA
-- BOOST_FUNCTION_TEMPLATE_ARGS
-- >::type
-- actual_invoker_type;
--
-- invoker = &actual_invoker_type::invoke;
-- manager = &reference_manager<FunctionObj>::get;
-- }
--
-- template<typename FunctionObj>
- bool
- assign_to(const reference_wrapper<FunctionObj>& f,
-- function_buffer& functor, function_obj_ref_tag)
-+ function_buffer& functor, function_obj_ref_tag) const
- {
- if (!boost::detail::function::has_empty_target(f.get_pointer())) {
- // DPG TBD: We might need to detect constness of
-@@ -445,6 +544,7 @@
- }
-
- public:
-+ vtable_base base;
- invoker_type invoker;
- };
- } // end namespace function
-@@ -456,6 +556,17 @@
- typename Allocator = BOOST_FUNCTION_DEFAULT_ALLOCATOR
- >
- class BOOST_FUNCTION_FUNCTION : public function_base
-+
-+#if BOOST_FUNCTION_NUM_ARGS == 1
-+
-+ , public std::unary_function<T0,R>
-+
-+#elif BOOST_FUNCTION_NUM_ARGS == 2
-+
-+ , public std::binary_function<T0,T1,R>
-+
-+#endif
-+
- {
- public:
- #ifndef BOOST_NO_VOID_RETURNS
-@@ -537,7 +648,7 @@
- if (this->empty())
- boost::throw_exception(bad_function_call());
-
-- return static_cast<vtable_type*>(vtable)->invoker
-+ return reinterpret_cast<const vtable_type*>(vtable)->invoker
- (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
- }
- #else
-@@ -561,12 +672,16 @@
- operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
- {
- this->clear();
-+#ifndef BOOST_NO_EXCEPTIONS
- try {
- this->assign_to(f);
- } catch (...) {
- vtable = 0;
- throw;
- }
-+#else
-+ this->assign_to(f);
-+#endif
- return *this;
- }
-
-@@ -592,12 +707,16 @@
- return *this;
-
- this->clear();
-+#ifndef BOOST_NO_EXCEPTIONS
- try {
- this->assign_to_own(f);
- } catch (...) {
- vtable = 0;
- throw;
- }
-+#else
-+ this->assign_to_own(f);
-+#endif
- return *this;
- }
-
-@@ -615,7 +734,7 @@
- void clear()
- {
- if (vtable) {
-- static_cast<vtable_type*>(vtable)->clear(this->functor);
-+ reinterpret_cast<const vtable_type*>(vtable)->clear(this->functor);
- vtable = 0;
- }
- }
-@@ -650,10 +769,24 @@
- }
-
- template<typename Functor>
-- void assign_to(Functor f)
-+ void assign_to(const Functor& f)
- {
-- static vtable_type stored_vtable(f);
-- if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
-+ using detail::function::vtable_base;
-+
-+ typedef typename detail::function::get_function_tag<Functor>::type tag;
-+ typedef detail::function::BOOST_FUNCTION_GET_INVOKER<tag> get_invoker;
-+ typedef typename get_invoker::
-+ template apply<Functor, R BOOST_FUNCTION_COMMA
-+ BOOST_FUNCTION_TEMPLATE_ARGS, Allocator>
-+ handler_type;
-+
-+ typedef typename handler_type::invoker_type invoker_type;
-+ typedef typename handler_type::manager_type manager_type;
-+
-+ static const vtable_type stored_vtable =
-+ { { &manager_type::manage }, &invoker_type::invoke };
-+
-+ if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable.base;
- else vtable = 0;
- }
- };
-@@ -688,7 +821,7 @@
- if (this->empty())
- boost::throw_exception(bad_function_call());
-
-- return static_cast<vtable_type*>(vtable)->invoker
-+ return reinterpret_cast<const vtable_type*>(vtable)->invoker
- (this->functor BOOST_FUNCTION_COMMA BOOST_FUNCTION_ARGS);
- }
- #endif
-@@ -798,21 +931,14 @@
- }
- };
-
--#ifdef BOOST_MSVC
--# pragma warning(pop)
--#endif
--
- #undef BOOST_FUNCTION_PARTIAL_SPEC
- #endif // have partial specialization
-
- } // end namespace boost
-
--#ifdef BOOST_MSVC
--# pragma warning(pop)
--#endif
--
- // Cleanup after ourselves...
- #undef BOOST_FUNCTION_VTABLE
-+#undef BOOST_FUNCTION_GET_INVOKER
- #undef BOOST_FUNCTION_DEFAULT_ALLOCATOR
- #undef BOOST_FUNCTION_COMMA
- #undef BOOST_FUNCTION_FUNCTION
-@@ -822,10 +948,12 @@
- #undef BOOST_FUNCTION_VOID_FUNCTION_OBJ_INVOKER
- #undef BOOST_FUNCTION_FUNCTION_REF_INVOKER
- #undef BOOST_FUNCTION_VOID_FUNCTION_REF_INVOKER
-+#undef BOOST_FUNCTION_MEMBER_INVOKER
-+#undef BOOST_FUNCTION_VOID_MEMBER_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_OBJ_INVOKER
- #undef BOOST_FUNCTION_GET_FUNCTION_REF_INVOKER
--#undef BOOST_FUNCTION_GET_MEM_FUNCTION_INVOKER
-+#undef BOOST_FUNCTION_GET_MEMBER_INVOKER
- #undef BOOST_FUNCTION_TEMPLATE_PARMS
- #undef BOOST_FUNCTION_TEMPLATE_ARGS
- #undef BOOST_FUNCTION_PARMS
-@@ -835,3 +963,7 @@
- #undef BOOST_FUNCTION_ARG_TYPES
- #undef BOOST_FUNCTION_VOID_RETURN_TYPE
- #undef BOOST_FUNCTION_RETURN
-+
-+#if defined(BOOST_MSVC)
-+# pragma warning( pop )
-+#endif
Deleted: 07_all_1.34.1-CVE-2008-0171_and_0172.patch
===================================================================
--- 07_all_1.34.1-CVE-2008-0171_and_0172.patch 2008-07-01 22:25:49 UTC (rev 3877)
+++ 07_all_1.34.1-CVE-2008-0171_and_0172.patch 2008-07-01 23:00:18 UTC (rev 3878)
@@ -1,50 +0,0 @@
-Index: /trunk/boost/regex/v4/basic_regex_parser.hpp
-===================================================================
---- boost/regex/v4/basic_regex_parser.hpp (revision 38864)
-+++ boost/regex/v4/basic_regex_parser.hpp (revision 42674)
-@@ -785,4 +785,5 @@
- case syntax_element_jump:
- case syntax_element_startmark:
-+ case syntax_element_backstep:
- // can't legally repeat any of the above:
- fail(regex_constants::error_badrepeat, m_position - m_base);
-@@ -1870,4 +1871,5 @@
- {
- re_syntax_base* b = this->getaddress(expected_alt_point);
-+ // Make sure we have exactly one alternative following this state:
- if(b->type != syntax_element_alt)
- {
-@@ -1878,4 +1880,13 @@
- {
- fail(regex_constants::error_bad_pattern, m_position - m_base);
-+ return false;
-+ }
-+ // check for invalid repetition of next state:
-+ b = this->getaddress(expected_alt_point);
-+ b = this->getaddress(static_cast<re_alt*>(b)->next.i, b);
-+ if((b->type != syntax_element_assert_backref)
-+ && (b->type != syntax_element_startmark))
-+ {
-+ fail(regex_constants::error_badrepeat, m_position - m_base);
- return false;
- }
-Index: /trunk/libs/regex/test/regress/test_perl_ex.cpp
-===================================================================
---- libs/regex/test/regress/test_perl_ex.cpp (revision 30980)
-+++ libs/regex/test/regress/test_perl_ex.cpp (revision 42674)
-@@ -122,4 +122,15 @@
- TEST_INVALID_REGEX("(?:(a)|b)(?(?<", perl);
- TEST_INVALID_REGEX("(?:(a)|b)(?(?<a", perl);
-+
-+ TEST_INVALID_REGEX("(?(?!#?)+)", perl);
-+ TEST_INVALID_REGEX("(?(?=:-){0})", perl);
-+ TEST_INVALID_REGEX("(?(123){1})", perl);
-+ TEST_INVALID_REGEX("(?(?<=A)*)", perl);
-+ TEST_INVALID_REGEX("(?(?<=A)+)", perl);
-+
-+ TEST_INVALID_REGEX("(?<!*|^)", perl);
-+ TEST_INVALID_REGEX("(?<!*|A)", perl);
-+ TEST_INVALID_REGEX("(?<=?|A)", perl);
-+ TEST_INVALID_REGEX("(?<=*|\\B)", perl);
- }
-
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2008-07-01 22:25:49 UTC (rev 3877)
+++ PKGBUILD 2008-07-01 23:00:18 UTC (rev 3878)
@@ -4,31 +4,21 @@
# Contributor: Luca Roccia <little_rock at users.sourceforge.net>
pkgname=boost
-pkgver=1.34.1
-_boostver=1_34_1
-pkgrel=2
+pkgver=1.35.0
+_boostver=1_35_0
+pkgrel=1
pkgdesc="Boost provides free peer-reviewed portable C++ source libraries."
arch=(i686 x86_64)
-url="http://boost.sourceforge.net/"
+url="http://www.boost.org/"
depends=('python>=2.5' 'bzip2' 'zlib')
-source=(http://downloads.sourceforge.net/sourceforge/$pkgname/${pkgname}_${_boostver}.tar.gz
- 05_all_1.34.1-function.patch
- 07_all_1.34.1-CVE-2008-0171_and_0172.patch
- gcc-4.3.patch)
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/${pkgname}_${_boostver}.tar.gz)
license=('custom')
-md5sums=('5290a2a565d7d15a31bb1136a7c308d7'
- 'bfa69fba1bc46e2e4c7d316f0c2e6c99'
- 'da137f9c745601d6e723285e7e92d0dc'
- '7b4d72595cca0db01b9f6b3a336daa14')
+md5sums=('a6b7d92c335c83e69a968a7a7926c933')
build() {
cd $startdir/src/${pkgname}_${_boostver}
export CFLAGS="${CFLAGS} -fno-strict-aliasing"
- patch -Np1 -i ${startdir}/src/05_all_1.34.1-function.patch || return 1
- patch -Np1 -i ${startdir}/src/gcc-4.3.patch || return 1
- patch -Np0 -i ${startdir}/src/07_all_1.34.1-CVE-2008-0171_and_0172.patch || return 1
-
# build bjam
cd $startdir/src/${pkgname}_${_boostver}/tools/jam/src
./build.sh cc || return 1
Deleted: gcc-4.3.patch
===================================================================
--- gcc-4.3.patch 2008-07-01 22:25:49 UTC (rev 3877)
+++ gcc-4.3.patch 2008-07-01 23:00:18 UTC (rev 3878)
@@ -1,176 +0,0 @@
-diff -urp boost_1_34_1/boost/spirit/phoenix/operators.hpp boost_1_34_1.pm/boost/spirit/phoenix/operators.hpp
---- boost_1_34_1/boost/spirit/phoenix/operators.hpp 2006-08-25 18:27:30.000000000 +0200
-+++ boost_1_34_1.pm/boost/spirit/phoenix/operators.hpp 2008-02-06 16:29:32.000000000 +0100
-@@ -24,6 +24,7 @@
- #include <boost/spirit/phoenix/composite.hpp>
- #include <boost/config.hpp>
- #include <boost/mpl/if.hpp>
-+#include <limits.h>
-
- ///////////////////////////////////////////////////////////////////////////////
- namespace phoenix {
-diff -urp boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp boost_1_34_1.pm/boost/regex/v4/basic_regex_creator.hpp
---- boost_1_34_1/boost/regex/v4/basic_regex_creator.hpp 2006-07-16 18:06:38.000000000 +0200
-+++ boost_1_34_1.pm/boost/regex/v4/basic_regex_creator.hpp 2008-02-06 17:36:42.000000000 +0100
-@@ -24,6 +24,8 @@
- # include BOOST_ABI_PREFIX
- #endif
-
-+#include <limits.h>
-+
- namespace boost{
-
- namespace re_detail{
-diff -urp boost_1_34_1/boost/regex/v4/basic_regex.hpp boost_1_34_1.pm/boost/regex/v4/basic_regex.hpp
---- boost_1_34_1/boost/regex/v4/basic_regex.hpp 2007-06-05 19:28:18.000000000 +0200
-+++ boost_1_34_1.pm/boost/regex/v4/basic_regex.hpp 2008-02-06 17:33:30.000000000 +0100
-@@ -23,6 +23,8 @@
- # include BOOST_ABI_PREFIX
- #endif
-
-+#include <limits.h>
-+
- namespace boost{
- #ifdef BOOST_MSVC
- #pragma warning(push)
-diff -urp boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp boost_1_34_1.pm/boost/regex/v4/basic_regex_parser.hpp
---- boost_1_34_1/boost/regex/v4/basic_regex_parser.hpp 2008-02-06 17:45:26.000000000 +0100
-+++ boost_1_34_1.pm/boost/regex/v4/basic_regex_parser.hpp 2008-02-06 17:38:58.000000000 +0100
-@@ -23,6 +23,8 @@
- # include BOOST_ABI_PREFIX
- #endif
-
-+#include <limits.h>
-+
- namespace boost{
- namespace re_detail{
-
-diff -urp boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp boost_1_34_1.pm/boost/regex/v4/cpp_regex_traits.hpp
---- boost_1_34_1/boost/regex/v4/cpp_regex_traits.hpp 2007-01-15 12:09:44.000000000 +0100
-+++ boost_1_34_1.pm/boost/regex/v4/cpp_regex_traits.hpp 2008-02-06 17:26:51.000000000 +0100
-@@ -41,6 +41,7 @@
-
- #include <istream>
- #include <ios>
-+#include <limits.h>
-
- #ifdef BOOST_HAS_ABI_HEADERS
- # include BOOST_ABI_PREFIX
-diff -urp boost_1_34_1/boost/regex/v4/perl_matcher.hpp boost_1_34_1.pm/boost/regex/v4/perl_matcher.hpp
---- boost_1_34_1/boost/regex/v4/perl_matcher.hpp 2006-10-18 14:55:30.000000000 +0200
-+++ boost_1_34_1.pm/boost/regex/v4/perl_matcher.hpp 2008-02-06 17:39:44.000000000 +0100
-@@ -18,6 +18,8 @@
- # include BOOST_ABI_PREFIX
- #endif
-
-+#include <limits.h>
-+
- namespace boost{
- namespace re_detail{
-
-diff -urp boost_1_34_1/boost/regex/v4/regex_split.hpp boost_1_34_1.pm/boost/regex/v4/regex_split.hpp
---- boost_1_34_1/boost/regex/v4/regex_split.hpp 2005-01-21 18:22:38.000000000 +0100
-+++ boost_1_34_1.pm/boost/regex/v4/regex_split.hpp 2008-02-06 17:42:13.000000000 +0100
-@@ -21,6 +21,8 @@
- #ifndef BOOST_REGEX_SPLIT_HPP
- #define BOOST_REGEX_SPLIT_HPP
-
-+#include <limits.h>
-+
- namespace boost{
-
- #ifdef BOOST_HAS_ABI_HEADERS
-diff -urp boost_1_34_1/boost/regex/v4/states.hpp boost_1_34_1.pm/boost/regex/v4/states.hpp
---- boost_1_34_1/boost/regex/v4/states.hpp 2005-09-20 14:01:25.000000000 +0200
-+++ boost_1_34_1.pm/boost/regex/v4/states.hpp 2008-02-06 17:32:42.000000000 +0100
-@@ -23,6 +23,8 @@
- # include BOOST_ABI_PREFIX
- #endif
-
-+#include <limits.h>
-+
- namespace boost{
- namespace re_detail{
-
-diff -urp boost_1_34_1/boost/test/test_tools.hpp boost_1_34_1.pm/boost/test/test_tools.hpp
---- boost_1_34_1/boost/test/test_tools.hpp 2007-02-22 18:57:29.000000000 +0100
-+++ boost_1_34_1.pm/boost/test/test_tools.hpp 2008-02-06 17:18:20.000000000 +0100
-@@ -44,6 +44,7 @@
- // STL
- #include <cstddef> // for std::size_t
- #include <iosfwd>
-+#include <limits.h>
-
- #include <boost/test/detail/suppress_warnings.hpp>
-
-diff -urp boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp boost_1_34_1.pm/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp
---- boost_1_34_1/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2006-12-20 17:38:24.000000000 +0100
-+++ boost_1_34_1.pm/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp 2008-02-06 17:25:00.000000000 +0100
-@@ -16,6 +16,8 @@
- #include <string>
- #include <cstdio>
- #include <cstdarg>
-+#include <cstring>
-+
- #if defined(BOOST_SPIRIT_DEBUG)
- #include <iostream>
- #endif // defined(BOOST_SPIRIT_DEBUG)
-diff -urp boost_1_34_1/boost/wave/util/flex_string.hpp boost_1_34_1.pm/boost/wave/util/flex_string.hpp
---- boost_1_34_1/boost/wave/util/flex_string.hpp 2006-04-25 19:21:01.000000000 +0200
-+++ boost_1_34_1.pm/boost/wave/util/flex_string.hpp 2008-02-06 17:22:31.000000000 +0100
-@@ -94,6 +94,7 @@ class StoragePolicy
- #include <limits>
- #include <stdexcept>
- #include <cstddef>
-+#include <cstring>
-
- // this must occur after all of the includes and before any code appears
- #ifdef BOOST_HAS_ABI_HEADERS
-diff -urp boost_1_34_1/boost/archive/polymorphic_iarchive.hpp boost_1_34_1.pm/boost/archive/polymorphic_iarchive.hpp
---- boost_1_34_1/boost/archive/polymorphic_iarchive.hpp 2005-12-11 07:12:51.000000000 +0100
-+++ boost_1_34_1.pm/boost/archive/polymorphic_iarchive.hpp 2008-02-06 18:42:07.000000000 +0100
-@@ -33,6 +33,8 @@ namespace std{
- #include <boost/archive/detail/interface_iarchive.hpp>
- #include <boost/serialization/nvp.hpp>
-
-+#include <limits.h>
-+
- // determine if its necessary to handle (u)int64_t specifically
- // i.e. that its not a synonym for (unsigned) long
- // if there is no 64 bit int or if its the same as a long
-diff -urp boost_1_34_1/boost/archive/polymorphic_iarchive.hpp boost_1_34_1.pm/boost/archive/polymorphic_iarchive.hpp
---- boost_1_34_1/boost/archive/polymorphic_oarchive.hpp 2005-12-11 07:12:51.000000000 +0100
-+++ boost_1_34_1.pm/boost/archive/polymorphic_oarchive.hpp 2008-02-06 18:42:07.000000000 +0100
-@@ -33,6 +33,8 @@ namespace std{
- #include <boost/archive/detail/interface_iarchive.hpp>
- #include <boost/serialization/nvp.hpp>
-
-+#include <limits.h>
-+
- // determine if its necessary to handle (u)int64_t specifically
- // i.e. that its not a synonym for (unsigned) long
- // if there is no 64 bit int or if its the same as a long
-diff -urp boost_1_34_1/boost/date_time/date_facet.hpp boost_1_34_1-pm/boost/date_time/date_facet.hpp
---- boost_1_34_1/boost/date_time/date_facet.hpp 2005-09-05 23:10:50.000000000 +0200
-+++ boost_1_34_1-pm/boost/date_time/date_facet.hpp 2008-02-13 16:07:59.000000000 +0100
-@@ -429,7 +429,7 @@ namespace boost { namespace date_time {
- typedef std::basic_string<CharT> string_type;
- typedef CharT char_type;
- typedef boost::date_time::period_parser<date_type, CharT> period_parser_type;
-- typedef special_values_parser<date_type,CharT> special_values_parser_type;
-+ typedef boost::date_time::special_values_parser<date_type,CharT> special_values_parser_type;
- typedef std::vector<std::basic_string<CharT> > input_collection_type;
- typedef format_date_parser<date_type, CharT> format_date_parser_type;
- // date_generators stuff goes here
-diff -urp boost_1_34_1/boost/python/detail/def_helper.hpp boost_1_34_1-pm/boost/python/detail/def_helper.hpp
---- boost_1_34_1/boost/python/detail/def_helper.hpp 2004-09-16 03:00:28.000000000 +0200
-+++ boost_1_34_1-pm/boost/python/detail/def_helper.hpp 2008-02-14 13:26:23.000000000 +0100
-@@ -155,7 +155,7 @@ namespace detail
- , T3 const&
- , T4 const&
- , default_call_policies
-- , keywords<0>
-+ , boost::python::detail::keywords<0>
- , char const*
- , void(not_specified::*)() // A function pointer type which is never an
- // appropriate default implementation
More information about the arch-commits
mailing list