LINUX.ORG.RU

Сборка OpenSSH


0

2

Привет. Понадобилось мне собрать openssh из исходников, но после компиляции обнаружил что фаил shhd весит 1,8 мб хотя из коробки фаил весит 500 кб. параметры конфигурации:

./configure --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc/ssh --with-pam

Compiler flags: -g -O2 -Wall -Wpointer-arith -Wuninitialized -Wsign-compare -Wno-pointer-sign -Wformat-security -fno-builtin-memset -fstack-protector-all

gcc -v 4.7.2

openssh -v 5.3p1

Подскажите как можно уменьшить размер файла.



Последнее исправление: zolate (всего исправлений: 1)

хотя из коробки фаил весит 500 кб

посмотреть с какими флагами собиралось в «коробке» это раз

strip это два

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

Смотрел deb пакет, но там уже все скомпилировано.Других вариантов шде смотреть не знаю.

strip это опция для gcc?

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

strip это опция для gcc?

:-)

это команда такая, из binutils

Смотрел deb пакет, но там уже все скомпилировано.Других вариантов шде смотреть не знаю

надо брать пакет с сорцами и смотреть там. Компилируют вообще из исходников :-) щаз зайдёт кто знакомый с форматами и организацией deb и раскажет детали

Понадобилось мне собрать openssh из исходников

может зря? то есть не особо то и нужно

MKuznetsov ★★★★★
()

Прикупи жёсткий хотя бы на 50 гб.

Valdor ★★
()
Compiler flags: -g

Produce debugging information in the operating system's native format

Если отлаживать и искать баги в коде sshd не собираешься - убери эту опцию - тебе debug-символы нафиг не впились в результирующем бинарнике. И да, strip уже подсказали.

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

Смотрел deb пакет, но там уже все скомпилировано.

В дебиане этими вопросами заведует debhelper (как правило). Установи его и вкуривай файл /usr/bin/dh_strip. Он много чего умеет, в т.ч. и извлечь отладочную информацию в отдельный файл (тогда пользователь может ее доставить отдельно, при необходимости).

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

нет, для ld(1)

--strip-all Omit all symbol information from the output file.

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

это команда такая, из binutils

можно прямо в gcc сделать, когда он ld будет вызывать. Хотя очевидно, что для openssh нужно править LDFLAGS в Makefile (конечно не напрямую, а через Makefile.am, или что там).

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