Либа собирается только новым GCC — причина не в стандарте языка, либа на 17ых, банально GCC/asm выдаёт ошибку что-то типа слишком большой объектник у тебя. Рецепты всякие про bigobj, включить -Os/-O2, -g1/-g0 не помогали.
Помог переезд с 13.2 на 15.2, там такой проблемы уже нет.
Но. Хочу использовать её в проектах, которые собираю GCC 7/8 (Qt 5.X). Она ими вообще не собирается, там даже не bigobj, но это я обнаружил на каких-то внутренних хидерах, есть вероятность, что они не понадобятся, если либа будет предварительно собрана.
В принципе, хотя и лень, можно попробовать переползти на Qt 6.X, но там используется GCC 13.1. Хотя разница в версиях GCC поменьше, чем c Qt5, но всё равно, на два мажорных номера отличается.
Здравствуйте, Marty, Вы писали:
M>Либа собирается только новым GCC — причина не в стандарте языка, либа на 17ых, банально GCC/asm выдаёт ошибку что-то типа слишком большой объектник у тебя. Рецепты всякие про bigobj, включить -Os/-O2, -g1/-g0 не помогали.
А обновление только binutils, без обновления gcc не помогает? Или это слишком хлопотно?
gcc иногда ломает ABI, но не очень часто. Надо искать по доке, нет ли изменений в ABI между интересными тебе версиями. Кроме того, что-то мне говорит, что у тебя MINGW, а там могут встречаться варианты сборки gcc, влияющие на ABI даже и в пределах одной версии.
А так, если ABI одинаковый, чего б ему и не работать?
В общем, я бы попробовал.
Re[2]: Использовать либы собранные другой версией GCC
Здравствуйте, Pzz, Вы писали:
M>>Либа собирается только новым GCC — причина не в стандарте языка, либа на 17ых, банально GCC/asm выдаёт ошибку что-то типа слишком большой объектник у тебя. Рецепты всякие про bigobj, включить -Os/-O2, -g1/-g0 не помогали.
Pzz>А обновление только binutils, без обновления gcc не помогает? Или это слишком хлопотно?
Я под виндой, GCC MINGW-шный, оно всё своё носит с собой, и по частям руками что-то обновлять это фигня какая-то. Ну и как бы какие-то сложные рецепты для сборки не хочется изобретать, даже если и под линупс бы. В стандартном линупсе GCC тоже обычно далеко не самый свежий
Pzz>gcc иногда ломает ABI, но не очень часто. Надо искать по доке, нет ли изменений в ABI между интересными тебе версиями. Кроме того, что-то мне говорит, что у тебя MINGW, а там могут встречаться варианты сборки gcc, влияющие на ABI даже и в пределах одной версии.
Да, GCC MINGW-шный.
Pzz>А так, если ABI одинаковый, чего б ему и не работать?
Pzz>В общем, я бы попробовал.
Да гемморно что-то пробовать. Либа, собсно, gRPC, там одна сборка от часа идёт, экспериментировать можно, но это очень медленно.
Пока решил просто для старых компиляторов юзать версии gRPC более старые, новые фичи пока без особой надобности, но там тоже хрен найдёшь, где написано, с каким минимальным GCC какая версия собирается
Здравствуйте, Marty, Вы писали:
M>Пока решил просто для старых компиляторов юзать версии gRPC более старые, новые фичи пока без особой надобности, но там тоже хрен найдёшь, где написано, с каким минимальным GCC какая версия собирается
Зачем тебе вообще gRPC? У тебя ж, вроде, что-то довольно незамысловатое. Не вебовский бакенд на стероидах микросервисах.
Re[4]: Использовать либы собранные другой версией GCC
Здравствуйте, Pzz, Вы писали:
M>>Пока решил просто для старых компиляторов юзать версии gRPC более старые, новые фичи пока без особой надобности, но там тоже хрен найдёшь, где написано, с каким минимальным GCC какая версия собирается
Pzz>Зачем тебе вообще gRPC? У тебя ж, вроде, что-то довольно незамысловатое. Не вебовский бакенд на стероидах микросервисах.
У меня разное. Сейчас вот ковыряюсь с серверным API, которое на протобафе описано