[parisc-linux] Re: linux-2.6 deller (ioremap-changes) and more
John David Anglin
dave at hiauly1.hia.nrc.ca
Sun Mar 26 12:29:59 MST 2006
> I'm not sure about the debian status. I believe that Matthias integrated
> the change but there was a regression due to a missing glibc patch
> needed to prevent a SIGSEGV in the unwind code. Matthias said this
> problem was fixed on March 20.
2.3.6-3 does't have the fix:
dave at hiauly6:~$ objdump -d /lib/libpthread.so.0
/lib/libpthread.so.0: file format elf32-hppa-linux
Disassembly of section .init:
000041ac <_init>:
41ac: 6b c2 3f d9 stw rp,-14(sp)
41b0: 6f c4 00 80 stw,ma r4,40(sp)
41b4: 6b d3 3f c1 stw r19,-20(sp)
41b8: e8 42 02 a0 b,l 8310 <__pthread_initialize_minimal>,rp
41bc: 08 13 02 44 copy r19,r4
41c0: 08 04 02 53 copy r4,r19
41c4: e8 40 0c 70 b,l 4804 <frame_dummy>,rp
41c8: 08 00 02 40 nop
41cc: e8 44 1d 2c b,l e068 <__do_global_ctors_aux>,rp
41d0: 08 00 02 40 nop
41d4: 4b c2 3f 59 ldw -54(sp),rp
41d8: 08 04 02 53 copy r4,r19
41dc: e8 40 c0 00 bv r0(rp)
000041e0 <_end_init>:
41e0: 4f c4 3f 81 ldw,mb -40(sp),r4
This .init section isn't built correctly in shared libraries. The
PIC register r19 needs to be retored after every call if it is
subsequently used. As can be seen above, there is no restore after
the call to frame_dummy and r19 is needed for the call to
__do_global_ctors_aux.
Dave
--
J. David Anglin dave.anglin at nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
More information about the parisc-linux
mailing list