
Bryce,
Which gcc version? __sync_fetch_and_add_4 is a gcc intrinsic, and it's never called directly by Boost code (__sync_fetch_and_add is call, gcc expands that to a macro which selects the right version of __sync_fetch_and_add to invoke).
This sounds like a problem with your toolchain, not with Boost. You might be neglecting a flag to gcc to properly target 32bit.
I could be mistaken about this - the only place in boost that __sync_fetch_and_add is called is in smart_ptr and interprocess, so I'm assuming that your problem is in one of those calls.
actually, with boost 1.44.0, a simple code sample that only referst so smart_ptr.hpp compiles & links fine. but a sample that refers to boost::regex, it will fail with the same __sync_fetch_and_add_4 issue. so, it seems in boost 1.44.0, this is indeed a regex related problem. Akos