[devel] Re: Как заставить прогу тайти билиотеку?

Alexey Tourbin at на altlinux.ru
Вт Мар 9 19:49:56 MSK 2004


On Tue, Mar 09, 2004 at 06:52:53PM +0300, Алексей Любимов wrote:
> Да это как раз понятно. Под чрутом все прозрачно получается, но больно 
> много тащить приходиться...
> Ктож знал, что файл ld-2.3.2.so в переменной LD_LIBRARY_PATH может 
> каталогом прикидываться?

Вы ничего не поняли. :(
Файл ld-2.3.2.so не в переменной LD_LIBRARY_PATH (и уж тем более не
прикидывается каталогом), файл ld-2.3.2.so -- это сам executable.
В качестве параметра он берет динамический бинарь и его аргументы.

$ /lib/ld-linux.so.2 /bin/date
Tue Mar  9 19:40:40 MSK 2004
$

Это стандартный способ запуска динамических бинарей (с помощью
динамического линкера).  Просто в нормальной ситуации /lib/ld-linux.so.2
прозрачно подгружается ядром (execve), и ему передается управление.
А откуда ядро знает, какой линкер подгружать?  А из самого бинаря:

$ strings /bin/date | head -1
/lib/ld-linux.so.2
$

Поэтому его и нельзя подменить с помощью LD_LIBRARY_PATH: эта переменная
влияет на сам линкер, который должен быть к тому моменту уже загружен.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20040309/28e06b8e/attachment.bin 


Подробная информация о списке рассылки Devel