[devel] libc on i586: WTF?
Dmitry V. Levin
ldv на altlinux.org
Сб Окт 16 11:18:48 UTC 2010
Hi,
On Sat, Oct 16, 2010 at 12:26:18PM +0800, REAL wrote:
>
> Что-то загадочное произошло на вчерашнем
> срезе сизифа (может быть и раньше так
> было, только не замечал):
>
> $ gfortran -O2 -c ilaenv.f
> $ nm ilaenv.o|grep stack_chk_fail
> U __stack_chk_fail
>
> НО:
> $ gfortran -fPIC -O2 -c ilaenv.f
> $ nm ilaenv.o|grep stack_chk_fail
> U __stack_chk_fail_local
>
> Проявляется на i586, на x86_64 всё в порядке.
Так было всегда, на i586 маловато регистров.
<cite>
> Этому [text relocations в shared objects] нет оправдания.
Есть. На дебильных x86 это дикий оверхед. Один регистр общего назначения -
коту под хвост. При том, что их на этом калькуляторе-переростке и так не
богато.
-- vsl in devel@
</cite>
> Символ __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
>
> Как дальше жидь?
Вам просто интересно, или беспокойство чем-то обусловлено?
В первом случае см.
http://sourceware.org/git/?p=glibc.git;a=blob;f=debug/stack_chk_fail_local.c
Во втором случае просто выкиньте это из головы.
--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 198 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20101016/2972eac6/attachment.bin>
Подробная информация о списке рассылки Devel