[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