With regard to compiling with warnings as errors (-Werror), I've been disabling warnings from some header files by including them through "-isystem". However, with g++-arm-none-eabi-4.9 (downloaded from https://launchpad.net/gcc-arm-embedded/+download) it seems that files included from paths listed as "-isystem" are implicitly considered 'extern "C"'. This is causing some issues with (for instance) "error: template with C linkage". I learned of this through a mailing list thread: https://gcc.gnu.org/ml/gcc-patches/2012-06/msg01159.html If I include these directories with -I, and I exclude "-Werror" (so that warnings are not treated as errors) then I can compile. I'm wondering if there are any options that would allow me to continue treating warnings as errors, except for (third_party) headers that are out of my control, without implicitly treating those headers with 'extern "C"'? Thanks for any help!