Re: Test failure on ARM

Jerry James <[email protected]>
Newsgroups gmane.lisp.clisp.devel
Message-ID <CAHCOHQ=+qyagLKLTMmqFx0HL1e3TWGYR+6zcMU8XKaDa2MnToA@mail.gmail.com>
On Mon, Apr 23, 2012 at 12:49 PM, Sam Steingold <[email protected]> wrote:
>> * Jerry James <[email protected]> [2012-04-23 10:56:12 -0600]:
>> I was afraid that would be the answer. :-)  I'll see if I can get
>> access to some ARM hardware so I can get more details on the problem.
>
> Please file the bug report on
> https://savannah.gnu.org/bugs/?func=additem&group=libffcall
> and put the patches there too!
>
>> In the meantime, I'll turn FFI off for the ARM platform to get the
>> builds going again.  Wish me luck.
>
> Good luck!

I finally got around to figuring out how to create an ARM VM with
qemu.  I've got the upcoming Fedora 17 release running on that VM.
The problem is not in ffcall after all.  The illegal instruction error
is occurring on the very last instruction of copy_loop_up_l2() in
src/ariarm.d.  A disassembly with GDB shows:

0x00106b3c <+0>:     ldm     r0!, {r2, r4, r12, lr}
0x00106b40 <+4>:     stmia   r1!, {r2, r4, r12, lr}
0x00106b44 <+8>:     subs    r3, r3, #8
0x00106b48 <+12>:    ldmge   r0!, {r2, r4, r12, lr}
0x00106b4c <+16>:    stmiage r1!, {r2, r4, r12, lr}
0x00106b50 <+20>:    bgt     0x106b3c <copy_loop_up_l2>
0x00106b54 <+24>:    mov     r0, r1
0x00106b58 <+28>:    ldm     sp!, {r4, pc}^

It's that last ldm instruction, at +28, that is the problem.  Also, I
see this from compilation of src/ariarm.s:
ariarm.s: Assembler messages:
ariarm.s:1: Warning: ignoring attempt to redefine built-in register 'a1'
ariarm.s:2: Warning: ignoring attempt to redefine built-in register 'a2'
ariarm.s:3: Warning: ignoring attempt to redefine built-in register 'a3'
ariarm.s:4: Warning: ignoring attempt to redefine built-in register 'a4'
ariarm.s:5: Warning: ignoring attempt to redefine built-in register 'v1'
ariarm.s:6: Warning: ignoring attempt to redefine built-in register 'v2'
ariarm.s:7: Warning: ignoring attempt to redefine built-in register 'v3'
ariarm.s:8: Warning: ignoring attempt to redefine built-in register 'v4'
ariarm.s:9: Warning: ignoring attempt to redefine built-in register 'v5'
ariarm.s:10: Warning: ignoring attempt to redefine built-in register 'v6'
ariarm.s:12: Warning: ignoring attempt to redefine built-in register 'sl'
ariarm.s:13: Warning: ignoring attempt to redefine built-in register 'fp'
ariarm.s:14: Warning: ignoring attempt to redefine built-in register 'ip'
ariarm.s:15: Warning: ignoring attempt to redefine built-in register 'sp'
ariarm.s:16: Warning: ignoring attempt to redefine built-in register 'lr'
ariarm.s:17: Warning: ignoring attempt to redefine built-in register 'pc'
ariarm.s:152: Warning: s suffix on comparison instruction is deprecated
ariarm.s:1027: Warning: s suffix on comparison instruction is deprecated
ariarm.s:1032: Warning: s suffix on comparison instruction is deprecated

I don't speak ARM assembly.  Is there anybody here who does and can
give me a clue as to what to do?  This is with GCC 4.7 on an armv7hl
platform.  Thanks,
-- 
Jerry James
http://www.jamezone.org/

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.