[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