Added C++ Builder 6 binary compatibilty fixes,

Updated gcc makefiles to build archive index.


[SVN r14088]
This commit is contained in:
John Maddock
2002-06-06 11:33:46 +00:00
parent 293b945785
commit b856079e74
5 changed files with 24 additions and 4 deletions

View File

@ -95,6 +95,7 @@ boost_regex_clean :
./gcc/libboost_regex.a : gcc/boost_regex/c_regex_traits.o gcc/boost_regex/c_regex_traits_common.o gcc/boost_regex/cpp_regex_traits.o gcc/boost_regex/cregex.o gcc/boost_regex/fileiter.o gcc/boost_regex/instances.o gcc/boost_regex/posix_api.o gcc/boost_regex/regex.o gcc/boost_regex/regex_debug.o gcc/boost_regex/regex_synch.o gcc/boost_regex/w32_regex_traits.o gcc/boost_regex/wide_posix_api.o gcc/boost_regex/winstances.o
ar -r gcc/libboost_regex.a gcc/boost_regex/c_regex_traits.o gcc/boost_regex/c_regex_traits_common.o gcc/boost_regex/cpp_regex_traits.o gcc/boost_regex/cregex.o gcc/boost_regex/fileiter.o gcc/boost_regex/instances.o gcc/boost_regex/posix_api.o gcc/boost_regex/regex.o gcc/boost_regex/regex_debug.o gcc/boost_regex/regex_synch.o gcc/boost_regex/w32_regex_traits.o gcc/boost_regex/wide_posix_api.o gcc/boost_regex/winstances.o
-ar -s gcc/libboost_regex.a
########################################################
#
@ -148,4 +149,5 @@ boost_regex_debug_clean :
./gcc/libboost_regex_debug.a : gcc/boost_regex_debug/c_regex_traits.o gcc/boost_regex_debug/c_regex_traits_common.o gcc/boost_regex_debug/cpp_regex_traits.o gcc/boost_regex_debug/cregex.o gcc/boost_regex_debug/fileiter.o gcc/boost_regex_debug/instances.o gcc/boost_regex_debug/posix_api.o gcc/boost_regex_debug/regex.o gcc/boost_regex_debug/regex_debug.o gcc/boost_regex_debug/regex_synch.o gcc/boost_regex_debug/w32_regex_traits.o gcc/boost_regex_debug/wide_posix_api.o gcc/boost_regex_debug/winstances.o
ar -r gcc/libboost_regex_debug.a gcc/boost_regex_debug/c_regex_traits.o gcc/boost_regex_debug/c_regex_traits_common.o gcc/boost_regex_debug/cpp_regex_traits.o gcc/boost_regex_debug/cregex.o gcc/boost_regex_debug/fileiter.o gcc/boost_regex_debug/instances.o gcc/boost_regex_debug/posix_api.o gcc/boost_regex_debug/regex.o gcc/boost_regex_debug/regex_debug.o gcc/boost_regex_debug/regex_synch.o gcc/boost_regex_debug/w32_regex_traits.o gcc/boost_regex_debug/wide_posix_api.o gcc/boost_regex_debug/winstances.o
-ar -s gcc/libboost_regex_debug.a

View File

@ -77,6 +77,7 @@ EOF
else
echo ./$subdir/lib$libname.a : $all_obj >> $tout
echo " ar -r $subdir/lib$libname.a $all_obj" >> $tout
echo " -ar -s $subdir/lib$libname.a" >> $tout
fi
echo "" >> $tout
}
@ -234,3 +235,4 @@ gcc_gen_shared
# remove tmep files;
rm -f $tout $iout

View File

@ -664,7 +664,9 @@ void BOOST_REGEX_CALL c_regex_traits<char>::m_free()
re_free_classes();
re_free_collate();
--entry_count;
if(entry_count == 0)
// add reference to static member here to ensure
// that the linker includes it in the .exe:
if((entry_count == 0) && (0 != &c_regex_traits<char>::i))
{
delete ctype_name;
delete collate_name;
@ -888,7 +890,9 @@ void BOOST_REGEX_CALL c_regex_traits<wchar_t>::m_free()
re_message_free();
re_free_classes();
re_free_collate();
if(nlsw_count == 0)
// add reference to static member here to ensure
// that the linker includes it in the .exe:
if((nlsw_count == 0) && (0 != &c_regex_traits<wchar_t>::init_))
{
// cleanup:
delete wlocale_name;

View File

@ -382,9 +382,12 @@ void BOOST_REGEX_CALL w32_traits_base::do_free()
{
BOOST_RE_GUARD_STACK
delete[] pclasses;
pclasses = 0;
delete pcoll_names;
pcoll_names = 0;
#ifndef BOOST_NO_WREGEX
delete syntax;
syntax = 0;
#endif
if(hresmod)
{
@ -399,6 +402,7 @@ void BOOST_REGEX_CALL w32_traits_base::do_free()
re_custom_error_messages[i] = 0;
}
}
is_init = false;
}
std::string BOOST_REGEX_CALL w32_traits_base::error_string(unsigned id)
@ -498,7 +502,9 @@ w32_regex_traits<char>::~w32_regex_traits()
#ifdef BOOST_HAS_THREADS
re_detail::cs_guard g(*re_detail::p_re_lock);
#endif
if(--entry_count == 0)
// add reference to static member here to ensure
// that the linker includes it in the .exe:
if((--entry_count == 0) && (0 != &w32_regex_traits<char>::i))
do_free();
#ifdef BOOST_HAS_THREADS
g.acquire(false);
@ -665,7 +671,9 @@ w32_regex_traits<wchar_t>::~w32_regex_traits()
#ifdef BOOST_HAS_THREADS
re_detail::cs_guard g(*re_detail::p_re_lock);
#endif
if(--entry_count == 0)
// add reference to static member here to ensure
// that the linker includes it in the .exe:
if((--entry_count == 0) && (0 != &w32_regex_traits<wchar_t>::init_))
do_free();
#ifdef BOOST_HAS_THREADS
g.acquire(false);

View File

@ -26,6 +26,10 @@
#include <boost/regex.hpp>
#include "regress.h"
# ifdef BOOST_MSVC
# pragma warning(disable: 4244 4267)
#endif
using namespace boost;
template <class M1, class M2>