In message <baabc3fb53.Alex@bavariasound.chiemgau-net.de>
Alexander Ausserstorfer <bavariasound@chiemgau-net.de> wrote:
> I'm able to build the code now using !GCC on RISC OS but there is
Great.
> something wrong. After starting the program, I get the result
>
> > +OK Begin TLS negotiation now.
> >
> > Anzahl der verarbeiteten Zertifikate: 3
> >
> > Fatal signal received: Illegal Instruction
^^^^^^^^^^^^^^^^^^^
> > Register dump at 0075afb4:
> >
> > a1: 4905a6c a2: 1f2c4ddb a3: 4905a6c a4: 0
> > v1: 175100 v2: 40 v3: fb841c67 v4: 200
> > v5: 0 v6: 175d88 sl: 759208 fp: 75931c
> > ip: 23a83174 sp: 759284 lr: 600c9be4 pc: 200e1110
^^^^^
> > Mode USR, flags set: nzCvif
> >
> > 000e10fc : "/àá : e1e02f22 : MVN R2,R2,LSR #30
> > 000e1100 : .!‚à : e0822101 : ADD R2,R2,R1,LSL #2
> > 000e1104 : Ĉ : e083c290 : UMULL R12,R3,R0,R2
> > 000e1108 : ..ψ : e09c1000 : ADDS R1,R12,R0
> > 000e110c : .0£à : e0a33000 : ADC R3,R3,R0
> > 000e1110 : ..cà : e0630002 : RSB R0,R3,R2
> > 000e1114 : .ÿ/á : e12fff1e : BX R14
^^^^^ ^^^^^^^^^^^
> > 000e1118 : Lè.. : 0005e84c : ANDEQ R14,R5,R12,ASR #16
> > 000e111c : .. á : e1a00000 : MOV R0,R0
> [...]
>
> instead of the fetched e-mails. On GNU/Linux / Windows, with exactly the
> same code written by me everything works fine. I don't understand much
> from what I see at the top but something goes wrong.
I realise this info can be a little bit intimidating but trust me, it
contains enough information to pinpoint your problem.
The "Fatal signal received" is the key information here : the code you're
executing contains an illegal instruction, or more accurately in this
case, an instruction which is not supported by your ARM chip or emulation
software you're using. You did not mention which hardware or emulation
you were using but I guess it is a StrongARM (or equivalent ARMv4 one).
In this case the "pc:" address will tell you which instruction
(unfortunately UnixLib is inconsistenly correcting this value so in this
case it is one word off), i.e. "BX" which is only supported from ARMv4T
architectures onwards.
I had a closer look at the libraries involved and that code belongs to
the libgmp library which contains a large set of ARM assembler routines
which use "BX" despite that library claiming to support ARMv4.
Luckily enough, this is easy to fix so I've uploaded a new LibGMP-Dev
library for you (6.0.0+dfsg-2) which should fix your problem after a
relink : http://www.riscos.info/packages/LibraryDetails.html#LibGMP-Dev
John.
--
John Tytgat, in his comfy chair at home
John.Tytgat@aaug.net
_______________________________________________
GCCSDK mailing list gcc@gccsdk.riscos.info
Bugzilla: http://www.riscos.info/bugzilla/index.cgi
List Info: http://www.riscos.info/mailman/listinfo/gcc
Main Page: http://www.riscos.info/index.php/GCCSDK
No comments:
Post a Comment