From: Andrew Kornilov <hiddenman@altlinux.ru>
To: ALT Devel discussion list <devel@lists.altlinux.org>
Subject: [devel] statically linked ПО и ALT Linux
Date: Tue, 18 Apr 2006 15:42:44 +0300
Message-ID: <4444DEC4.3050201@altlinux.ru> (raw)
Всем привет.
Столкнулся с интересной ситуацией: есть статически собранное
коммерческое ПО (собиралось, судя по всему, на RH9). Как известно, есть
некий "костыль" для работы такого ПО в Linux: для использования NSS это
ПО подгружает системную библиотеку libnss, а дальше уже по зависимостям
подгружается системная libc и т.д. Соответственно, имеется два вида глюков:
1. При сильном отличии ABI libc это ПО падает сразу
2. При незначительных различиях оно работет, но под нагрузкой может
падать (и падает, к сожалению).
Проблема решается запуском этого ПО в chrooted environment, соотственно,
системные libnss* недоступны и оно работает (однако, при этом теряется
возможность использовать функциональность NSS)
Тестирование ПО на многих свежих и не очень дистрибутивах Linux
показывает, что оно таки подгружает системные библиотеки и падает.
Под ALT Linux-ом и ядром 2.6.14-vs26-smp я столкнулся с интересной
ситуацией: ПО запускается, по strace видны успешные попытки подгрузить
системные libnss*, однако после этого в /proc/$pid/maps они отсутствуют
полностью и ПО продолжает работать. После общения с кучей людей на
#altlinux так и не выяснили, почему так происходит.
Чтение man на dlopen() вывело на одну мысль, там есть такое:
RTLD_LAZY
Perform lazy binding. Only resolve symbols as the
code that
references them is executed. If the symbol is never
referenced,
then it is never resolved. (Lazy binding is only
performed for
function references; references to variables are always
immedi-
ately bound when the library is loaded.)
Возможно ли такоее, что dlopen везде не использует такой флаг или просто
игнорирует его, а наш как раз использует? Или это немного не то?
Меня больше всего волнуют вопросы:
1. Может ли это ПО в дальнейшем таки загрузить для чего-то системные
libnss и благополучно упасть?
2. Найти простой способ запрета загрузки системной libnss без chroot не
удалось, но городить и chrooted environment нет никакого желания. Может
быть он все-таки существует?
Спасибо.
next reply other threads:[~2006-04-18 12:42 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-18 12:42 Andrew Kornilov [this message]
2006-04-18 12:53 ` Andrew Kornilov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4444DEC4.3050201@altlinux.ru \
--to=hiddenman@altlinux.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git