http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52241
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-16 09:26:58 UTC --- The fact that -fPIC code is often slower than -fno-pic code on many targets isn't that surprising. But libstdc++.so.6's tree.cc has been compiled with -fPIC -DPIC before Benjamin's change and is compiled with those flags after those changes as well (on x86_64 you would likely not being able to link libstdc++.so.6 otherwise). So, are you linking libstdc++ statically into the benchmark? Why? That isn't what people normally do, nor they should be doing. It is true that libstdc++.a now contains PIC code after the move to the convenience libraries, while previously it contained non-PIC code (with the exception of libsupc++ stuff that was PIC already before those changes).