On Mac qstrdefs preprocessing is now broken; see 1129de5#commitcomment-11139851
The problem is that some qstr names (in this case stdin, stdout, stderr) are #define'd to something else in a system header. And so Q(stdin) is preprocessed to, eg, Q(__stdinp).
[@pfalcon I think this has arisen due to 8fbabab.]
We need the preprocessor to run on qstrdefs.h to selectively include certain qstrs. We need to include mpconfigport.h in qstrdefs.h to work out what to enable. And mpconfigport.h can include system headers.
Currently qstrdefsport.h is not preprocessed (I think for this same reason of macro name clashes) and it would be nice to be able to pass that file also through the C preprocessor.