Udpate to 1.41.0; original diff from Markus Hennecke
This commit is contained in:
parent
6843761a15
commit
9cfa962094
@ -1,25 +1,31 @@
|
||||
# $OpenBSD: Makefile,v 1.18 2009/07/27 00:34:24 kurt Exp $
|
||||
# $OpenBSD: Makefile,v 1.19 2010/03/30 11:00:15 robert Exp $
|
||||
|
||||
COMMENT= free peer-reviewed portable C++ source libraries
|
||||
|
||||
PKGNAME= boost-${VERSION}p4
|
||||
PKGNAME= boost-${VERSION}
|
||||
|
||||
VERSION= 1.34.1
|
||||
VERSION= 1.41.0
|
||||
DISTNAME= boost_${VERSION:S/./_/g}
|
||||
|
||||
SO_VERSION= 1.0
|
||||
SO_VERSION= 1.1
|
||||
BOOST_LIBS= boost_date_time boost_date_time-mt \
|
||||
boost_filesystem boost_filesystem-mt \
|
||||
boost_graph boost_graph-mt \
|
||||
boost_math_c99 boost_math_c99-mt \
|
||||
boost_math_c99f boost_math_c99f-mt \
|
||||
boost_math_c99l boost_math_c99l-mt \
|
||||
boost_math_tr1 boost_math_tr1-mt \
|
||||
boost_math_tr1f boost_math_tr1f-mt \
|
||||
boost_math_tr1l boost_math_tr1l-mt \
|
||||
boost_iostreams boost_iostreams-mt \
|
||||
boost_prg_exec_monitor boost_prg_exec_monitor-mt \
|
||||
boost_program_options boost_program_options-mt \
|
||||
boost_python boost_python-mt \
|
||||
boost_regex boost_regex-mt \
|
||||
boost_serialization boost_serialization-mt \
|
||||
boost_wserialization boost_wserialization-mt \
|
||||
boost_signals boost_signals-mt \
|
||||
boost_system boost_system-mt \
|
||||
boost_thread-mt \
|
||||
boost_unit_test_framework boost_unit_test_framework-mt \
|
||||
boost_wave boost_wave-mt
|
||||
.for _lib in ${BOOST_LIBS}
|
||||
SHARED_LIBS+= ${_lib} ${SO_VERSION}
|
||||
@ -40,11 +46,25 @@ PERMIT_DISTFILES_FTP= Yes
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=boost/}
|
||||
|
||||
MAKE_ENV= GCC="${CC}" GXX="${CXX}"
|
||||
CONFIGURE_ENV= BJAM_CONFIG="-sNO_BZIP2=1 -sSO_VERSION=${SO_VERSION}"
|
||||
|
||||
BJAM_CONFIG= -sNO_BZIP2=1 \
|
||||
-d+2 -q \
|
||||
-sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/lib \
|
||||
variant=release link=static,shared threading=single,multi
|
||||
|
||||
|
||||
BOOTSTRAP_CONFIG= --without-icu \
|
||||
--with-python=${MODPY_BIN} \
|
||||
--with-python-root=${LOCALBASE} \
|
||||
--with-python-version=${MODPY_VERSION} \
|
||||
--without-libraries=test
|
||||
# --without-libraries=test,thread,serialization,system,date_time,filesystem,graph,math,mpi,program_options,signals,wave
|
||||
|
||||
CONFIGURE_ENV= BJAM_CONFIG="${BJAM_CONFIG}"
|
||||
|
||||
REGRESS_TARGET= check
|
||||
|
||||
WANTLIB= z c
|
||||
WANTLIB= z c expat pthread util
|
||||
|
||||
MODULES= lang/python
|
||||
MODPY_RUNDEP= No
|
||||
@ -58,11 +78,12 @@ do-configure:
|
||||
cp user.hpp ${WRKSRC}/boost/config
|
||||
|
||||
post-configure:
|
||||
@cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} /bin/sh ./configure \
|
||||
--with-python=${MODPY_BIN} \
|
||||
--with-python-root=${LOCALBASE} \
|
||||
--with-python-version=${MODPY_VERSION} \
|
||||
--without-icu
|
||||
@cd ${WRKSRC} && chmod -R a+x ./ && \
|
||||
/bin/sh ./bootstrap.sh ${BOOTSTRAP_CONFIG}
|
||||
|
||||
do-build:
|
||||
@cd ${WRKSRC} && \
|
||||
./bjam ${BJAM_CONFIG}
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/tools/jam/src/bin.*/bjam \
|
||||
|
@ -1,5 +1,5 @@
|
||||
MD5 (boost_1_34_1.tar.gz) = UpCipWXX0VoxuxE2p8MI1w==
|
||||
RMD160 (boost_1_34_1.tar.gz) = fWjTzs7V9Dha1j4N8wLydWJ1zPE=
|
||||
SHA1 (boost_1_34_1.tar.gz) = sgoNUPMFkjNW06+/IjajazqT2Ec=
|
||||
SHA256 (boost_1_34_1.tar.gz) = 75kGIRcGig1kH0BFxCFmF2hlcmKj0RnEonLJej565bM=
|
||||
SIZE (boost_1_34_1.tar.gz) = 16017741
|
||||
MD5 (boost_1_41_0.tar.gz) = 3bBMm5Fko2qR3PNoGWZt2Q==
|
||||
RMD160 (boost_1_41_0.tar.gz) = M4lshOEh0nxFLD+9DQaUK7NPnvs=
|
||||
SHA1 (boost_1_41_0.tar.gz) = wJWhk3oe8cjZzNf0VIHCmjrSnVY=
|
||||
SHA256 (boost_1_41_0.tar.gz) = Ajy+HNPwlG/j1rTIPkrlrMBCzeaGHbw/fi9WXP4+RPk=
|
||||
SIZE (boost_1_41_0.tar.gz) = 40743333
|
||||
|
@ -1,33 +0,0 @@
|
||||
$OpenBSD: patch-Jamfile_v2,v 1.1 2008/04/03 07:44:39 bernd Exp $
|
||||
--- Jamfile.v2.orig Tue May 29 19:46:37 2007
|
||||
+++ Jamfile.v2 Wed Jan 9 21:57:39 2008
|
||||
@@ -110,7 +110,7 @@ local default-build ;
|
||||
if $(__file__:D) = ""
|
||||
{
|
||||
default-build =
|
||||
- debug release
|
||||
+ release
|
||||
<threading>single <threading>multi
|
||||
<link>shared <link>static
|
||||
;
|
||||
@@ -175,10 +175,9 @@ alias test_exec_monitor : libs/test/build//boost_test_
|
||||
alias unit_test_framework : libs/test/build//boost_unit_test_framework ;
|
||||
alias bgl-vis : libs/graps/build//bgl-vis ;
|
||||
alias serialization : libs/serialization/build//boost_serialization ;
|
||||
-alias wserialization : libs/serialization/build//boost_wserialization ;
|
||||
|
||||
explicit prg_exec_monitor test_exec_monitor unit_test_framework
|
||||
- bgl-vis serialization wserialization ;
|
||||
+ bgl-vis serialization ;
|
||||
|
||||
for local l in $(all-libraries)
|
||||
{
|
||||
@@ -233,7 +232,7 @@ rule libraries-to-install ( existing-libraries * )
|
||||
|
||||
# what kind of layout are we doing?
|
||||
layout = [ MATCH "^--layout=(.*)" : [ modules.peek : ARGV ] ] ;
|
||||
-layout ?= versioned ;
|
||||
+layout = system ;
|
||||
layout-$(layout) = true ;
|
||||
|
||||
# possible stage only location
|
@ -1,11 +1,11 @@
|
||||
$OpenBSD: patch-boost_config_stdlib_libstdcpp3_hpp,v 1.4 2009/07/27 00:34:24 kurt Exp $
|
||||
--- boost/config/stdlib/libstdcpp3.hpp.orig Thu Dec 1 10:00:33 2005
|
||||
+++ boost/config/stdlib/libstdcpp3.hpp Mon Dec 31 02:29:05 2007
|
||||
$OpenBSD: patch-boost_config_stdlib_libstdcpp3_hpp,v 1.5 2010/03/30 11:00:15 robert Exp $
|
||||
--- boost/config/stdlib/libstdcpp3.hpp.orig Tue May 12 18:09:45 2009
|
||||
+++ boost/config/stdlib/libstdcpp3.hpp Tue May 12 18:15:20 2009
|
||||
@@ -29,6 +29,15 @@
|
||||
# define _REENTRANT
|
||||
#endif
|
||||
|
||||
+// This is a hack for OpenBSD. Currently OpenBSD's gcc is compiled
|
||||
+// This is hack for OpenBSD. Currently OpenBSD's gcc is compiled
|
||||
+// with thread model = single. Many references on the net indicate
|
||||
+// multithreaded c++ applications will have problems with c++
|
||||
+// exceptions and the high-speed caching allocator. However in
|
||||
|
@ -1,12 +1,13 @@
|
||||
$OpenBSD: patch-boost_config_suffix_hpp,v 1.6 2009/07/27 11:31:08 kurt Exp $
|
||||
--- boost/config/suffix.hpp.orig Thu Feb 9 18:29:09 2006
|
||||
+++ boost/config/suffix.hpp Mon Jan 7 20:59:55 2008
|
||||
@@ -207,7 +207,7 @@
|
||||
$OpenBSD: patch-boost_config_suffix_hpp,v 1.7 2010/03/30 11:00:15 robert Exp $
|
||||
--- boost/config/suffix.hpp.orig Tue May 12 18:19:58 2009
|
||||
+++ boost/config/suffix.hpp Tue May 12 18:21:48 2009
|
||||
@@ -225,7 +225,8 @@
|
||||
// from here then add to the appropriate compiler section):
|
||||
//
|
||||
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
|
||||
- || defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
|
||||
+ || defined(_PTHREADS) || defined(_POSIX_THREADS)) && !defined(BOOST_HAS_THREADS)
|
||||
- || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
|
||||
+ || defined(_PTHREADS) || defined(_POSIX_THREADS) \
|
||||
+ || defined(__APPLE__) || defined(__DragonFly__)) \
|
||||
&& !defined(BOOST_HAS_THREADS)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
|
@ -1,18 +0,0 @@
|
||||
$OpenBSD: patch-boost_detail_atomic_count_hpp,v 1.1 2008/06/05 12:55:56 kurt Exp $
|
||||
--- boost/detail/atomic_count.hpp.orig Wed Mar 30 17:52:54 2005
|
||||
+++ boost/detail/atomic_count.hpp Thu Jun 5 07:17:02 2008
|
||||
@@ -93,7 +93,13 @@ typedef long atomic_count;
|
||||
# include <boost/detail/atomic_count_pthreads.hpp>
|
||||
#elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
|
||||
# include <boost/detail/atomic_count_win32.hpp>
|
||||
-#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||
+#elif defined(__GLIBCXX__) && \
|
||||
+ (defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || \
|
||||
+ defined(_GLIBCXX__PTHREADS))
|
||||
+# include <boost/detail/atomic_count_gcc.hpp>
|
||||
+#elif defined(__GLIBCPP__) && \
|
||||
+ (defined(_GLIBCPP_HAVE_GTHR_DEFAULT) || \
|
||||
+ defined(_GLIBCPP__PTHREADS))
|
||||
# include <boost/detail/atomic_count_gcc.hpp>
|
||||
#elif defined(BOOST_HAS_PTHREADS)
|
||||
# define BOOST_AC_USE_PTHREADS
|
@ -1,155 +0,0 @@
|
||||
$OpenBSD: patch-boost_function_function_base_hpp,v 1.1 2008/04/03 07:44:40 bernd Exp $
|
||||
--- boost/function/function_base.hpp.orig Wed Jan 9 06:44:14 2008
|
||||
+++ boost/function/function_base.hpp Wed Jan 9 06:44:55 2008
|
||||
@@ -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 @@ namespace boost { namespace python { namespace objects
|
||||
|
||||
#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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
// 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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
// 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 @@ namespace boost {
|
||||
# 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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
*/
|
||||
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 @@ class function_base (public)
|
||||
|
||||
/** 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 @@ class function_base (public)
|
||||
#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;
|
||||
};
|
||||
|
||||
@@ -732,5 +755,9 @@ namespace detail {
|
||||
|
||||
#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
|
@ -1,551 +0,0 @@
|
||||
$OpenBSD: patch-boost_function_function_template_hpp,v 1.1 2008/04/03 07:44:40 bernd Exp $
|
||||
--- boost/function/function_template.hpp.orig Wed Jan 9 06:44:37 2008
|
||||
+++ boost/function/function_template.hpp Wed Jan 9 06:45:08 2008
|
||||
@@ -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,7 +194,45 @@ namespace boost {
|
||||
}
|
||||
};
|
||||
|
||||
+#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
|
||||
BOOST_FUNCTION_TEMPLATE_PARMS
|
||||
@@ -254,12 +295,130 @@ namespace boost {
|
||||
>::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 @@ namespace boost {
|
||||
BOOST_FUNCTION_TEMPLATE_ARGS);
|
||||
|
||||
template<typename F>
|
||||
- BOOST_FUNCTION_VTABLE(F f) : vtable_base(), invoker(0)
|
||||
+ bool assign_to(const F& f, function_buffer& functor) const
|
||||
{
|
||||
- init(f);
|
||||
- }
|
||||
-
|
||||
- template<typename F>
|
||||
- bool assign_to(F f, function_buffer& functor)
|
||||
- {
|
||||
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 @@ namespace boost {
|
||||
// Member pointers
|
||||
#if BOOST_FUNCTION_NUM_ARGS > 0
|
||||
template<typename MemberPtr>
|
||||
- void init(MemberPtr f, 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.
|
||||
- this->init(mem_fn(f));
|
||||
- }
|
||||
-
|
||||
- template<typename MemberPtr>
|
||||
- bool assign_to(MemberPtr f, function_buffer& functor, 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.
|
||||
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 @@ namespace boost {
|
||||
#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 @@ namespace boost {
|
||||
// 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 @@ namespace boost {
|
||||
|
||||
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 @@ namespace boost {
|
||||
|
||||
// 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 @@ namespace boost {
|
||||
}
|
||||
|
||||
public:
|
||||
+ vtable_base base;
|
||||
invoker_type invoker;
|
||||
};
|
||||
} // end namespace function
|
||||
@@ -456,6 +556,17 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
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 @@ namespace boost {
|
||||
}
|
||||
|
||||
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 @@ namespace boost {
|
||||
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 @@ class function<BOOST_FUNCTION_PARTIAL_SPEC, Allocator>
|
||||
}
|
||||
};
|
||||
|
||||
-#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 @@ class function<BOOST_FUNCTION_PARTIAL_SPEC, Allocator>
|
||||
#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 @@ class function<BOOST_FUNCTION_PARTIAL_SPEC, Allocator>
|
||||
#undef BOOST_FUNCTION_ARG_TYPES
|
||||
#undef BOOST_FUNCTION_VOID_RETURN_TYPE
|
||||
#undef BOOST_FUNCTION_RETURN
|
||||
+
|
||||
+#if defined(BOOST_MSVC)
|
||||
+# pragma warning( pop )
|
||||
+#endif
|
@ -1,12 +1,12 @@
|
||||
$OpenBSD: patch-boost_regex_config_hpp,v 1.1 2008/04/03 07:44:40 bernd Exp $
|
||||
--- boost/regex/config.hpp.orig Wed Mar 26 19:36:57 2008
|
||||
+++ boost/regex/config.hpp Wed Mar 26 19:37:27 2008
|
||||
$OpenBSD: patch-boost_regex_config_hpp,v 1.2 2010/03/30 11:00:15 robert Exp $
|
||||
--- boost/regex/config.hpp.orig Sat Dec 26 15:48:19 2009
|
||||
+++ boost/regex/config.hpp Sat Dec 26 15:48:34 2009
|
||||
@@ -75,7 +75,7 @@
|
||||
* std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
|
||||
* returns *false*.
|
||||
*/
|
||||
-#ifdef __GLIBCPP__
|
||||
+#if defined(__GLIBCPP__) || defined (__OpenBSD__)
|
||||
+#if defined(__GLIBCPP__) && !defined(__OpenBSD__)
|
||||
# define BOOST_REGEX_BUGGY_CTYPE_FACET
|
||||
#endif
|
||||
|
||||
|
@ -1,35 +0,0 @@
|
||||
$OpenBSD: patch-boost_regex_v4_basic_regex_parser_hpp,v 1.1 2008/05/27 00:52:01 deanna Exp $
|
||||
--- boost/regex/v4/basic_regex_parser.hpp.orig Wed Dec 20 12:19:05 2006
|
||||
+++ boost/regex/v4/basic_regex_parser.hpp Sun May 25 21:59:07 2008
|
||||
@@ -777,6 +777,7 @@ bool basic_regex_parser<charT, traits>::parse_repeat(s
|
||||
case syntax_element_restart_continue:
|
||||
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);
|
||||
return false;
|
||||
@@ -1862,6 +1863,7 @@ bool basic_regex_parser<charT, traits>::parse_perl_ext
|
||||
if(markid == -4)
|
||||
{
|
||||
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)
|
||||
{
|
||||
re_alt* alt = static_cast<re_alt*>(this->insert_state(expected_alt_point, syntax_element_alt, sizeof(re_alt)));
|
||||
@@ -1870,6 +1872,15 @@ bool basic_regex_parser<charT, traits>::parse_perl_ext
|
||||
else if(this->getaddress(static_cast<re_alt*>(b)->alt.i, b)->type == syntax_element_alt)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
@ -1,20 +0,0 @@
|
||||
$OpenBSD: patch-configure,v 1.2 2008/04/03 07:44:40 bernd Exp $
|
||||
--- configure.orig Thu May 10 01:09:39 2007
|
||||
+++ configure Wed Jan 9 08:01:33 2008
|
||||
@@ -9,7 +9,6 @@
|
||||
|
||||
BJAM=""
|
||||
TOOLSET=""
|
||||
-BJAM_CONFIG=""
|
||||
BUILD=""
|
||||
PREFIX=/usr/local
|
||||
EPREFIX=
|
||||
@@ -326,7 +325,7 @@ LIBS=$LIBS
|
||||
|
||||
all: .dummy
|
||||
@echo "\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS)"
|
||||
- @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) || \\
|
||||
+ @\$(BJAM) \$(BJAM_CONFIG) --user-config=user-config.jam \$(LIBS) stage || \\
|
||||
echo "Not all Boost libraries built properly."
|
||||
|
||||
clean: .dummy
|
@ -1,29 +0,0 @@
|
||||
$OpenBSD: patch-libs_config_configure,v 1.2 2008/01/06 00:01:15 deanna Exp $
|
||||
--- libs/config/configure.orig Thu Nov 3 06:23:34 2005
|
||||
+++ libs/config/configure Mon Dec 31 02:29:05 2007
|
||||
@@ -1955,13 +1955,13 @@ fi
|
||||
|
||||
|
||||
|
||||
-echo "$as_me:$LINENO: checking for pthread_exit in -lpthread" >&5
|
||||
-echo $ECHO_N "checking for pthread_exit in -lpthread... $ECHO_C" >&6
|
||||
+echo "$as_me:$LINENO: checking for pthread_exit in -pthread" >&5
|
||||
+echo $ECHO_N "checking for pthread_exit in -pthread... $ECHO_C" >&6
|
||||
if test "${ac_cv_lib_pthread_pthread_exit+set}" = set; then
|
||||
echo $ECHO_N "(cached) $ECHO_C" >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
-LIBS="-lpthread $LIBS"
|
||||
+LIBS="-pthread $LIBS"
|
||||
cat >conftest.$ac_ext <<_ACEOF
|
||||
/* confdefs.h. */
|
||||
_ACEOF
|
||||
@@ -2024,7 +2024,7 @@ if test $ac_cv_lib_pthread_pthread_exit = yes; then
|
||||
#define HAVE_LIBPTHREAD 1
|
||||
_ACEOF
|
||||
|
||||
- LIBS="-lpthread $LIBS"
|
||||
+ LIBS="-pthread $LIBS"
|
||||
|
||||
fi
|
||||
|
@ -1,11 +1,10 @@
|
||||
$OpenBSD: patch-libs_config_test_boost_has_clock_gettime_ipp,v 1.1.1.1 2006/11/05 19:20:43 wilfried Exp $
|
||||
--- libs/config/test/boost_has_clock_gettime.ipp.orig Tue Oct 14 12:33:07 2003
|
||||
+++ libs/config/test/boost_has_clock_gettime.ipp Thu Oct 26 19:35:48 2006
|
||||
@@ -9,7 +9,7 @@
|
||||
// TITLE: clock_gettime
|
||||
$OpenBSD: patch-libs_config_test_boost_has_clock_gettime_ipp,v 1.2 2010/03/30 11:00:15 robert Exp $
|
||||
--- libs/config/test/boost_has_clock_gettime.ipp.orig Tue May 12 18:35:20 2009
|
||||
+++ libs/config/test/boost_has_clock_gettime.ipp Tue May 12 18:35:43 2009
|
||||
@@ -10,6 +10,7 @@
|
||||
// DESCRIPTION: The platform supports POSIX standard API clock_gettime.
|
||||
|
||||
-#include <time.h>
|
||||
#include <time.h>
|
||||
+#include <sys/time.h>
|
||||
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
$OpenBSD: patch-libs_config_test_boost_has_pthread_yield_ipp,v 1.1.1.1 2006/11/05 19:20:43 wilfried Exp $
|
||||
--- libs/config/test/boost_has_pthread_yield.ipp.orig Tue Oct 14 12:33:07 2003
|
||||
+++ libs/config/test/boost_has_pthread_yield.ipp Thu Oct 26 19:39:07 2006
|
||||
$OpenBSD: patch-libs_config_test_boost_has_pthread_yield_ipp,v 1.2 2010/03/30 11:00:15 robert Exp $
|
||||
--- libs/config/test/boost_has_pthread_yield.ipp.orig Tue May 12 18:36:21 2009
|
||||
+++ libs/config/test/boost_has_pthread_yield.ipp Tue May 12 18:36:56 2009
|
||||
@@ -17,7 +17,7 @@ namespace boost_has_pthread_yield{
|
||||
void f()
|
||||
{
|
||||
|
@ -1,12 +1,12 @@
|
||||
$OpenBSD: patch-libs_random_random_device_cpp,v 1.1 2008/04/06 17:57:43 deanna Exp $
|
||||
--- libs/random/random_device.cpp.orig Sat Apr 5 13:36:41 2008
|
||||
+++ libs/random/random_device.cpp Sat Apr 5 13:38:10 2008
|
||||
$OpenBSD: patch-libs_random_random_device_cpp,v 1.2 2010/03/30 11:00:15 robert Exp $
|
||||
--- libs/random/random_device.cpp.orig Tue May 12 18:37:39 2009
|
||||
+++ libs/random/random_device.cpp Tue May 12 18:38:44 2009
|
||||
@@ -22,7 +22,7 @@ const boost::random_device::result_type boost::random_
|
||||
#endif
|
||||
|
||||
|
||||
-#ifdef __linux__
|
||||
+#if defined(__linux__) || defined(__OpenBSD__)
|
||||
-#if defined(__linux__) || defined (__FreeBSD__)
|
||||
+#if defined(__linux__) || defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
|
||||
// the default is the unlimited capacity device, using some secure hash
|
||||
// try "/dev/random" for blocking when the entropy pool has drained
|
||||
@ -14,8 +14,8 @@ $OpenBSD: patch-libs_random_random_device_cpp,v 1.1 2008/04/06 17:57:43 deanna E
|
||||
int fd;
|
||||
};
|
||||
|
||||
-#endif // __linux__
|
||||
+#endif // __linux__ || __OpenBSD__
|
||||
-#endif // __linux__ || __FreeBSD__
|
||||
+#endif // __linux__ || __FreeBSD__ || __OpenBSD__
|
||||
|
||||
|
||||
boost::random_device::random_device(const std::string& token)
|
||||
|
@ -1,7 +1,7 @@
|
||||
$OpenBSD: patch-libs_regex_src_wc_regex_traits_cpp,v 1.1.1.1 2006/11/05 19:20:43 wilfried Exp $
|
||||
--- libs/regex/src/wc_regex_traits.cpp.orig Fri Oct 6 09:19:06 2006
|
||||
+++ libs/regex/src/wc_regex_traits.cpp Fri Oct 6 09:20:06 2006
|
||||
@@ -29,7 +29,7 @@
|
||||
$OpenBSD: patch-libs_regex_src_wc_regex_traits_cpp,v 1.2 2010/03/30 11:00:15 robert Exp $
|
||||
--- libs/regex/src/wc_regex_traits.cpp.orig Mon Aug 3 14:00:07 2009
|
||||
+++ libs/regex/src/wc_regex_traits.cpp Thu Dec 24 14:11:11 2009
|
||||
@@ -77,9 +77,12 @@ template BOOST_REGEX_STDLIB_DECL bool __cdecl operator
|
||||
#include <boost/regex/v4/primary_transform.hpp>
|
||||
#include <boost/regex/v4/regex_traits_defaults.hpp>
|
||||
|
||||
@ -9,4 +9,9 @@ $OpenBSD: patch-libs_regex_src_wc_regex_traits_cpp,v 1.1.1.1 2006/11/05 19:20:43
|
||||
+#if defined(BOOST_NO_STDC_NAMESPACE) || defined(__OpenBSD__)
|
||||
namespace std{
|
||||
using ::wcstol;
|
||||
+ using ::iswspace; using ::iswprint; using ::iswcntrl;
|
||||
+ using ::iswupper; using ::iswlower; using ::iswalpha;
|
||||
+ using ::iswdigit; using ::iswpunct; using ::iswxdigit;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-libs_regex_test_regress_test_perl_ex_cpp,v 1.1 2008/05/27 00:52:01 deanna Exp $
|
||||
--- libs/regex/test/regress/test_perl_ex.cpp.orig Wed Sep 14 08:20:08 2005
|
||||
+++ libs/regex/test/regress/test_perl_ex.cpp Sun May 25 21:59:48 2008
|
||||
@@ -121,6 +121,17 @@ void test_conditionals()
|
||||
TEST_INVALID_REGEX("(?:(a)|b)(?(?:", perl);
|
||||
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);
|
||||
}
|
||||
|
||||
void test_options()
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-libs_serialization_build_Jamfile_v2,v 1.1 2008/04/03 07:44:40 bernd Exp $
|
||||
--- libs/serialization/build/Jamfile.v2.orig Wed Jan 9 23:17:23 2008
|
||||
+++ libs/serialization/build/Jamfile.v2 Wed Jan 9 23:17:31 2008
|
||||
@@ -61,10 +61,3 @@ lib boost_serialization
|
||||
: <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
|
||||
;
|
||||
|
||||
-lib boost_wserialization
|
||||
- : $(WSOURCES).cpp boost_serialization
|
||||
- : <toolset>msvc:<cxxflags>/Gy
|
||||
- <link>shared:<define>BOOST_WSERIALIZATION_DYN_LINK=1
|
||||
- :
|
||||
- : <link>shared:<define>BOOST_SERIALIZATION_DYN_LINK=1
|
||||
- ;
|
@ -1,15 +0,0 @@
|
||||
$OpenBSD: patch-libs_serialization_src_stl_port_cpp,v 1.2 2008/01/06 00:01:15 deanna Exp $
|
||||
--- libs/serialization/src/stl_port.cpp.orig Sat Feb 19 16:08:02 2005
|
||||
+++ libs/serialization/src/stl_port.cpp Mon Dec 31 02:29:05 2007
|
||||
@@ -32,11 +32,6 @@ locale::locale(
|
||||
const locale& __loc, boost::archive::codecvt_null<char> * __f
|
||||
);
|
||||
|
||||
-template
|
||||
-locale::locale(
|
||||
- const locale& __loc, boost::archive::codecvt_null<wchar_t> * __f
|
||||
-);
|
||||
-
|
||||
} // namespace std
|
||||
|
||||
#endif
|
@ -1,19 +0,0 @@
|
||||
$OpenBSD: patch-libs_serialization_test_Jamfile_v2,v 1.1 2008/04/03 07:44:40 bernd Exp $
|
||||
--- libs/serialization/test/Jamfile.v2.orig Wed Jan 9 21:54:47 2008
|
||||
+++ libs/serialization/test/Jamfile.v2 Wed Jan 9 21:54:51 2008
|
||||
@@ -114,7 +114,6 @@ rule run-winvoke ( test-name : sources * : defns * )
|
||||
: # sources
|
||||
$(sources)
|
||||
../build//boost_serialization/<link>static
|
||||
- ../build//boost_wserialization/<link>static
|
||||
: # requirements
|
||||
|
||||
# FIXME:
|
||||
@@ -134,7 +133,6 @@ rule run-winvoke ( test-name : sources * : defns * )
|
||||
: # sources
|
||||
$(sources)
|
||||
../build//boost_serialization
|
||||
- ../build//boost_wserialization
|
||||
: # requirements
|
||||
# FIXME
|
||||
# toolset::require-wide-char-io-support
|
@ -1,68 +1,56 @@
|
||||
$OpenBSD: patch-tools_build_v2_tools_gcc_jam,v 1.2 2008/04/06 17:57:43 deanna Exp $
|
||||
--- tools/build/v2/tools/gcc.jam.orig Tue Jun 12 00:47:49 2007
|
||||
+++ tools/build/v2/tools/gcc.jam Sat Apr 5 16:10:59 2008
|
||||
@@ -41,8 +41,10 @@ generators.override gcc.searched-lib-generator : searc
|
||||
$OpenBSD: patch-tools_build_v2_tools_gcc_jam,v 1.3 2010/03/30 11:00:15 robert Exp $
|
||||
--- tools/build/v2/tools/gcc.jam.orig Wed Oct 28 08:47:51 2009
|
||||
+++ tools/build/v2/tools/gcc.jam Sat Dec 26 09:57:06 2009
|
||||
@@ -269,7 +269,7 @@ class gcc-pch-generator : pch-generator
|
||||
|
||||
# Make the "o" suffix used for gcc toolset on all
|
||||
# platforms
|
||||
+local so_version = [ modules.peek : SO_VERSION ] ;
|
||||
type.set-generated-target-suffix OBJ : <toolset>gcc : o ;
|
||||
type.set-generated-target-suffix STATIC_LIB : <toolset>gcc : a ;
|
||||
+type.set-generated-target-suffix SHARED_LIB : <toolset>gcc : so.$(so_version) ;
|
||||
# return result of base class and pch-file property as usage-requirements
|
||||
return
|
||||
- [ property-set.create <pch-file>$(pch-file) <cflags>-Winvalid-pch ]
|
||||
+ [ property-set.create <pch-file>$(pch-file) ]
|
||||
$(pch-file)
|
||||
;
|
||||
}
|
||||
@@ -299,7 +299,7 @@ toolset.flags gcc.compile PCH_FILE <pch>on : <pch-file
|
||||
|
||||
type.set-generated-target-suffix IMPORT_LIB : <toolset>gcc <target-os>cygwin : dll.a ;
|
||||
type.set-generated-target-suffix IMPORT_LIB : <toolset>gcc <target-os>windows : a ;
|
||||
@@ -268,7 +270,7 @@ flags gcc.compile PCH_FILE <pch>on : <pch-file> ;
|
||||
# Declare flags and action for compilation.
|
||||
toolset.flags gcc.compile OPTIONS <optimization>off : -O0 ;
|
||||
-toolset.flags gcc.compile OPTIONS <optimization>speed : -O3 ;
|
||||
+toolset.flags gcc.compile OPTIONS <optimization>speed : -O2 ;
|
||||
toolset.flags gcc.compile OPTIONS <optimization>space : -Os ;
|
||||
|
||||
# Declare flags and action for compilation
|
||||
flags gcc.compile OPTIONS <optimization>off : -O0 ;
|
||||
-flags gcc.compile OPTIONS <optimization>speed : -O3 ;
|
||||
+flags gcc.compile OPTIONS <optimization>speed : -O2 ;
|
||||
flags gcc.compile OPTIONS <optimization>space : -Os ;
|
||||
|
||||
flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
|
||||
@@ -362,11 +364,13 @@ rule compile.c
|
||||
toolset.flags gcc.compile OPTIONS <inlining>off : -fno-inline ;
|
||||
@@ -473,11 +473,13 @@ rule compile.c ( targets * : sources * : properties *
|
||||
|
||||
actions compile.c++ bind PCH_FILE
|
||||
{
|
||||
+ echo "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-128 $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
"$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-128 $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
+ echo "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
"$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)"
|
||||
}
|
||||
|
||||
actions compile.c bind PCH_FILE
|
||||
{
|
||||
+ echo "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
|
||||
"$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
|
||||
+ echo "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
|
||||
"$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<)" "$(>)"
|
||||
}
|
||||
|
||||
@@ -490,12 +494,6 @@ rule init-link-flags ( toolset linker condition )
|
||||
{
|
||||
case gnu :
|
||||
{
|
||||
- # Strip the binary when no debugging is needed.
|
||||
- # We use --strip-all flag as opposed to -s since icc
|
||||
- # (intel's compiler) is generally option-compatible with
|
||||
- # and inherits from gcc toolset, but does not support -s
|
||||
- flags $(toolset).link OPTIONS $(condition)/<debug-symbols>off : -Wl,--strip-all
|
||||
- : unchecked ;
|
||||
flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
|
||||
flags $(toolset).link RPATH_LINK $(condition) : <xdll-path> : unchecked ;
|
||||
flags $(toolset).link START-GROUP $(condition) : -Wl,--start-group : unchecked ;
|
||||
@@ -565,6 +563,7 @@ rule link ( targets * : sources * : properties * )
|
||||
@@ -795,6 +797,7 @@ rule link ( targets * : sources * : properties * )
|
||||
|
||||
actions link bind LIBRARIES
|
||||
{
|
||||
+ echo "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
"$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
+ echo "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
"$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
|
||||
}
|
||||
@@ -855,10 +858,10 @@ rule link.dll ( targets * : sources * : properties * )
|
||||
JAM_SEMAPHORE on $(targets) = <s>gcc-link-semaphore ;
|
||||
}
|
||||
|
||||
@@ -629,7 +628,8 @@ rule link.dll ( targets * : sources * : properties * )
|
||||
# Differ from 'link' above only by -shared.
|
||||
-# Differs from 'link' above only by -shared.
|
||||
+# Differs from 'link' above only by -shared and -fPIC.
|
||||
actions link.dll bind LIBRARIES
|
||||
{
|
||||
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
+ echo "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared -fPIC $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared -fPIC $(START-GROUP) "$(>)" "$(LIBRARIES)" -l$(FINDLIBS-ST) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,"$(RPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared -fPIC $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)
|
||||
}
|
||||
|
||||
# Set up threading support. It's somewhat contrived, so perform it at the end,
|
||||
rule setup-threading ( targets * : sources * : properties * )
|
||||
|
@ -1,11 +0,0 @@
|
||||
$OpenBSD: patch-tools_build_v2_tools_python_jam,v 1.3 2009/07/27 00:34:24 kurt Exp $
|
||||
--- tools/build/v2/tools/python.jam.orig Wed Jan 9 03:11:51 2008
|
||||
+++ tools/build/v2/tools/python.jam Wed Jan 9 03:16:32 2008
|
||||
@@ -623,6 +623,7 @@ local rule system-library-dependencies ( target-os )
|
||||
case qnx* : return ;
|
||||
case darwin : return ;
|
||||
case windows : return ;
|
||||
+ case openbsd : return ;
|
||||
|
||||
case hpux : return <library>rt ;
|
||||
|
@ -1,26 +0,0 @@
|
||||
@comment $OpenBSD: PFRAG.shared,v 1.5 2008/04/03 07:44:40 bernd Exp $
|
||||
@lib lib/libboost_date_time-mt.so.${LIBboost_date_time-mt_VERSION}
|
||||
@lib lib/libboost_date_time.so.${LIBboost_date_time_VERSION}
|
||||
@lib lib/libboost_filesystem-mt.so.${LIBboost_filesystem-mt_VERSION}
|
||||
@lib lib/libboost_filesystem.so.${LIBboost_filesystem_VERSION}
|
||||
@lib lib/libboost_graph-mt.so.${LIBboost_graph-mt_VERSION}
|
||||
@lib lib/libboost_graph.so.${LIBboost_graph_VERSION}
|
||||
@lib lib/libboost_iostreams-mt.so.${LIBboost_iostreams-mt_VERSION}
|
||||
@lib lib/libboost_iostreams.so.${LIBboost_iostreams_VERSION}
|
||||
@lib lib/libboost_prg_exec_monitor-mt.so.${LIBboost_prg_exec_monitor-mt_VERSION}
|
||||
@lib lib/libboost_prg_exec_monitor.so.${LIBboost_prg_exec_monitor_VERSION}
|
||||
@lib lib/libboost_program_options-mt.so.${LIBboost_program_options-mt_VERSION}
|
||||
@lib lib/libboost_program_options.so.${LIBboost_program_options_VERSION}
|
||||
@lib lib/libboost_python-mt.so.${LIBboost_python-mt_VERSION}
|
||||
@lib lib/libboost_python.so.${LIBboost_python_VERSION}
|
||||
@lib lib/libboost_regex-mt.so.${LIBboost_regex-mt_VERSION}
|
||||
@lib lib/libboost_regex.so.${LIBboost_regex_VERSION}
|
||||
@lib lib/libboost_serialization-mt.so.${LIBboost_serialization-mt_VERSION}
|
||||
@lib lib/libboost_serialization.so.${LIBboost_serialization_VERSION}
|
||||
@lib lib/libboost_signals-mt.so.${LIBboost_signals-mt_VERSION}
|
||||
@lib lib/libboost_signals.so.${LIBboost_signals_VERSION}
|
||||
@lib lib/libboost_thread-mt.so.${LIBboost_thread-mt_VERSION}
|
||||
@lib lib/libboost_unit_test_framework-mt.so.${LIBboost_unit_test_framework-mt_VERSION}
|
||||
@lib lib/libboost_unit_test_framework.so.${LIBboost_unit_test_framework_VERSION}
|
||||
@lib lib/libboost_wave-mt.so.${LIBboost_wave-mt_VERSION}
|
||||
@lib lib/libboost_wave.so.${LIBboost_wave_VERSION}
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user