[devel] --as-needed
Dmitry V. Levin
=?iso-8859-1?q?ldv_=CE=C1_altlinux=2Eorg?=
Сб Мар 18 22:06:45 MSK 2006
On Tue, Mar 07, 2006 at 04:11:26PM +0300, Dmitry V. Levin wrote:
> On Tue, Mar 07, 2006 at 01:47:40PM +0300, Mikhail Zabaluev wrote:
> > В Втр, 07/03/2006 в 12:54 +0300, Dmitry V. Levin пишет:
> > > Все они не собрались по причине
> > > /usr/bin/ld: BFD 2.16.91.0.6 20060212 internal error, aborting at elflink.c line 6453 in elf_link_output_extsym
> > > /usr/bin/ld: Please report this bug.
> > >
> > > Похоже, мы устроили --as-needed нагрузочное тестирование. :)
> >
> > Значит, весь этот кошмар пока откладывается? Ф-фух :)
>
> Ну почему откладывается? Баги будем виксить. :)
Бага исправлена, можно спокойно линковать.
Обнаружилась ещё одна типичная проблема, которую легко понять на
приведённом ниже простом примере:
$ cat libfoo1.c
int foo1(void) { return 0; }
$ cat libfoo2.c
extern int foo1(void);
int foo2(void) { return foo1(); }
$ cat foo3.c
extern int foo2(void);
int main(void) { return foo2(); }
$ gcc -Wall -fpic -shared libfoo1.c -o libfoo1.so
$ gcc -Wall -fpic -shared libfoo2.c -o libfoo2.so -L. -lfoo1
$ gcc -Wall foo3.c -o foo3 -L. -lfoo2
/usr/bin/ld: warning: libfoo1.so, needed by ./libfoo2.so, not found (try using -rpath or -rpath-link)
./libfoo2.so: undefined reference to `foo1'
collect2: ld returned 1 exit status
$ gcc -Wall foo3.c -o foo3 -L. -lfoo2 -Wl,-rpath-link,.
Тонкость в том, что раньше ещё и так работало (хоть и ругалось):
$ gcc -Wall foo3.c -o foo3 -L. -lfoo2 -lfoo1
/usr/bin/ld: warning: libfoo1.so, needed by ./libfoo2.so, not found (try using -rpath or -rpath-link)
А теперь так не работает:
$ gcc -Wall foo3.c -o foo3 -L. -lfoo2 -lfoo1
/usr/bin/ld: warning: libfoo1.so, needed by ./libfoo2.so, not found (try using -rpath or -rpath-link)
./libfoo2.so: undefined reference to `foo1'
collect2: ld returned 1 exit status
Я пока что не знаю, это фича или нет. Скоро ситуация прояснится.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20060318/dc3e1948/attachment-0001.bin>
Подробная информация о списке рассылки Devel