> Ну ладно, там чувак тоже в описании бага ошибся и написал, что
> проблема в glibc, но ты-то мог бы заметить, что это чушь. Понятно.
>> Но зачем делать системный libstdc++ от более нового GCC, чем сам /usr/bin/gcc, когда можно не городить таких костылей? Так в каких-нибудь дистрибутивах делали?
> Затем, чтобы можно было параллельно установить и использовать более новый gcc с
> поддержкой C++17, с неё ведь всё началось.
Не-не, началось с задачи "поддержка C++17 должна быть и в компиляторе, и в libstdc++". Только в компиляторе - вообще без проблем, но нужно же прилинковать какую-то libstdc++, статически или динамически, а если динамически, то при запуске программы она должна оказаться установленной. Если бы было достаточно поддержки С++17 только в компиляторе, то нашего разговора бы не было.
>> Обновлять libstdc++ надо, безусловно, вместе с её заголовочными файлами. Использовать с ней сарый компилятор (с его старыми заголовочными файлами, не относящимися к libstdc++) при этом можно.
> Вот тут я всё же наврал. Заголовочные файлы компилятору нужны от его
> родной версии libstdc++. Сама библиотека при этом может быть более новой.
Логично, ведь ABI сохранен, символы версионированы, не должны быть проблем собраться с новыми заголовочными файлами и слинковаться с более старой libstdc++, но только при условии, что в ней есть все необходимые символы. В случае LibreOffice 6.3 это не так.
> По крайней мере, так это сделано в Debian (на одной системе
> у меня сейчас установлены g++ версий 4.7, 6 и 8, на
> другой — 4.8 и 8, у каждой свои заголовочники от libstdc++,
> а libstdc++.so.6 от 8 версии, и все версии благополучно работают).
При этом Debian в стабильном релизе не обновляет версию libstdc++.so.6, а дополнительные версии компиляторов линкуются с той, которая поставляется по умолчанию.
> И это не костыль,
> костыль — когда часть пакетов приходится собирать gcc, другую — clang'ом,
> и линковать их с непонятно как названной стандартной библиотекой.
> Потом, я уже писал, что так оно работает как минимум в Debian.
Debian на ходу не обновляет libstdc++.so.6, если вы сами подложили другую библиотеку в обход пакетной системы, то это вы сделали на свой страх и риск, это не дистрибутивное решение.
>> давайте, интересно.
> Там проявлялась вот эта ошибка: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69191
> Компилятор хоть и был новый, а бага старой libstdc++ вылезала. Разрабы были
> очень недовольны: «как так, я на бубунте той же версией gcc
> собираю, и всё работает».
Спасибо, почитаю.
>> Кто-нибудь уже прошелся по таким граблям?
> Уже писал. Лично ходил около 5 лет, и примерно столько же ходили
> до меня. Граблей не обнаружено.
5 лет подменяете системную libstdc++.so.6 на более новую? А более новую сами собираете? Или еще и libc.so.6 подменяете, чтобы удовлетворить зависимости новых libstdc++.so.6 и libgcc_s.so.1? Или копируете бинарную от более нового gcc из репозитория? Что-то не верится, полагаю, вы подменяете понятия и говорите об использовании альтернативной версии gcc с системной libstdc++.so.6, что не подходит в случае Росы, поскольку системная libstdc++.so.6 слишком старая.
> См. также написанное про Debian.
> Также попробуй включить мозг и вспомнить, что происходит при разработке новой веткии
> дистрибутива. Когда компилятор с libstdc++ обновили, но массовой пересборки ещё не
> было. Хоть раз что-то в этот момент ломалось из-за новой libstdc++?
При разработке новой версии дистрибутива весь дистрибутив пересобирается в сборочнице и не работает в продакшене. Требуется лишь работа компонентов базового сборочного окружения и некоторых вспомогательных программ-сборочных зависимостях. Так даже смесь из OpenSSL 1.0 и 1.1 работает, вот прямо сейчас в rosa2019.1. Ни в одном известном мне релизный дистрибутив такая смесь не уходит в релиз.
>> Роллинг-дистрибутивы существуют не потому что ничего не ломается, а потому что почти ничего не ломается.
> То ли ты опять ничего не понял, то ли, что более вероятно,
> просто не хочешь понимать. Они существуют, потому что в них не
> ломается вообще всё при каждом обновлении.
"Вообще всё" не ломается, да, а что-нибудь ломается, не понимаю, в чем проблема, почему я должен посчитать уместным потащить такую схему в релизный дистрибутив, пользователи которого не подписывались на такие риски?