In every sigle cross-compiler i've made there is always a bug on atomicity operations when running complied programme on a pure old msdos machine running on i386 always end up with a SIGILL termination code on start up.
an Addr2line on the stack return me to the file in libstdc++-v3/config/cpu/i486 or libstdc++-v3/config/cpu/i386
The work around i'm using is copying the code in libstdc++-v3/config/cpu/generic in the folder libstdc++-v3/config/cpu/i386 and libstdc++-v3/config/cpu/i486 and recompile the whole thing.