Mikko Tolmunen writes:

> On Thursday 10 January 2008 13:52:15 Deanna Phillips wrote:
>> Neat.  Could you please explain the reason for and origin of
>> the patches to boost code?
>
> BJAM_CONFIG environment variable can be used in CONFIGURE_ENV,
> as i added SO_VERSION variable to the boost jamfile that
> defines the version number which is appended to generated
> shared libraries. it's not perfect but better than none at
> all.  configure and tools/build/v2/tools/gcc.jam
>
> we don't have statvfs:
> libs/filesystem/src/operations.cpp

Hmm..so I guess darwin and OpenBSD are the only OS that lacks
statvfs these days

 # else // BOOST_POSIX_API
 #   include <sys/types.h>
-#   ifndef __APPLE__
+#   if !defined(__APPLE__) && !defined(__OpenBSD__)
 #     include <sys/statvfs.h>
 #     define BOOST_STATVFS statvfs
 #     define BOOST_STATVFS_F_FRSIZE vfs.f_frsize
 #   else
+#     include <sys/param.h>
 #     include <sys/mount.h>
 #     define BOOST_STATVFS statfs
 #     define BOOST_STATVFS_F_FRSIZE static_cast<boost::uintmax_t>( vfs.f_bsize 
)


> three files needed to be touched to make sure
> boost_wserialization doesn't get build in any cases:
> Jamfile.v2, libs/serialization/test/Jamfile.v2 and
> libs/serialization/build/Jamfile.v2
>
> was passing unnecessary and unfriendly flags for the python
> module: tools/build/v2/tools/python.jam
>
> those two patches are official bug fixes from boost web site:
> boost/function/function_template.hpp
> boost/function/function_base.hpp
>
> Boost.Function in Boost 1.34.x has a bug that affects the
> construction of Boost.Function objects in a multi-threaded
> context. To patch your Boost 1.34.x, copy the files
> function_base.hpp and function_template.hpp into the Boost
> directory boost/function.
>
>
> hopefully i got them all covered.

The rest sounds good, however, the update breaks monotone.  It
seems that the boost_regex lib is unusable for us in 1.34.1:

in devel/monotone:

checking boost version 1.32.0 or newer... yes
checking for the boost_filesystem library... yes
checking for the boost_regex library... no
configure: error: the boost_regex library is required
See `config.log' for more details.
*** Error code 1

The test is something like this:

#include <boost/regex.hpp>
using namespace boost;
int
main(void)
{
        regex expr("foo");
        return 0;
}

% c++ -I /usr/local/include test.cpp -L/usr/local/lib -lboost_regex
/usr/local/lib/libboost_regex.so.1.0: warning: wcscpy() is almost always 
misused, please use wcslcpy()
/usr/local/lib/libboost_regex.so.1.0: warning: strcpy() is almost always 
misused, please use strlcpy()
/usr/local/lib/libboost_regex.so.1.0: warning: sprintf() is often misused, 
please use snprintf()
/usr/local/lib/libboost_regex.so.1.0: warning: strcat() is almost always 
misused, please use strlcat()
/usr/local/lib/libboost_regex.so.1.0: undefined reference to 
`boost::re_detail::cpp_regex_traits_implementation<char>::isctype(char, 
unsigned) const'
collect2: ld returned 1 exit status



Reply via email to