Самая первая версия любой ОС должна быть либо кросс-компилированной, либо (для очень простой ОС, как в старые времена) написана от руки в машинном коде. Затем более сложные исполняемые файлы могут быть нацелены на более простую ОС и, возможно, использоваться для создания более сложной ОС (первоначальная компиляция называется «начальной загрузкой», процесс компиляции ОС называется «самостоятельным размещением»). Некоторые ОС становятся сам хостинг, некоторые никогда не делают, если они не предназначены для такого уровня сложности.
В любом случае, я не уверен на 100%, что вы спрашиваете. Многие ОС для небольших устройств не предназначены для работы с файловой системой и другими сложностями, необходимыми для размещения компилятора, поэтому они никогда не смогут компилировать свой собственный код, и кросс-компиляция всегда необходима. Библиотеки, используемые кросс-компилятором, вполне могли быть кросс-компилированными; конечно же, заголовки всегда совпадают с заголовками целевой системы.