[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Динамические библиотеки и атрибут исполняемости.



Коллеги, тут обнаружил странную вещь.

Вот сколько существовали в Linux динамические библиотеки (shared
objects) столько на их файлах стоял атрибут исполняемости
rwxr-xr-x обычно.

Тут недавно я обнаружил что в stretch это уже не так.

Более того в policy 
https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-sharedlibs-runtime
написано, что 

Shared libraries should not be installed executable, since the dynamic
linker does not require this and trying to execute a shared library
usually results in a core dump. 

Интересно, когда эта идея возникла, кто придумал и где еще применяется.

И как моя кросс-платформная система сборки (пусть,  например,
использующая autoconf или cmake) узнает, что в данной системе есть такое
требование policy (а в другой, соседней, нет).

Я, конечно, могу взять и попытаться проверить права у realpath libc.so

(что, кстати, тоже нетривиально - сначала придется распарсить вывод ldd
и выяснить, где у нас сегодня libc.so, и  тут выяснится, что как раз
libc.so и libpthread.so это требование полиси-то и нарушают, а значит
придется опираться на какие-то еще библиотеки, которые запросто в
целевой системе могут отсутствовать).

-- 
                                   Victor Wagner <vitus@wagner.pp.ru>


Reply to: