Hello, For me the problem was introduced in package libc6_2.3.6.ds1-6_i386.deb by linux-kernel-header-2.6.18-1. Building libc6 with linux-kernel-headers_2.6.17.10-3 work fine for me. And the difference that cause freeze between lkh 2.6.17.10-3 and 2.6.18-1 is in linux/compiler.h. The ___KERNEL___ directive have moved and some declarations are not in userspace. In our case, this is noinline define that cause problem. Before lkh 2.6.18-1 noinline was undefined in userspace, so declaration like "__attribute ((noinline))__" was equal to "__attribute (())__". When print_statistics function code in elf/rtld.c is noinlined by gcc, VIA C7 freeze. And in print_statistics that is _dl_debug_printf call that fail by heavy realloc. More precisely, unsigned long int num_relative_relocations seems to be the source. Deleting that printf var is an issue.
I would like to debug more and more, but I have no time to do that. Any investigation and tech used for debugging interests me. I don't know how to disassembly inlined function to compare it to noinlined function. I have build a libc6 debian package with fix from official debian subversion for my production, if you need it I can share it. But I think we are very nearly to find the real bug. And maybe all no intel x86 are concerned... NOTE : We talk about freeze, freeze,... I don't think that is a freeze, kernel seems to switch in infinite loop. Best regards, Julien Durand.

