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