serialization test all fail on darwin

I'm getting all failures in the serialization library on Darwin - gcc 3.1 A few days ago I got all passes for this platform(exception wide char xml - a separate issue). I had hoped it my go away spontaneously - as it arrived - but no luck. Does anyone have a suggestion on how to address this? Robert Ramey ld: multiple definitions of symbol boost::unit_test::(anonymous namespace)::first_failed_assertion() /Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/b uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_mo nitor.a(unit_test_log.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in section (__TEXT,__text) /Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/b uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_mo nitor.a(supplied_log_formatters.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in section (__TEXT,__text)

"Robert Ramey" <ramey@rrsd.com> wrote:
I'm getting all failures in the serialization library on Darwin - gcc 3.1 A few days ago I got all passes for this platform(exception wide char xml - a separate issue). I had hoped it my go away spontaneously - as it arrived - but no luck.
Does anyone have a suggestion on how to address this?
Robert Ramey
ld: multiple definitions of symbol boost::unit_test::(anonymous namespace)::first_failed_assertion() /Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/b uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_mo nitor.a(unit_test_log.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in section (__TEXT,__text) /Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/b uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_mo nitor.a(supplied_log_formatters.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in section (__TEXT,__text)
I've made two changes to boost (enclosed) and the darwin tests have gone from 66% to 97% passing (including all the serialization tests). The changes are adding "inline" to 4 functions (although I suspect that only two are necessary). Would someone check these over and commit them, please? [ Or I can commit them ] P.S. I'm using gcc 3.3, which (before yesterday) was the current gcc on Mac OS. Index: boost/boost/test/detail/xml_printer.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/test/detail/xml_printer.hpp,v retrieving revision 1.1 diff -r1.1 xml_printer.hpp 39c39 < static std::ostream& print_escaped( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_escaped( std::ostream& where_to, const_string value )
63c63 < static std::ostream& print_attr_value( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_attr_value( std::ostream& where_to, const_string value )
75c75 < static std::ostream& print_pcdata( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_pcdata( std::ostream& where_to, const_string value )
Index: boost/boost/test/unit_test_result.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/test/unit_test_result.hpp,v retrieving revision 1.21 diff -r1.21 unit_test_result.hpp 40c40 < void first_failed_assertion() {} ---
inline void first_failed_assertion() {}
-- -- Marshall Marshall Clow Idio Software <mailto:marshall@idio.com> It is by caffeine alone I set my mind in motion. It is by the beans of Java that thoughts acquire speed, the hands acquire shaking, the shaking becomes a warning. It is by caffeine alone I set my mind in motion.

ld: multiple definitions of symbol boost::unit_test::(anonymous namespace)::first_failed_assertion()
/Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/ b
uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_m o
nitor.a(unit_test_log.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in section (__TEXT,__text)
/Volumes/stuff/users/alexy/__boost_regressions/results/bin/boost/libs/test/ b
uild/libboost_test_exec_monitor.a/gcc-3.1-darwin/debug/libboost_test_exec_m o
nitor.a(supplied_log_formatters.o) definition of boost::unit_test::(anonymous namespace)::first_failed_assertion() in
I've commited proposed patches, even though it's clear severe compiler bug in both cases: in one case it static member function defined in class body, the second is free function defined in unnamed namespace. In both cases they shouldn't cause link errors. Regards, Gennadiy. section
(__TEXT,__text)
[...]
Index: boost/boost/test/detail/xml_printer.hpp =================================================================== RCS file: /cvsroot/boost/boost/boost/test/detail/xml_printer.hpp,v retrieving revision 1.1 diff -r1.1 xml_printer.hpp 39c39 < static std::ostream& print_escaped( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_escaped( std::ostream& where_to, const_string value )
63c63 < static std::ostream& print_attr_value( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_attr_value( std::ostream& where_to, const_string value )
75c75 < static std::ostream& print_pcdata( std::ostream& where_to, const_string value ) ---
static inline std::ostream& print_pcdata( std::ostream& where_to, const_string value )
Index: boost/boost/test/unit_test_result.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/test/unit_test_result.hpp,v retrieving revision 1.21 diff -r1.21 unit_test_result.hpp 40c40 < void first_failed_assertion() {} ---
inline void first_failed_assertion() {}
participants (3)
-
Gennadiy Rozental
-
Marshall Clow
-
Robert Ramey