When compiling a combined gcc + g++ + binutils, the configure script for the libstdc++ library is using the host g++ rather than the last stage g++ for determining atomic builtin support status.
While I probably need to compile the toolchain with CXXFLAGS=-march=i486, from what I've read, to enable support for atomic builtins in the compiler, I did not. This resulted in a target g++ that did not support atomic builtins and a libstdc++ that expected the compiler did because it got the value from checking the host g++ rather than the final bootstrap stage g++. The configure parameters were: --prefix=/$(TOOLS_DIR)/usr \ --with-sysroot=/$(TOOLS_DIR) \ --with-pic \ --enable-shared \ --enable-clocale=gnu \ --enable-threads=posix \ --enable-__cxa_atexit \ --enable-languages=c,c++ \ --enable-checking=release \ --disable-werror \ --enable-stage1-checking \ --enable-bootstrap -- Summary: libstdc++ built during bootstrap is pulling in host g++ support for atomic builtins Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: oblivian at users dot sourceforge dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35816