[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: SIGILL in __libc_csu_fini

Just to add another data point, the ghc6 packages also work for me.

The instruction where the SIGILL happens is a brl, which (assuming
you're using an Itanium 1) should be emulated by the kernel, perhaps
your kernel has CONFIG_IA64_BRL_EMU turned off or is otherwise broken
(both Ian and I are using 2.6 kernels).


On Fri, Apr 02, 2004 at 12:33:26AM +0100, Ian Lynagh wrote:
> [Note crosspost. I'm not subscribed to either list.]
> Hi all,
> I'm having some trouble with ghc6 on ia64 (this is not using the
> packages, which also give SIGILL, but trying to crossport from x86
> again. gdb gives more useful information than for the packages). The gdb
> output, from merulo's unstable dchroot a day or two ago, is below.
> I'm afraid I have no idea what to do from here. Any help much
> appreciated!
> $ gdb /home/igloo/ghc/x1/ghc/compiler/stage1/ghc-6.2.1
> [...]
> (gdb) b main
> Breakpoint 1 at 0x40000000026f2a42
> (gdb) r
> Starting program: /home/igloo/ghc/x1/ghc/compiler/stage1/ghc-6.2.1 
> Program received signal SIGILL, Illegal instruction.
> 0x4000000002737901 in __libc_csu_fini ()
> (gdb) bt
> #0  0x4000000002737901 in __libc_csu_fini ()
> #1  0x4000000002737790 in __libc_csu_init ()
> #2  0x20000000002a1220 in __libc_start_main () from /lib/libc.so.6.1
> #3  0x4000000000004260 in _start ()
> (gdb) disassemble
> Dump of assembler code for function __libc_csu_fini:
> 0x4000000002737830 <__libc_csu_fini+0>: [MII]       alloc r36=ar.pfs,6,6,0
> 0x4000000002737831 <__libc_csu_fini+1>:             addl r14=58216,r1
> 0x4000000002737832 <__libc_csu_fini+2>:             addl r16=20416,r1
> 0x4000000002737840 <__libc_csu_fini+16>:        [MII]       mov r37=r1
> 0x4000000002737841 <__libc_csu_fini+17>:                    mov r35=b0;;
> 0x4000000002737842 <__libc_csu_fini+18>:                    nop.i 0x0
> 0x4000000002737850 <__libc_csu_fini+32>:        [MMI]       ld8 r15=[r14]
> 0x4000000002737851 <__libc_csu_fini+33>:                    ld8 r14=[r16]
> 0x4000000002737852 <__libc_csu_fini+34>:                    nop.i 0x0;;
> 0x4000000002737860 <__libc_csu_fini+48>:        [MMI]       sub r14=r14,r15;;
> 0x4000000002737861 <__libc_csu_fini+49>:                    nop.m 0x0
> 0x4000000002737862 <__libc_csu_fini+50>:                    shr r33=r14,3;;
> 0x4000000002737870 <__libc_csu_fini+64>:        [MII]       mov r14=r33
> 0x4000000002737871 <__libc_csu_fini+65>:                    adds r33=-1,r33;;
> 0x4000000002737872 <__libc_csu_fini+66>:                    cmp.eq p7,p6=0,r14
> 0x4000000002737880 <__libc_csu_fini+80>:        [MIB]       shladd r34=r33,3,r15
> 0x4000000002737881 <__libc_csu_fini+81>:                    nop.i 0x0
> 0x4000000002737882 <__libc_csu_fini+82>:              (p07) br.cond.dpnt.few 0x40000000027378d0 <__libc_csu_fini+160>;;
> 0x4000000002737890 <__libc_csu_fini+96>:        [MII]       ld8 r14=[r34],-8
> 0x4000000002737891 <__libc_csu_fini+97>:                    mov r32=r33
> ---Type <return> to continue, or q <return> to quit---
> 0x4000000002737892 <__libc_csu_fini+98>:                    adds r33=-1,r33;;
> 0x40000000027378a0 <__libc_csu_fini+112>:       [MMI]       ld8 r15=[r14],8;;
> 0x40000000027378a1 <__libc_csu_fini+113>:                   ld8 r1=[r14]
> 0x40000000027378a2 <__libc_csu_fini+114>:                   mov b6=r15
> 0x40000000027378b0 <__libc_csu_fini+128>:       [MIB]       nop.m 0x0
> 0x40000000027378b1 <__libc_csu_fini+129>:                   nop.i 0x0
> 0x40000000027378b2 <__libc_csu_fini+130>:                   br.call.sptk.many b0=b6;;
> 0x40000000027378c0 <__libc_csu_fini+144>:       [MIB]       cmp.eq p7,p6=0,r32
> 0x40000000027378c1 <__libc_csu_fini+145>:                   mov r1=r37
> 0x40000000027378c2 <__libc_csu_fini+146>:             (p06) br.cond.dptk.few 0x4000000002737890 <__libc_csu_fini+96>
> 0x40000000027378d0 <__libc_csu_fini+160>:       [MIB]       nop.m 0x0
> 0x40000000027378d1 <__libc_csu_fini+161>:                   nop.i 0x0
> 0x40000000027378d2 <__libc_csu_fini+162>:                   br.call.sptk.many b0=0x40000000027379a0 <_fini>;;
> 0x40000000027378e0 <__libc_csu_fini+176>:       [MII]       mov r1=r37
> 0x40000000027378e1 <__libc_csu_fini+177>:                   mov.i ar.pfs=r36
> 0x40000000027378e2 <__libc_csu_fini+178>:                   mov b0=r35
> 0x40000000027378f0 <__libc_csu_fini+192>:       [MIB]       nop.m 0x0
> 0x40000000027378f1 <__libc_csu_fini+193>:                   nop.i 0x0
> 0x40000000027378f2 <__libc_csu_fini+194>:                   br.ret.sptk.many b0;;
> ---Type <return> to continue, or q <return> to quit---
> 0x4000000002737900 <__libc_csu_fini+208>:       [MLX]       nop.m 0x0
> 0x4000000002737901 <__libc_csu_fini+209>:                   brl.few 0x40000000000027e0 <_init>;;
> End of assembler dump.
> (gdb) disassemble 0x40000000000027e0
> Dump of assembler code for function _init:
> 0x40000000000027e0 <_init+0>:   [MII]       alloc r34=ar.pfs,3,3,0
> 0x40000000000027e1 <_init+1>:               mov r32=r12
> 0x40000000000027e2 <_init+2>:               mov r33=b0
> 0x40000000000027f0 <_init+16>:  [MFB]       adds r12=-16,r12
> 0x40000000000027f1 <_init+17>:              nop.f 0x0
> 0x40000000000027f2 <_init+18>:              nop.b 0x0;;
> 0x4000000000002800 <_init+32>:  [MII]       mov r12=r32
> 0x4000000000002801 <_init+33>:              mov.i ar.pfs=r34
> 0x4000000000002802 <_init+34>:              mov b0=r33
> 0x4000000000002810 <_init+48>:  [MFB]       nop.m 0x0
> 0x4000000000002811 <_init+49>:              nop.f 0x0
> 0x4000000000002812 <_init+50>:              br.ret.sptk.many b0;;
> End of assembler dump.
> (gdb) 
> Thanks
> Ian
> -- 
> To UNSUBSCRIBE, email to debian-ia64-REQUEST@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

Reply to: