http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60348
--- Comment #4 from Nach <nachms+gcc at gmail dot com> --- (In reply to Marc Glisse from comment #3) > man nm: > > "U" The symbol is undefined. > > "u" The symbol is a unique global symbol. This is a GNU > extension [...] > > The program does run fine for me with exactly the same compiler on debian. > > How did it fail to run for you, with what error message? The issue isn't that it can't run on a machine with a proper libstdc++ installed, the issue is that -static-libstdc++ is broken, meaning the binary cannot run on a system without libstdc++ installed (or a too old version). Trying to run the Debian compiled binary on RHEL5 is giving me: ./test: symbol lookup error: ./test: undefined symbol: _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE And on RHEL5 system: objdump -T ./test | grep _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE 0000000000690c00 DO .bss 0000000000000020 Base _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE Where on Debian it gives: 0000000000690c00 u DO .bss 0000000000000020 Base _ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE In the past when -static-libstdc++ was working, binaries ran just fine on older systems.