Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
If the programmer can be sure that no use of the variable in a non-defining TU needs to trigger dynamic initialization (either because the variable is statically initialized, or a use of the variable in the defining TU will be executed before any uses in another TU), they can avoid this overhead with the -fno-extern-tls-init option.
В частности, наконец то реализация std::list будет соответствовать стандарту.Что, в свою очередь, обозначает, что std::list из GCC5 несовместим с std::list из GCC4, то есть ещё долгие годы мы будем вынуждены использовать только возможности GCC 4.9.
Это же первое изменение ABI GCC в истории!Нет, не первое. Пятое. Предыдущее случилось больше десяти лет назад, когда вышел GCC 3.4. И, надо вам сказать, это был тот ещё геморой: несколько лет приходилось выпускать всякие библиотеки в двух версиях и, соответственно, писать их приходилось так, чтобы они обязательно собирались как GCC 3.3, так и GCC 3.4+.
Нет, серьезно, как разработчик, который поддерживает gcc 3.4, 4.1 и 4.8 одновременно, я не вижу в этом большой беды.Все три названные версии — это libstdc++.so.6 с совместимостью «сверху вниз». Вы можете собрать библиотеку GCC 3.4, слинковать её с библиотекой, собранной GCC 4.9 — и всё будет работать. При должном применении напильника. Иногда бывают кой-какие шероховатости, да, но в целом — это совсем не то, что случилось при переходе с GCC 3.3 на GCC 3.4 и случится при переходе на GCC5. Тут вы даже std::string передать не сможете из одной библиотеки в другую — только через C-shim.
Речь шла про «ещё долгие годы мы будем вынуждены использовать только возможности GCC 4.9.». По-моему, это сгущение.Если бы. С++ библиотеки, собранные с GCC 4.x нельзя толком использовать с GCC 5, потому если вы захотите их использовать, то для вас «потолком» будет GCC 4.9. Потому разработчики так и тянули с переходом, откладывали как могли этот момент и только после того, как реализовали более-менее полностью C++ в GCC 4.9 решились-таки сломать совместимость.
Нет, не первое. Пятое
Вы можете собрать библиотеку GCC 3.4, слинковать её с библиотекой, собранной GCC 4.9
Сводная таблица по поддержке C++ 11/14/17