When creating a qbs profile for the bare metal arm gcc compiler (arm-none-eabi-g++), qbs.targetOS does not get a value. This causes it to default to qbs.hostOS (in common.qbs). This (at least) causes problems on OS X, because the gcc probe (GccProbe.qbs) checks qbs.targetOS for "darwin", will we be true, and "-arch arm" is added to the probe command line. This is not accepted by the arm compiler, which leads to the probe failing to determine the version (and probably also architecture).
A workaround is manually adding a qbs.targetOS property with value "none".