On Fri, Jun 02, 2006 at 03:00:32PM +0400, Alexey Tourbin wrote: > On Fri, Jun 02, 2006 at 11:47:11AM +0400, Damir Shayhutdinov wrote: > > 01.06.06, Alexey Tourbin написал(а): > > > > Убрать -Wl,-z,defs - в этом всё равно нет смысла при линковке -shared. > > > > > > Почему не имеет смысла?> > > ld(1) > > ---- > > -z > > defs > > Disallows undefined symbols in object files. Undefined symbols > > in shared libraries are still allowed. > > Автор мана имел в виду другое. Что именно? > $ cat test.c > test() > { > no_such_function(); > } > $ gcc -shared -fPIC -o libtest.so test.c > $ ls -l libtest.so > -rwxr-xr-x 1 at at 5591 Jun 2 14:54 libtest.so > $ gcc -shared -fPIC -o libtest.so test.c -Wl,-z,defs > /tmp/.private/at/ccCRSta9.o: In function `test': > test.c:(.text+0x14): undefined reference to `no_such_function' > collect2: ld returned 1 exit status > $ Ну и что? Часть символов живёт в ld.so и тем самым делает -Wl,-z,defs малопригодным на практике. -- ldv