
I've been taking a whack at the problems that show up on gcc-3_3-darwin. On May 14, 2005, at 12:22 PM, Douglas Gregor wrote:
program_options (borland-5_6_4, vc7, gcc-3_3-darwin, intel-8.1-linux)
The unicode_test_dll failure on Darwin is really, really strange. Everything is fine with static linking, but conversion inexplicably fail when we link dynamically. Attempts to debug this failed miserably :(
mpl (gcc-3_3-darwin)
Fixed.
random (gcc-3_3-darwin, gcc-2.95.3-linux, gcc-2.95.3-stlport-4.5.3-linux)
Fixed.
spirit (cw-8_3, gcc-3_3-darwin on multiprocessor machines)
This fails on Darwin for multiprocessor systems but is fine on uniprocessor systems, which seems to indicate some kind of race condition, although I can't tell if it's in the Thread library or the test itself. However, I'm looking at boost/spirit/core/non_terminal/impl/object_with_id.ipp and I'm a bit concerned about the static mutex in object_with_base_id::acquire_object_id, for two reasons: 1) It's inline, so we're relying on the compilers to be good about generating only one mutex. 2) Static initialization is not necessarily thread-safe, so two threads could conceivably initialize it at precisely the same moment, and might explain the error we're seeing. When I get back to my multiprocessor Darwin machine, I'll see if there's a workaround. Doug