|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Ivanov 2:5020/400 12 Jul 2006 15:33:04 To : Eugene Grosbein Subject : strip для бинарников и либов (раньше: Гуй) -------------------------------------------------------------------------------- Wed Jul 12 2006 16:00, Eugene Grosbein wrote to Alex Ivanov: EG> Porters Handbook не рекомендует стрипать бинари при компиляции, EG> они обычно стрипаются при инсталляции, install -s их стрипает. EG> Место на диске это да, а насчет производительности - разницы может EG> и не быть, BSD бинарникам делает mmap() с диска, те страницы, к которым EG> обращений нет, в физическую память просто не подгружаются, а если EG> и подгружаются, при недостатке памяти они в своп не идут, а просто EG> выкидываются. Когда надо, обратно из бинаря подгружаются вместо того EG> чтобы из свопа - экономится место в свопе и время на запись туда. ok, про клучик -s для install я не знал, за подробное обьяснение спасибо. AI>> P.S. Опытным путем (сделав в single-user strip на /usr/local/bin/*, AI>> /usr/local/lib/*/* и т.д.) выяснилось, что из моего софта (порядка 300 AI>> пакетов) после стрипа перестали работать токо XFree86, но там проблема AI>> решилась достованием старых модулей из backup, а сам бинарник после AI>> strip замечательно работает. EG> Что именно лежало непострипанное? Hа память (сейчас уже не посмотришь): /usr/local/libexec/mysqld, /usr/X11R6/bin/XFree86 (сам бинарник, модули как я уже писал стрипать не надо), qt-copy-3.3.5 (весь, бинарники и библиотеки), Samba (бинарники, либы скорее всего тоже), ngix, php4 (вроде), kde помойму тоже всё (бинарники+либы) не пострипанное лежало, diablo-jre-1.5.00.06 все (вроде, сегодня дома гляну),/usr/local/bin/lynx и т.д. Hа самом деле на любой более-менее часто используемой машине (раб.станции) достаточно набрать что-то типа file /usr/local/*/* |grep "not stripped" и вылезет куча непострипанных бинарников. IMHO из общей массы бинарников в /usr/local 30-40% будут непострипанные. Единственное какая беда вылезает - когда делаешь pkg_delete <имя пакета> он ругается, что не на все совпадает MD5 хеш, и не все удаляет - нада если что руками помогать, чтобы мусора не было :) Стрипал все таким скриптом (может кому интересно будет), запускал из single-user: =================Резать тута========================== #!/bin/sh #Run only in single user mode!!!! EXCEPTIONS=" /usr/X11R6/lib/modules/libpcidata.a \ /usr/X11R6/lib/modules/fonts/libbitmap.a \ /usr/X11R6/lib/modules/fonts/libfreetype.a \ /usr/X11R6/lib/modules/fonts/libspeedo.a \ /usr/X11R6/lib/modules/fonts/libtype1.a \ /usr/X11R6/lib/modules/fonts/libxtt.a \ /usr/X11R6/lib/modules/extensions/libextmod.a \ /usr/X11R6/lib/modules/extensions/libdri.a \ /usr/X11R6/lib/modules/extensions/libdbe.a \ /usr/X11R6/lib/modules/extensions/librecord.a \ /usr/X11R6/lib/modules/extensions/libxtrap.a \ /usr/X11R6/lib/modules/drivers/nvidia_drv.o \ /usr/X11R6/lib/modules/drivers/nvidia_drv.so \ /usr/X11R6/lib/modules/drivers/apm_drv.o \ /usr/X11R6/lib/modules/drivers/ark_drv.o \ /usr/X11R6/lib/modules/drivers/ati_drv.o \ /usr/X11R6/lib/modules/drivers/atimisc_drv.o \ /usr/X11R6/lib/modules/drivers/chips_drv.o \ /usr/X11R6/lib/modules/drivers/cirrus_alpine.o \ /usr/X11R6/lib/modules/drivers/cirrus_drv.o \ /usr/X11R6/lib/modules/drivers/cirrus_laguna.o \ /usr/X11R6/lib/modules/drivers/cyrix_drv.o \ /usr/X11R6/lib/modules/drivers/glint_drv.o \ /usr/X11R6/lib/modules/drivers/i128_drv.o \ /usr/X11R6/lib/modules/drivers/i740_drv.o \ /usr/X11R6/lib/modules/drivers/i810_drv.o \ /usr/X11R6/lib/modules/drivers/mga_drv.o \ /usr/X11R6/lib/modules/drivers/neomagic_drv.o \ /usr/X11R6/lib/modules/drivers/nsc_drv.o \ /usr/X11R6/lib/modules/drivers/nv_drv.o \ /usr/X11R6/lib/modules/drivers/r128_drv.o \ /usr/X11R6/lib/modules/drivers/radeon_drv.o \ /usr/X11R6/lib/modules/drivers/rendition_drv.o \ /usr/X11R6/lib/modules/drivers/riva128.o \ /usr/X11R6/lib/modules/drivers/s3_drv.o \ /usr/X11R6/lib/modules/drivers/s3virge_drv.o \ /usr/X11R6/lib/modules/drivers/savage_drv.o \ /usr/X11R6/lib/modules/drivers/siliconmotion_drv.o \ /usr/X11R6/lib/modules/drivers/sis_drv.o \ /usr/X11R6/lib/modules/drivers/tdfx_drv.o \ /usr/X11R6/lib/modules/drivers/tga_drv.o \ /usr/X11R6/lib/modules/drivers/trident_drv.o \ /usr/X11R6/lib/modules/drivers/tseng_drv.o \ /usr/X11R6/lib/modules/drivers/vesa_drv.o \ /usr/X11R6/lib/modules/drivers/vga_drv.o \ /usr/X11R6/lib/modules/drivers/via_drv.o \ /usr/X11R6/lib/modules/drivers/vmware_drv.o \ /usr/X11R6/lib/modules/input/mouse_drv.o \ /usr/X11R6/lib/modules/input/citron_drv.o \ /usr/X11R6/lib/modules/input/digitaledge_drv.o \ /usr/X11R6/lib/modules/input/dynapro_drv.o \ /usr/X11R6/lib/modules/input/elo2300_drv.o \ /usr/X11R6/lib/modules/input/elographics_drv.o \ /usr/X11R6/lib/modules/input/kbd_drv.o \ /usr/X11R6/lib/modules/input/magellan_drv.o \ /usr/X11R6/lib/modules/input/microtouch_drv.o \ /usr/X11R6/lib/modules/input/mutouch_drv.o \ /usr/X11R6/lib/modules/input/spaceorb_drv.o \ /usr/X11R6/lib/modules/input/summa_drv.o \ /usr/X11R6/lib/modules/input/void_drv.o \ /usr/X11R6/lib/modules/input/wacom_drv.o \ /usr/X11R6/lib/modules/libafb.a \ /usr/X11R6/lib/modules/libcfb.a \ /usr/X11R6/lib/modules/libcfb16.a \ /usr/X11R6/lib/modules/libcfb24.a \ /usr/X11R6/lib/modules/libcfb32.a \ /usr/X11R6/lib/modules/libddc.a \ /usr/X11R6/lib/modules/libi2c.a \ /usr/X11R6/lib/modules/libint10.a \ /usr/X11R6/lib/modules/liblayer.a \ /usr/X11R6/lib/modules/libmfb.a \ /usr/X11R6/lib/modules/librac.a \ /usr/X11R6/lib/modules/libscanpci.a \ /usr/X11R6/lib/modules/libshadow.a \ /usr/X11R6/lib/modules/libshadowfb.a \ /usr/X11R6/lib/modules/libvbe.a \ /usr/X11R6/lib/modules/libvgahw.a \ /usr/X11R6/lib/modules/libxaa.a \ /usr/X11R6/lib/modules/libxf1bpp.a \ /usr/X11R6/lib/modules/libxf24_32bpp.a \ /usr/X11R6/lib/modules/libxf4bpp.a \ /usr/X11R6/lib/modules/libxf8_16bpp.a \ /usr/X11R6/lib/modules/libxf8_32bpp.a \ /usr/X11R6/lib/modules/v10002d.uc \ /usr/X11R6/lib/modules/v20002d.uc \ /usr/X11R6/lib/modules/libfb.a \ /usr/X11R6/lib/modules/libramdac.a \ /usr/X11R6/lib/modules/freebsd/libdrm.a " DIRS_SUFFIXES=" bin sbin lib libexec " DIRS_PREFIXES=" /usr/local /usr/X11R6 " #save exceptions EXC_DIR="/tmp/exc" rm -r ${EXC_DIR} mkdir ${EXC_DIR} chmod 700 ${EXC_DIR} for EX in ${EXCEPTIONS} do if [ -r ${EX} ]; then mkdir -p ${EXC_DIR}/`dirname ${EX}` cp -pf ${EX} ${EXC_DIR}/${EX} fi done ##strip all for DP in ${DIRS_PREFIXES} do for DS in ${DIRS_SUFFIXES} do strip ${DP}/${DS}/* strip ${DP}/${DS}/*/* strip ${DP}/${DS}/*/*/* strip ${DP}/${DS}/*/*/*/* strip ${DP}/${DS}/*/*/*/*/* done done ##restore exceptions for EX2 in ${EXCEPTIONS} do if [ -r ${EX2} ]; then cp -pf ${EXC_DIR}/${EX2} ${EX2} fi done #clean rm -r ${EXC_DIR} =================Резать тута========================== --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1667979ad10e5.html, оценка из 5, голосов 10
|