LINUX.ORG.RU

И снова про static linking

 


1

3

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

Статически слинкованые дистры вообще существуют? Никто не пробовал так LFS собрать? Где бы скачать life CD с таким чудом, пощупать.

Из того, что нашел сам. stali — концепт. Bifrost — требуется немного магии и чистая флешка, иксов нет, только консоль, только минимализм. Sabotage — конструктор, нужно компилять.

Перемещено mono из talks


Ответ на: комментарий от gh0stwizard

На самом деле да, это минус BSD и схожих лицензий. Если бы не GPL, открытых прошивок было бы куда меньше. Фирмы очень неохотно открывают код.

Gregon
() автор топика
Ответ на: комментарий от UVV

Это понятно, что system binaries, но я всегда полагал, что эти самые утилиты должны быть слинкованы статически, на случай поломки библиотек или ресурсов содержащих их. У меня отложилось как static binaries

robot12 ★★★★★
()
Ответ на: комментарий от robot12
ldd /sbin/chroot
        linux-gate.so.1 =>  (0xb7780000)
        libc.so.6 => /lib/libc.so.6 (0x42962000)
        /lib/ld-linux.so.2 (0x4293e000)

ну собсно большинство, окромя С-шной библиотеки, больше ни от чего не зависят. Так, обёртка над сисколлами.

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

Это понятно, что system binaries, но я всегда полагал, что эти самые утилиты должны быть слинкованы статически, на случай поломки библиотек или ресурсов содержащих их. У меня отложилось как static binaries

В OpenBSD все бинарники в /bin и /sbin слинкованы статически. Динамическая линковка там начинается с /usr. И это правильно.

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

мимими

Или ты реально считаешь, что при статической компиляции в бинарь суют всю либу в полном составе со всеми не используемыми функциями?

угадай сколько весит helloworld с GUI, написанный на C++ и статично слинкованный с Qt.

Stil ★★★★★
()
Ответ на: мимими от Stil

Точно знаю что под оффтопик ~3-3.5 МБ (если ещё сжатый upx). В этот же объем входят и статические libgcc с libstdc++ и libpthread.

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

Точно знаю что под оффтопик ~3-3.5 МБ (если ещё сжатый upx). В этот же объем входят и статические libgcc с libstdc++ и libpthread.

я не тебя спрашивал ;)

под один очень древний линукс, без стрипа - 11М. Использовались только QtCore и QtGui

Stil ★★★★★
()

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

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

программы стартуют ... быстрее

никому не упало, сколько они там стартуют

и шуршат

wtf?

решаются проблемы типа DLL hell

на винфак. в linux такого нет

улучшается переносимость среди дистрибутивов.

проблемы проприетарщиков. с дистрибутивными пакетами такой проблемы нет

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

$ g++ -static-libstdc++ -O2 c.cc
$ ls -sh a.out
4,4M a.out

А дабавь-ка во флаги сборки -s -g0 -ffunction-sections -fdata-sections -Wl,--gc-sections

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

Webkit в статику не собирается. Гуглится по первой ссылке.

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

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

приходится выбирать между размером и скоростью

это не ты выше писал про подумаешь, лишний гиг? а производительность важна как и на сервере и на десктопе

anonymous
()

не выпендривайся, и как все нормальные люди упарывайся машинкой джавы.

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

И свободных прошивок не станет

:) Ты прям как Ванга. Знаешь в чем прикол, в том, что даже если продукт меганужный, мегакрутой и все дела, его делает один человек, как пример, OpenSSL. Аудит говоришь? Да там дыр не меньше, чем где либо.

Не зря я сказал про Unix, т.к. «это случалось раньше и повторится вновь» (с) BSG

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

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

Не смотри. Ты не идеален, твой код не идеален, твоя компания не идеальна. Ты не сможешь сделать мир идеальным, потому что сам не идеален! Можешь сразу вдоль и пополам, все, срыв покрывал сделан. Какая разница за что платит компания, раз ты сам не можешь распределять финансовые потоки? Ну, ты как работяга, крутой программист или не крутой, вообще не можешь ничего с этим сделать. Радуйся тому, что делаешь ты и твоя компания, т.к. другие люди могут радоваться, используя ваш продукт.

99.5% клиентам вообще пофиг на то, код открыт или нет, если за него ЗАПЛАТИЛИ. Клиент платит не за код, а за работу, которую этот код делает и от того, насколько хорошо он ее делает, зависит будут вам платить дальше или нет. Все, что должно волновать людей в твоем случае это качество твоего кода (в цифрах КПД, а не идеальности самого кода).

Можешь выкинуть весь пермисивный код и написать свой с нуля, если тебе станет на душе легче. Только клиентам на это до лампочки. Как задача выполнялась за 5 секунд, так она и будет выполняться. Что, как, зачем и почему никого не интересует. Как и не интересует за что ваша компания кому-то платит.

Аааа, ладно. Что я тут утруждаюсь. Делай как знаешь и поделом :)

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

Делай как знаешь и поделом

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

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

А если какой то хитрец будет использовать dlopen() ?

Предугатать сложно :)

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

Откуда дрова про огромные бинари?

От верблюда.

$ ldd /bin/kate | grep -E -o ' /[^ ]+' | xargs du -hcL | tail -1
46M	итого

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

Ты упоролся. Или ты реально считаешь, что при статической компиляции в бинарь суют всю либу в полном составе со всеми не используемыми функциями?

А ты реально считаешь, что в каких-нибудь qt или gtk ты можешь отделить «используемые» функции от «неиспользуемых»?

Или что в pango выпиливыние пары неиспользуемых интерфейсных функций тебе даст какой-то профит на фоне веса движка для парсинга и рендеринга юникода?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.