frame_dummy and the 68000.

Joel Sherrill joel.sherrill at OARcorp.com
Tue Aug 8 15:35:31 UTC 2000


Chris Johns wrote:
> 
> Hi,
> 
> Getting ELF C++ static constructors to run on a 68302 I am getting an
> illegal instruction exception in frame_dummy (crtstuff.c in gcc
> sources). I have marked the code which is not supported on the 68000. I
> built the compiler but I see it is in the RPMs as well.
> 
> Is this a multilib bug in gcc ?

Yes.

> Does a patch exist ?

Yes.  The latest gcc/newlib RTEMS RPMs/patches in 
ftp.oarcorp.com:/pub/snapshots/c_tools/gcc2.95.2newlib1.8.2-8
should be correct.

 
> In :
> 
> $ pwd
> /opt/rtems/lib/gcc-lib/m68k-rtems/2.95.2
> 
> Looking in :
> 
> $ m68k-rtems-objdump -D crtbegin.o
> 
> crtbegin.o:     file format elf32-m68k
> 
> Disassembly of section .text:
> 
> 00000000 <__do_global_dtors_aux>:
>    0:   4e56 0000       linkw %fp,#0
>    4:   2f0a            movel %a2,%sp at -
>    6:   4ab9 0000 0000  tstl 0 <__do_global_dtors_aux>
>    c:   6642            bnes 50 <__do_global_dtors_aux+0x50>
>    e:   2079 0000 0000  moveal 0 <__do_global_dtors_aux>,%a0
>   14:   45f9 0000 0000  lea 0 <__do_global_dtors_aux>,%a2
>   1a:   4a90            tstl %a0@
>   1c:   671e            beqs 3c <__do_global_dtors_aux+0x3c>
>   1e:   2079 0000 0000  moveal 0 <__do_global_dtors_aux>,%a0
>   24:   43e8 0004       lea %a0@(4),%a1
>   28:   23c9 0000 0000  movel %a1,0 <__do_global_dtors_aux>
>   2e:   2050            moveal %a0@,%a0
>   30:   4e90            jsr %a0@
>   32:   2079 0000 0000  moveal 0 <__do_global_dtors_aux>,%a0
>   38:   4a90            tstl %a0@
>   3a:   66e2            bnes 1e <__do_global_dtors_aux+0x1e>
>   3c:   4a8a            tstl %a2
> >>>>>>>>>>>             ^^^^^^^^ is not valid on a 68000
> 
>   3e:   6708            beqs 48 <__do_global_dtors_aux+0x48>
>   40:   4879 0000 0000  pea 0 <__do_global_dtors_aux>
>   46:   4e92            jsr %a2@
>   48:   7001            moveq #1,%d0
>   4a:   23c0 0000 0000  movel %d0,0 <__do_global_dtors_aux>
>   50:   246e fffc       moveal %fp@(-4),%a2
>   54:   4e5e            unlk %fp
>   56:   4e75            rts
> 
> 00000058 <fini_dummy>:
>   58:   4e56 0000       linkw %fp,#0
>   5c:   4e5e            unlk %fp
>   5e:   4e75            rts
> 
> 00000060 <frame_dummy>:
>   60:   4e56 0000       linkw %fp,#0
>   64:   41f9 0000 0000  lea 0 <__do_global_dtors_aux>,%a0
>   6a:   4a88            tstl %a0
> >>>>>>>>>>>             ^^^^^^^^ is not valid on a 68000
> 
>   6c:   670e            beqs 7c <frame_dummy+0x1c>
>   6e:   4879 0000 0000  pea 0 <__do_global_dtors_aux>
>   74:   4879 0000 0000  pea 0 <__do_global_dtors_aux>
>   7a:   4e90            jsr %a0@
>   7c:   4e5e            unlk %fp
>   7e:   4e75            rts
> 
> 00000080 <init_dummy>:
>   80:   4e56 0000       linkw %fp,#0
>   84:   4e5e            unlk %fp
>   86:   4e75            rts
> Disassembly of section .data:
> 
> 00000000 <p.3>:
>    0:   0000 0000       orib #0,%d0
> 
> 00000004 <completed.4>:
>    4:   0000 0000       orib #0,%d0
> Disassembly of section .fini:
> 
> 00000000 <.fini>:
>    0:   4eb9 0000 0000  jsr 0 <.fini>
> Disassembly of section .init:
> 
> 00000000 <.init>:
>    0:   4eb9 0000 0000  jsr 0 <.init>
> Disassembly of section .ctors:
> 
> 00000000 <__CTOR_LIST__>:
>    0:   ffff            0177777
>    2:   ffff            0177777
> Disassembly of section .dtors:
> 
> 00000000 <__DTOR_LIST__>:
>    0:   ffff            0177777
>    2:   ffff            0177777
> 
> --
>  Chris Johns, mailto:cjohns at cybertec.com.au mailto:ccj at acm.org

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985



More information about the users mailing list