ЕМ>Я говорю прежде всего о том, что само по себе разделение на "свою" и "чужую" ОС является сугубо искусственным и не обосновано ничем, кроме упрямого желания "просто хочу, чтоб было так". Система разработки/сборки вообще не должна содержать таких категорий. Она должна тупо получать на входе исходники, библиотеки и параметры сборки в явном виде, тогда на выходе всегда будет предсказуемый результат, никак не зависящий от ее текущего окружения. Для удобства в ней может быть режим "взять параметры из родной системы", но это должен быть лишь один из возможных равноправных вариантов, а не стандартный и предпочтительный.
Да, желание-то хорошее, но в силу исторических причин не срослось-с. Правильные подвижки в этом направлении демонстрирует zigcc, умеющий при работе в режиме C–компилятора без лишних танцев с бубнами генерировать бинарники под все доступные для clang целевые платформы.
https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html