Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 strip для бинарников и либов (раньше: Гуй)   Alex Ivanov   12 Jul 2006 15:33:04 
Архивное /ru.unix.bsd/1667979ad10e5.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional