ЕМ>Поскольку для линуксов давно наработаны типовые комплекты скриптов, в основу которых положена странная идея "своей" системы, неудивительно, что это создает столько проблем при малейшем отступлении от привычных вариантов.
По сути-то необходимо соблюсти всего лишь два нюанса:
1. gcc/clang тащит с собой кодогенерацию под все известные триплеты "аритектура-ос-libc";
2. gcc/clang не имеет никаких умолчаний: всё надо передавать явно. Каждый define, каждый путь к директориям с заголовочными файлами и библиотеками, каждый флаг компиляции.
Однако, подобный тулчейн будет ломать все исторически сложившиеся практики, и по-моему именно поэтому никогда не станет стандартным.
PS. Припоминается один грязный трюк для сборки исполняемого бинарника с покрытием как можно большего количества linux'ов: статическая линковка с musl libc. Бинарь сразу перестаёт зависеть от версии glibc, чем печально славится большинство дистрибутивов: соберешь под одну версию, а под другой отваливается. Однако, под некоторыми дистрами, нарушающими кое-какие древние неписанные конвенции размещения системных файлов в фиксированных локациях на ФС (например, /etc/hosts всегда лежит по пути /etc/hosts), этот трюк тоже хрен поможет