On Mon, Oct 18, 2010 at 11:32:30AM +0800, REAL wrote: > Dmitry V. Levin пишет: > >>Символ __stack_chk_fail_local присутствует только > >>в libc.a, не в libc.so: > >> > >>$ nm /usr/lib/libc.a|grep stack_chk_fail > >>stack_chk_fail.o: > >>0000000000000000 T __stack_chk_fail > >>stack_chk_fail_local.o: > >> U __stack_chk_fail > >>0000000000000000 T __stack_chk_fail_local > >> > >>$ nm -D /lib/libc.so.6|grep stack_chk_fail > >>00000000000e09a0 T __stack_chk_fail > >> > >>Как дальше жидь? > > > >Вам просто интересно, или беспокойство > >чем-то обусловлено? > > Скажем так: мне интересно, зачем я должен > при сборке shared библиотек использовать > libc.a. Этот символ есть в libc_nonshared.a, так что -lc будет достаточно. > >В первом случае см. > >http://sourceware.org/git/?p=glibc.git;a=blob;f=debug/stack_chk_fail_local.c > > Может быть, вместо libc.a заюзать объект, > полученный через ar x %_libdir/libc.a stack_chk_fail_local.o? В этом нет необходимости. -- ldv