The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск системной библиотеки Glibc 2.40"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от opennews (??), 22-Июл-24, 17:52 
После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.40, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 68 разработчиков...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=61594

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


2. "Выпуск системной библиотеки Glibc 2.40"  –21 +/
Сообщение от Аноним (2), 22-Июл-24, 18:01 
> Устранены уязвимости:
> - CVE-2024-2961 - переполнение буфера ...
> - CVE-2024-33599 - переполнение буфера ...
> - CVE-2024-33600 - разыменование нулевого указателя ...
> - CVE-2024-33601 - ошибка при работке с кэшем ... из-за сбоя при выделении памяти
> - CVE-2024-33602 - повреждение памяти при работе с кэшем ...

Срочно писать письмо разрабам с требованием переписать Glibc на Rust!

Ответить | Правка | Наверх | Cообщить модератору

7. "Выпуск системной библиотеки Glibc 2.40"  +28 +/
Сообщение от Аноним (-), 22-Июл-24, 18:18 
> Срочно писать письмо разрабам с требованием переписать Glibc на Rust!

Вот ты и попался любитель Раста!
СИшка это лучшее что изобрело человечество!
Эти все ошибки только потому, что уровень программистов опустился на дно.
Настоящий СИ программист всегда проверяет входные данные, выделяет столько памяти сколько нужно и правильно ее освобождает.


Ответить | Правка | Наверх | Cообщить модератору

24. "Выпуск системной библиотеки Glibc 2.40"  +6 +/
Сообщение от Аноним (24), 22-Июл-24, 19:59 
Тонко, тонко... Но одного единственного на всю планету настоящего си-программиста Дэниэла Бернштейна на все программы мира не хватит
Ответить | Правка | Наверх | Cообщить модератору

51. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (51), 23-Июл-24, 09:13 
А не фиг плодить тучу бесполезных программ.
Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск системной библиотеки Glibc 2.40"  +2 +/
Сообщение от BeLord (ok), 23-Июл-24, 09:45 
Достаточно нормальных С программистов, проблема в том, что эти ребята привыкли делом заниматься,  а не свистоперделки ваять и менеджерский идиотизм переваривают с трудом, потому, что привыкли думать о результатах, а так как лохотронщики от псевдомаркетинга победили, то пользователь будет довольствоваться хламом от вебмартышек.
И просто пример, софт для системы навигации написан на С/аsm в 2008, железо, где этот софт крутится летает на орбите уже больше 15 лет и память не течет, сбоев не зафиксировано.
Ответить | Правка | К родителю #24 | Наверх | Cообщить модератору

62. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Телеметрия (?), 23-Июл-24, 12:34 
Будто программисты на Си много пишут,дописывают и исправляют уж лучше сказать.Хрустеры вот не могут так.Некуда свои закорючки дописывать.Такая же элита как и сишники и вообще программисты в целом. Давно кончились советские инженеры и примазываться к ним вам всем дружно плохая идея.Бгг.
Ответить | Правка | Наверх | Cообщить модератору

90. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (90), 24-Июл-24, 14:10 
а код туда чтоли запаян? насколько знаю вояджеры перепрограммируют под реалии по ходу полета, и таки там были ошибки в коде
Ответить | Правка | Наверх | Cообщить модератору

39. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (39), 23-Июл-24, 03:01 
Да, ты всё правильно написал.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

87. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (-), 24-Июл-24, 08:37 
> Настоящий СИ программист всегда проверяет входные данные, выделяет столько
> памяти сколько нужно и правильно ее освобождает.

А что за клизмы тогда код Xorg писали? Это подделки были? Ведь такая хренота в коде 1988 года выпуска?!

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

89. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (-), 24-Июл-24, 13:24 
> А что за клизмы тогда код Xorg писали? Это подделки были? Ведь такая хренота в коде 1988 года выпуска?!

Значит это были Не Настоящие Сишники, все просто.
Может их подбросили в проект, чтобы они плохо писали и дисредитировали Идеальный Язык Программирования!
Надо проверить, вдруг они в свободное время на паскале пописывали.


Ответить | Правка | Наверх | Cообщить модератору

92. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (-), 25-Июл-24, 00:27 
not a true Scotsman: https://en.wikipedia.org/wiki/No_true_Scotsman

Чеснслова уже в зубах завяз этот аргумент. Можно включить креативность и придумать что-нибудь новенькое для обеления C?

Ответить | Правка | Наверх | Cообщить модератору

94. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (-), 02-Авг-24, 12:28 
> not a true Scotsman: https://en.wikipedia.org/wiki/No_true_Scotsman
> Чеснслова уже в зубах завяз этот аргумент. Можно включить креативность и придумать что-нибудь новенькое для обеления C?

Один из вариантов Закона По гласит что "Любой достаточно развитый тролль неотличим от подлинно помешанного на какой-либо идее."
Так вот ты троллинг не распознал)

Ответить | Правка | Наверх | Cообщить модератору

93. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Соль земли (?), 02-Авг-24, 12:18 
А зачем делать одно и то же по сто раз, если это уже сделали в расте?
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

19. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (19), 22-Июл-24, 19:18 
>Срочно писать письмо разрабам с требованием переписать Glibc на Rust!

Вот тут-то точно случится Stable and unstable ABI is nonsence.

Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

20. "Выпуск системной библиотеки Glibc 2.40"  –1 +/
Сообщение от Аноним (20), 22-Июл-24, 19:18 
Не проверяли, что из этого написано "дидами" четаерть века назад, а что новой порослью?
Ответить | Правка | К родителю #2 | Наверх | Cообщить модератору

4. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (4), 22-Июл-24, 18:09 
Единственное с чем ассоциируется у меня  libc это с отсутствием обратной совместимости...
Ответить | Правка | Наверх | Cообщить модератору

8. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от Аноним (-), 22-Июл-24, 18:28 
> Единственное с чем ассоциируется у меня  libc это с отсутствием обратной
> совместимости...

Потому что как завещал Самый Главный - stable api is nonsense.
Ну и усе остальное стабль тоже нонсенс.
Ведь пользователи как радостно прыгают, когда версия приложения работает только с определеннной версией ядра.

Ответить | Правка | Наверх | Cообщить модератору

16. "Выпуск системной библиотеки Glibc 2.40"  +6 +/
Сообщение от Аноним (19), 22-Июл-24, 19:04 
Главный про ядро говорил. Также говорил, что поломки юзерспейса не допустит.
Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (21), 22-Июл-24, 19:25 
> stable api is nonsense

у тебя есть конкретные возражения к тому документу?

Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

29. "Выпуск системной библиотеки Glibc 2.40"  +2 +/
Сообщение от Аноним (29), 22-Июл-24, 22:04 
Но ведь обратное утверждение. Это поддерживать Легаси тысячилетиями. Из двух зол Легаси или отсутствие стабильности нормальный человек выберет второе.
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

30. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (30), 22-Июл-24, 22:09 
Нормальный человек, конечно, выберет первое, а вот ленивый разработчик — второе.
Ответить | Правка | Наверх | Cообщить модератору

32. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Анонин (-), 22-Июл-24, 22:53 
> Но ведь обратное утверждение. Это поддерживать Легаси тысячилетиями.

Nope. Это две разные, но связанные вещи.
Можно поддерживать море всякого древнего омна и некроплафторм.
При этом умудряясь ломать обратную совместимость везде.
А потом героически всё чинить. Вот линукс это практически оно.

Только ты не всегда даже знаешь что какая-то платформа сломалась уже несколько лет назад, потом что все ее пользователи уже в доме престарелых. А потом появляется какой-то какир с купленной не гаражной распродаже железкой, который начинает вопить "аааа! вся сламалася!"

Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

42. Скрыто модератором  +/
Сообщение от Аноним (42), 23-Июл-24, 08:14 
Ответить | Правка | Наверх | Cообщить модератору

35. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (35), 23-Июл-24, 00:37 
Блин, stable-api-nonsense всё-таки великая статья. Подрывает ламеров уже почти третий десяток лет. Опустим, что ее написал не самый главный, а Грег К-Х и что там речь идёт о внутри ядерных интерфейсах)
Ответить | Правка | К родителю #8 | Наверх | Cообщить модератору

40. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от User (??), 23-Июл-24, 05:19 
Не, ну если цель была в "подрывании ламеров", то да - "великая цель великой статьи достигнута" - правда работать целеполагателю надо не в it, а в стендапе - цель так же достигнется, а вреда окружающим меньше.
А так - да, в "манифесте agile" тоже вот не написано "забейте на документацию" - но норот читает дупой и эгегей! Впрочем, даже если бы норот читал написанное головой - количество проблем с теми же драйверами от "нонсенса" ничуть бы не уменьшилось...
Ответить | Правка | Наверх | Cообщить модератору

64. "Выпуск системной библиотеки Glibc 2.40"  –1 +/
Сообщение от Аноним (-), 23-Июл-24, 13:09 
> и что там речь идёт о внутри ядерных интерфейсах)

Речь могла идти про что угодно.
Но по факту оно более чем применимо к ядру целиком, иначе у нас не было бы столько проблем с драйверами, прибитыми ржавыми гвоздями к конкретной версии ядра.


Ответить | Правка | К родителю #35 | Наверх | Cообщить модератору

70. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (70), 23-Июл-24, 14:47 
Они прибиты из-за того, что люди, вроде автора высказывания, нарушают совместимость и осознанно ломают сборку сторонних модулей в районе версии x.y.255, вместо того, чтобы оставить такие изменения для новой ветки, только потому, что у них стоит цель нагадить в тапки конкурирующим (и куда более успешным) корпорациям.
Ответить | Правка | Наверх | Cообщить модератору

18. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (18), 22-Июл-24, 19:15 
А можно десяток примеров, когда libc ломает обратную совместимость?
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

44. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (44), 23-Июл-24, 08:31 
Десяток подавай... Десятка нет. А есть один, зато мощный. Клиент 1С работает под Astra двухлетней давности, но не работает под новой (обновление тоже ломает, поэтому обновлять систему нельзя со всеми вытекающими последствиями). Причину мы установили - как раз сабж. Версию клиента, привязанную к серверу, сменить нельзя. Выход нашли - переходим на Windows.
Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск системной библиотеки Glibc 2.40"  –1 +/
Сообщение от yet another anonymous (?), 23-Июл-24, 08:52 
Ну вы даёте. Там и 1С, и Астра (которая "подправляет" и libc тоже), а виновата glibc. Впрочем, выход верный --- BSOD, с чистой совестью идём пить кофе и трындеть в курилке.
Ответить | Правка | Наверх | Cообщить модератору

55. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (55), 23-Июл-24, 10:07 
Типичные импортозмещатели. Вопрос только зачем за это взялись если все равно готовить не умеете.  
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

66. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Neon (??), 23-Июл-24, 14:00 
Диванный анонимный эксперт зато умеет.))) Балаболить
Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Boboms (ok), 23-Июл-24, 11:19 
Ставьте Альт
Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

79. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от fi (ok), 23-Июл-24, 18:01 
вангую -  прога грузит две libc - через nss

как говорить  - танцору всё мешает :DDDDDDD

Ответить | Правка | К родителю #44 | Наверх | Cообщить модератору

33. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (33), 23-Июл-24, 00:19 
А у меня ассоциируется с тем, что относительно скоро или переставлять успевший устареть выпуск дистра или собирать эту жлибс стопервый раз и обновлять, так как прикладной софт будет требовать
Ответить | Правка | К родителю #4 | Наверх | Cообщить модератору

56. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от Аноним (55), 23-Июл-24, 10:08 
Прикладной софт должен быть в контейнерах со всеми своими либами.
Ответить | Правка | Наверх | Cообщить модератору

57. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (57), 23-Июл-24, 10:20 
Твоими устами мёд бы пить.. Но грубая реальность такова что через полгодика ктонить соберет ключевую софтину под новую glibc...
Как пример можно привести Blender, они одно время в версиях 2.8x увлекались слишком новыми glibc, народ начал жаловаться, в следующем выпуске откатили обратно и это стало происходить более умеренно
Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск системной библиотеки Glibc 2.40"  –1 +/
Сообщение от Аноним (70), 23-Июл-24, 11:03 
> Прикладной софт должен быть в контейнерах со всеми своими либами.

Если память некуда девать, то конечно. А если есть лишняя, то ты просто бездельник.

Ответить | Правка | К родителю #56 | Наверх | Cообщить модератору

6. Скрыто модератором  –6 +/
Сообщение от Аноним (-), 22-Июл-24, 18:12 
Ответить | Правка | Наверх | Cообщить модератору

10. Скрыто модератором  +/
Сообщение от Серб (ok), 22-Июл-24, 18:40 
Ответить | Правка | Наверх | Cообщить модератору

12. Скрыто модератором  +3 +/
Сообщение от Аноним (-), 22-Июл-24, 18:51 
Ответить | Правка | Наверх | Cообщить модератору

13. Скрыто модератором  +1 +/
Сообщение от Аноним (-), 22-Июл-24, 18:53 
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

15. Скрыто модератором  +/
Сообщение от Серб (ok), 22-Июл-24, 19:03 
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

23. Скрыто модератором  +1 +/
Сообщение от Аноним (-), 22-Июл-24, 19:48 
Ответить | Правка | Наверх | Cообщить модератору

11. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (11), 22-Июл-24, 18:48 
>Функциональность для выявления возможных переполнений буфера и связанных с безопасностью ошибок во время выполнения функций работы со строками и управления памятью ("_FORTIFY_SOURCE") адаптирована для сборки Glibc при помощи компилятора Clang.

Давно собираю с _FORTIFY_SOURCE=3 clangом, проблем не видел.

Ответить | Правка | Наверх | Cообщить модератору

14. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от Аноним (-), 22-Июл-24, 18:53 
> На системах x86 для ускорения записи больших наборов данных в функции memset предоставлена возможность отключения использования временных буферов. Оптимизация активируется при помощи настройки "x86_memset_non_temporal_threshold".

Пугающее улучшение.
В СИшке с одним бушером разобраться за 40 лет не могут, а тут еще будут временные.
Это же сколько возможностей выйти за пределы открывается.

Ответить | Правка | Наверх | Cообщить модератору

17. "Выпуск системной библиотеки Glibc 2.40"  +4 +/
Сообщение от Аноним (19), 22-Июл-24, 19:13 
>одним бушером

При чём здесь Иран?

Ответить | Правка | Наверх | Cообщить модератору

36. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (36), 23-Июл-24, 01:05 
Просто переводил надмозг. Речь про размер буфера для заливки, после которого будет использоваться реализация с non-temporal stores. (Адекватного перевода этого термина я не знаю.)
Ответить | Правка | К родителю #14 | Наверх | Cообщить модератору

37. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (36), 23-Июл-24, 01:06 
https://snapshots.sourceware.org/glibc/trunk/2024-06-12_21-1...
Ответить | Правка | Наверх | Cообщить модератору

25. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (-), 22-Июл-24, 20:03 
Смотрите, есть такая замечательная штука, как libstdc++_nonshared. Как она работает? Вот установлен у тебя в системе GCC 4.8. Рядышком стоит GCC 9. Ты собираешь проги при помощи GCC 9... И готовые бинари требуют GCC 4.8, а не GCC 9!

Я не знаю, как ред хат его готовит, однако эта библиотека есть только в репозитории devtoolset.

А теперь внимание, вопрос! Как собрать бинарник в системе, в которой установлен Glibc 2.32, таким образом, чтобы бинарник хотел Glibc 2.17? Чтобы было аналогично случаю выше, только не с C++, а с обычным C.

Ответить | Правка | Наверх | Cообщить модератору

26. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (19), 22-Июл-24, 20:30 
Опция -L/путь/к/каталогу/с/другой/Glibc при сборке
Ответить | Правка | Наверх | Cообщить модератору

27. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (27), 22-Июл-24, 21:31 
И это будет работать? Может все таки надо собирать компилятор для старой glibc?
Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск системной библиотеки Glibc 2.40"  –1 +/
Сообщение от Аноним (70), 22-Июл-24, 22:28 
Плюсы зависят от компилятора, у плюсов нет abi. У си есть.
Ответить | Правка | Наверх | Cообщить модератору

43. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от Аноним (42), 23-Июл-24, 08:21 
>у плюсов нет abi

Задумайся, что написал.
Если ABI официально не стандартизирован, то это не значит, что его нет. А так-то у большинства языков, которые символы маглят, ABI официально не стандартизированы: D, Nim, ...

Ответить | Правка | Наверх | Cообщить модератору

54. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (70), 23-Июл-24, 10:00 
По этой причине эти языки никогда не будут востребованы. Главное, что при обновлении половина программ гарантированно разлетается (до сих пор!), а тот же wxwidgets надо сразу пересобирать под целевой компилятор. В этом отношении не намного лучше раста.
Ответить | Правка | Наверх | Cообщить модератору

76. Скрыто модератором  +/
Сообщение от Аноним (19), 23-Июл-24, 16:58 
Ответить | Правка | Наверх | Cообщить модератору

77. Скрыто модератором  +/
Сообщение от Аноним (19), 23-Июл-24, 17:00 
Ответить | Правка | Наверх | Cообщить модератору

78. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от n00by (ok), 23-Июл-24, 17:47 
System V Application Binary Interface
AMD64 Architecture Processor Supplement
(With LP64 and ILP32 Programming Models)
Version 1.0

...

Chapter 9
Conventions

9.1 C++

For the C++ ABI we will use the IA-64 C++ ABI and instantiate it appropriately.
The current draft of that ABI is available at:
http://mentorembedded.github.io/cxx-abi/

Ответить | Правка | К родителю #31 | Наверх | Cообщить модератору

48. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от yet another anonymous (?), 23-Июл-24, 09:03 
Нет, не будет.

Предпочтительнее --- да (получится заведомо консистентная конструкция). Но вполне может быть жизнеспособным и в других комбинациях (сильно зависит от того, как этим пользоваться).

Статическими плюсовыми библиотеками не увлекались бы --- есть существенные тонкости в использовании.

Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

34. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от нах. (?), 23-Июл-24, 00:20 
> А теперь внимание, вопрос! Как собрать бинарник в системе, в которой установлен Glibc 2.32, таким
> образом, чтобы бинарник хотел Glibc 2.17?

короткий ответ: никак.

Длинный: теоретически ты бы мог это собрать если бы имел полный набор (не одну лишь libc.so.6!) абсолютно всех системных библиотек где-то в стороне от реально действующих системных, И одновременно - полный набор для замены /usr/include (потому что таки stable nonsense), тоже где-то в стороне.
Дальше тебе предстоит освоить ключик -nostdinc и -nostdlib а потом вручную скармливать компилятору пути к его собственным внутренним инклудам и библиотекам (потому что они тоже отрубятся этими ключами) помимо, очевидных, системных.

Практически - ничего кроме хеловрота ты так не соберешь, потому что будет практически невозможно объяснить модным-современным сборочным системам что ты такое хочешь.

Учитывая что для тебя даже -static-libstdc++ какая-то магия непонятная, требующая каких-то загадочных штуковин - ты точно не сможешь.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

67. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (67), 23-Июл-24, 14:06 
Практически - берется докер с нужной средой и собирается там...
Ответить | Правка | Наверх | Cообщить модератору

68. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от нах. (?), 23-Июл-24, 14:10 
спрашивали-то как в другой системе собрать, а не в "нужной".

Ответить | Правка | Наверх | Cообщить модератору

82. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от yet another anonymous (?), 23-Июл-24, 22:05 
> короткий ответ: никак.

...

Это совершенно не так. Если debian (включая производные) этого по большому счёту не умеет, то из этого не следует, что не умеет никто. Вот я умею, например. (Тезис про helloword --- это тоже не так).

Интересно то, что три четверти проектов, которым я покидывал двух-трёхсторчные патчи по этому поводу уходили на бесконечность со словами "нууу... мы как-то сомневаемся... надо бы подумать...".

Ответить | Правка | К родителю #34 | Наверх | Cообщить модератору

85. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от нах. (?), 24-Июл-24, 01:16 
причем тут - дебиан?

> Вот я умею, например.

п-деть.

Ответить | Правка | Наверх | Cообщить модератору

38. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (36), 23-Июл-24, 01:12 
Зависит от того, что именно из libc ты используешь. Если что-то, что не менялось с 2.17, то ничего делать не придется - собранный бинарник и так будет требовать 2.17. Если ты используешь что-то более свежее, то извини, в 2.17 этого нет, и с ним твой бинарник будет несовместим.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

41. "Выпуск системной библиотеки Glibc 2.40"  +1 +/
Сообщение от DontTreadOnMe (?), 23-Июл-24, 07:09 
1. Самый простой вариант - кросскомпиляция. Берёшь старый дистр с нужной версией libc, ставишь его в отдельную папочку (sysroot), дальше зависит от системы сборки. Для cmake, например, пишешь toolchain.cmake, где задаёшь всё, что касается нового sysroot. Для большинства других систем сборки есть аналоги. Руками тоже можно, но нужно будет указывать `-sysroot`, `-isystem`, `-L` и ещё что-нибудь.

2. Есть компилятор C от zig, который из коробки умеет задавать максимальную требуемую версию glibc, но это не gcc.

3. Как предлагали выше отключать все стандартные библиотеки и линковаться с ними вручную. Но в таком случае нужно будет rpath править руками и граблей там, на мой взгляд, будет больше чем с кросскомпиляцией.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

45. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (44), 23-Июл-24, 08:38 
> 1. Самый простой вариант -

и самый действенный - окончательно собирать приложение в системе с самой старой версией, если, как заметили выше, не используются новые функции (еще помним и о deprecated). Так одно время и делал, имея для этого отдельный компьютер с Ubuntu 18.04, а разрабатываю на Ubuntu 22.04. Потом отказался, правда. Надоело.

Ответить | Правка | Наверх | Cообщить модератору

61. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Tester (??), 23-Июл-24, 12:03 
> Потом отказался, правда. Надоело.

прочитай про docker

Ответить | Правка | Наверх | Cообщить модератору

65. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (44), 23-Июл-24, 13:44 
Предпочитаю развертывать приложения Linux по образцу Windows.
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от нах. (?), 23-Июл-24, 08:45 
для кросскомпиляции ему нужен - кросскомпилятор. Т.е. не надо путать твой опыт, я так подозреваю - пользования готовыми сборками, и попытки сделать самому из подручных средств.

Проблема в том что кросскомпилятор собран специальным образом, -isystem ты вряд ли отделаешься (потому что он не для этого был придуман, он добавляет пути поиска а не заменяет полностью)

Теоретически, можно еще попробовать самому собрать кросс-gcc+toolchain под такое дерево,  а не использовать копию из старой системы, но я не уверен что это тоже будет легко (я напрочь не помню как оно собирается, да и двадцать раз могло поменяться с тех пор как мне такое бывало надо - боюсь что там не отключить сравнение target и текущей архитектуры). Но попробовать стоит - это хотя бы тривиально и недолго. Если получится - то проблема внезапно решилась.

rpath (в ручной схеме) руками править как раз не нужно - когда он не задан, при _сборке_ библиотека ищется по -L, но пути к ней в собранное не прописываются, предполагая что о них позаботится ld.so при старте, что в данном случае и требуется. Более того - собранное будет запускаться в современной системе (все же обратная совместимость в glibc - в основном сохраняется) но в нем не окажется прекрасных символов @GLIBC_2.40.0

Ответить | Правка | К родителю #41 | Наверх | Cообщить модератору

52. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от DontTreadOnMe (?), 23-Июл-24, 09:13 
1. Ты можешь взять самый обычный компилятор из своего дистрибутива и кросс-компилировать им без всяких пересборок компилятора и подобного. Я так регулярно делаю. Абсолютно штатным x86_64 gcc или клангом из федоры. С g++ начиная где-то с 12-ой версии возникают проблемы, т.к. они безбожно ломают совместимость с собственной libstdc++. С клангом всё впорядке и с плюсами, и с сишкой.
Ключевую роль тут играет `-sysroot`, именно он переопределяет основные пути поиска и т.п. Возможно, если в sysroot какой-то очень хитрый дистрибутив, то придётся что-то пересобирать или много всего прописывать. С более-менее нормальным линуксом всё ок либо решается парой симлинков.

2. Руками я пробовал только в рамках потыкать, так что вполне возможно, что я где-то накосячил и у меня появились пляски с rpath. Если без этого всё работает, то отлично.

Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от нах. (?), 23-Июл-24, 11:26 
>> Ключевую роль тут играет `-sysroot`, именно он переопределяет основные пути поиска и

а, наверное --sysroot ? Это не -isysroot, это может даже и работает.

Но он же переопределит заодно и пути к всяким crtbeginS.o и прочей бжне - а этого-то как раз делать и не стоило. Может оно такое и работает, но авторы компилятора этого не предусматривали.

Ответить | Правка | Наверх | Cообщить модератору

80. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от n00by (ok), 23-Июл-24, 21:17 
Авторы компилятора предусмотрели, что пути можно посмотреть

gcc -print-file-name=crtbeginS.o

и поменять STARTFILE_SPEC https://gcc.gnu.org/onlinedocs/gccint/Driver.html

может оно такое и работает. :)

Ответить | Правка | Наверх | Cообщить модератору

83. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от yet another anonymous (?), 23-Июл-24, 22:09 
Направление мысли в целом верное. Там только всё не то что сложнее, скорее сильно "затейливей".
Ответить | Правка | Наверх | Cообщить модератору

88. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от n00by (ok), 24-Июл-24, 12:36 
Писать самому диспетчер исключений не придётся? Всё в исходниках есть, и их можно посмотреть?
Ответить | Правка | Наверх | Cообщить модератору

86. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от нах. (?), 24-Июл-24, 01:21 
> Авторы компилятора предусмотрели, что пути можно посмотреть

я в свое время (для совсем других целей) просто подменял collect2
- заодно получая полный список невидимых запчастей, линкующихся по умолчанию.

> может оно такое и работает. :)

оно такое работает, но тут тебе приносют какую-нибудь поделку от гугля - и чорта с два ты объяснишь это их билдсистеме на нескучном йезычке.

А хеловроты да, можно так собирать.

Ответить | Правка | К родителю #80 | Наверх | Cообщить модератору

81. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от Аноним (-), 23-Июл-24, 21:37 
Взять Nix. Но ты не осилил.
Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

84. "Выпуск системной библиотеки Glibc 2.40"  –2 +/
Сообщение от Аноним (84), 24-Июл-24, 00:28 
Хеловорлд под 2 мегабайта жрет оперативки слинкованный с глибц, не многовато ли?
На мюслях ~350кб
Ответить | Правка | Наверх | Cообщить модератору

91. "Выпуск системной библиотеки Glibc 2.40"  +/
Сообщение от Аноним (70), 24-Июл-24, 14:54 
Приветмир (слип и зависимости), у глибц 143кб и 1.9мб шаред, у мюслей 584кб (328/318кб с 2 копиями в памяти) + 512кб шаред, но мюсли ощутимо тормознее и проблемнее. Если линковать статически, у мюслей 64кб + 0 шаред, у глибц 692кб + 640кб шаред. Зачем ты загоняешь себя в угол мюслями и даже не используешь их по назначению, линкуя статически?
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру