LINUX.ORG.RU

zlib-static vs LTO

 , ,


0

2

В арче имеется пакет zlib-static. Гуглю чё будет, если прилинковать его с включённм LTO. Нагуглил, что он собирается с -ffat-lto-objects, который

instructs the compiler to generate object files that contain both the standard native object code and the intermediate representation (IR) for LTO

При этом про сам zlib-static гуглится следующее:

When building it or linking against it with Link Time Optimization (LTO) enabled, adding -ffat-lto-objects to CFLAGS is required to ensure compatibility and prevent LTO-related issues.

ВОПРОС: В чём смысл этого требования? Разве если у меня при линковке включён только -flto, линкер сам не догадается выбрать IR? И что там за возможные «LTO-related issues»?

★★★★★

При этом про сам zlib-static гуглится следующее:

Где? Кроме лора (теперь) нигде этой фразы не находится.

firkax ★★★★★
()

не надо,даже пытаться, статически линковаться с : pthread,zlib и , к сожалению, ssl и криптографическими библиотеками (если только не свои самопальные).

начинаются проблемы на ровном месте. Они сильно связаны с системными фичами и всегда должны полностью соответствовать целевой платформе и ею предоставляться.

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Ну я ещё могу понять про pthread, и допустим ничего не знаю про ssl. Но zlib – это ж тупо обычные алгоритмы, я евойное API вызываю сам руками, что там может пойти не так?

Опять же, факт существования сабжевого пакета намекает на то, что им пользуются.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 2)
Ответ на: комментарий от MKuznetsov

У zlib нет никаких системных фич, это просто числодробильная библиотека, всё с ней нормально линкуется. С ssl бывают проблемы но не всегда.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Гы. Я попрошу! :) Во-первых, это никак не противоречит сказанному в ОП: «нагуглилось». А во-вторых, тут как раз неподалёку в толксах всей толпой накинулись на @windows10, посмевшего усомниться в божественно-непогрешимом ИИ.

Ну а в-третьих, по программированию ГуглИИ выдаёт ну просто на удивление корректную информацию. Причём на весьма заковыристые темы, в т.ч. я его последние пару недель непрерывно долблю вопросами про использование clang libtooling API.

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 3)
Ответ на: комментарий от dimgel

zlib для меня тоже слегка загадка, вроде там всё гладко, данные на входе, данные на выходе, сжал/разжал..

НО zlib видимо идёт прицепом с ssl и подобными - они все любят посжимать. Две разные версии zlib внутри одного процесса видимо могут сотворять чудеса и не всякий загрузчик их разруливает.

MKuznetsov ★★★★★
()
Ответ на: комментарий от dimgel

Я про то что ты спрашиваешь объяснения к скорее всего выдуманному «факту». И даже не предупредил что он скорее всего выдуманный. Смысла разбираться в логике бредогенерации нет, если только ты не исследователь нейросетей.

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ну давно известно же: если зайти на форум трактористов и спросить отзывы о Caterpillar, получишь ни хрена без масла. А вот если написать «Caterpillar говно собачье» (ну или наоборот, «офигенен и прекрасен») – то тут же узнаешь всё и про трактор, и про всю свою родню до седьмого колена заодно.

dimgel ★★★★★
() автор топика
Ответ на: комментарий от MKuznetsov

Да, может быть. Тогда можно Z_PREFIX использовать чтобы имена не пересекались.

firkax ★★★★★
()
Ответ на: комментарий от dimgel

по программированию ГуглИИ выдаёт ну просто на удивление корректную информацию

Только если предметная область и язык мегапопулярные, например, вебня и JS или Python. По ассемблеру и интеграции Lua и Си он галлюцинирует или выдаёт код с лишними проверками, которые вводят в заблуждение относительного того, какая ошибка может произойти.

nattep
()
Ответ на: комментарий от nattep

В том-то и фокус, что clang libtooling к мегапопулярным ну никак не отнести. И сложность там – дай бог, C++ AST как-никак. При этом документация довольно куцая; у подавляющего большинства методов – просто ссылка на исходный код. И хоть бы раз эта дрянь наврала мне. (E.g. как получить текст камента к ноде, получить список суперклассов или параметров шаблона из CXXRecordDecl, как кастовать классы к подклассам внутри различных иерархий, как получить файл/line/column или даже исходный текст ноды и т.п.)

dimgel ★★★★★
() автор топика
Последнее исправление: dimgel (всего исправлений: 5)

Я пробовал LTO уже раза три на десктопе, наверное.

99% софта работает абсолютно нормально, но постоянно хотя бы 2-3-4 пакета ломается, часто что-то критическое типа драйверов. Некоторые пакеты могут нормально собраться, а потом вдруг сломаться в рантайме - а ты потом ищи с собаками, что именно произошло.

Короче, если хочется покрасноглазить - самое оно, а вот если хочется рабочую систему - «Котятки, не стоит совать свои носики в эту темочку».

Bfgeshka ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.