http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52974
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2012-04-13 13:55:27 UTC --- I don't know where they're defined but they're built in and g++ -v shows them #include "..." search starts here: #include <...> search starts here: /home/redi/gcc/4.x/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../include/c++/4.8.0 /home/redi/gcc/4.x/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../include/c++/4.8.0/x86_64-unknown-linux-gnu /home/redi/gcc/4.x/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/../../../../include/c++/4.8.0/backward /home/redi/gcc/4.x/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/include /usr/local/include /home/redi/gcc/4.x/include /home/redi/gcc/4.x/lib/gcc/x86_64-unknown-linux-gnu/4.8.0/include-fixed /usr/include End of search list. The C++ headers are the only ones that need canonicalizing.