[devel] xplc-0.3.12-alt1.1: rebuild failed [6]
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Пн Апр 17 05:00:02 MSD 2006
On Mon, Apr 17, 2006 at 02:47:27AM +0400, Dmitry V. Levin wrote:
> > Кажется я догадываюсь, как это реализовано: компилятор (линкер в данном
> > случае) сканирует аргументы командной строки слева направо. Он видит
> > -ldl и проверяет, использует ли создаваемый ELF shared object какие-либо
> > символы из -ldl. Поскольку создаваемый ELF в данном случае вообще
> > пустой, компилятор выбрасывает -ldl и идёт дальше. Потом ему попадаются
> > объектные файлы с dlopen(), но -ldl уже проехали. В конце
> > активизируется -Wl,-z,defs и отваливает.
>
> Именно так оно и происходит, это уже здесь обсуждалось, см.
> http://lists.altlinux.org/pipermail/devel/2006-March/029704.html
> и в целом архив этого списка за прошлый месяц с темой --as-needed.
В два прохода надо делать: сначала *.o, потом *.so, и потом только
решать, какие из *.so оставлять. Но есть ещё *.a. Не понятно тогда,
вклинивать ли *.a перед *.so или после *.so. На это ещё -static может
влиять. Короче точную формулировку в соответствии c "Rule of Least
Surprise" с ходу дать затруднительно.
Лучше бы порядок аргументов и соответствующая семантика были
исчерпывающим образом документированы. А то получается кур смешить:
--as-needed должен отсекать только ненужные библиотеки, а на деле
может отсекать и нужные.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060417/ea08ad2e/attachment-0001.bin>
Подробная информация о списке рассылки Devel