Sorry to keep banging on about this... I've just tried; gcc -march=native -mtune=native -E -x c /dev/null -v On aarch64 with a hand-built 7.1.0. I get this; COLLECT_GCC_OPTIONS= '-E' '-v' '-mlittle-endian' '-mabi=lp64' '-march=armv8-a+crypto+crc' '-mtune=cortex-a53' I don't know if the arch is fully correct (certainly it is v8 at any rate), but I do know the tune is correct. I've also tried this on mipsel, using the Debian 8 provided 4.9.2, which gives; COLLECT_GCC_OPTIONS= '-E' '-v' '-mllsc' '-mno-shared' '-EL' '-mabi=32' Which is a bit unexpected - there is no march argument present. I think earlier when I was omitting arch, the compiler-default arch was coming through, where-as otherwise is was being elided by the presence of "native", even though native seemingly emitted nothing.