Не так давно вышел релиз 10-го gcc с поддержкой execution и других клевых штук. Очень хочется все это использовать, однако целевая платформа — CentOS7 amd64.
Если упаковать все по-максимуму в бинарник (бинарник как исполняемый файл, так и so-библиотека), все равно останется зависимость от libc6 и мне скажут что-то про версию ABI и все на этом закончится.
Есть ли возможность запустить бинарник, собранный на свежем дистрибутиве со свежим компилятором на такой целевой ОС? И попутно вопрос, почему статические библиотеки на дистрибутивах x86_64 собираются без флага -fPIC,
т.е. если я компоную на x86 libboost_system.a, то все ок, если на x86_64, то линкер мне скажет "иди собери руками и возвращайся".
И вот идешь и пересобираешь тот же буст, да и все остальное, с указанием -fPIC и тогда все компонуется.
Почему так? Возможно ли в принципе статически приделать libc и сделать бинарник (особенно интересно для so), независимый от libc на машине?
Если да, то не придется ли пересобирать для этого libc?