Hi, it turns out that the changes in af272aca591fe1dc0f1be64ae5bda147ea98a047 only works when using gcc/g++ with -E or -save-temps, otherwise newlib's newlib.h gets used even if -specs=nano.specs is specified [1]. This is because the driver only use cpp_options spec for the external cpp tool, not for the integrated one. [1] Guess the options I used to test the change... This patch uses instead cpp_unique_options which is used in all cases: it is used directly when the integrated preprocessor is used, and indirectly by expansion of cpp_options otherwise. Tested by running the following C program when building it with gcc or g++ with and without -specs=nano.specs and/or -save-temps: #include int main (void) { printf ("%x\n", sizeof (struct _reent)); return 0; } Is this ok for master? Best regards, Thomas