Afternoon,
So, NetSurf runs mostly ok on ARMv7 platforms with their backwards
incompatible unaligned LDR behaviour turned on. Tinct, however, appears
to perform some LDRs from unaligned addresses, resulting in crashes.
Here's a backtrace:
Fatal signal received: Segmentation fault
Stack backtrace:
Running thread 0x59e53c
( 5a7ee0) pc: 462860 lr: 74f4c sp: 5a7ee4 __write_backtrace()
( 5a7f10) pc: 74d64 lr: 463298 sp: 5a7f14 ^ro_gui_signal()
( 5a7f38) pc: 463288 lr: 462f58 sp: 5a7f3c __unixlib_exec_sig()
( 5a7fa0) pc: 462a18 lr: 463870 sp: 5a7fa4 __unixlib_raise_signal()
( 5a7fb0) pc: 463774 lr: 5a6c48 sp: 5a6c04 __h_cback()
Register dump at 005a7fb4:
a1: 12f a2: 2d a3: 1f4 a4: 0
v1: 0 v2: 0 v3: 202513b4 v4: 1
v5: 3d5 v6: 0 sl: 41b78d39 fp: 67197124
ip: 20248394 sp: 5a6c04 lr: 5a6c48 pc: 2024609c
cpsr: 80000113
20246088 : .p.â : e21a7003 : ANDS R7,R10,#3
2024608c : .... : 0a000008 : BEQ &202460B4
20246090 : .àgâ : e267e003 : RSB R14,R7,#3
20246094 : ..^á : e15e0000 : CMP R14,R0
20246098 : .à Á : c1a0e000 : MOVGT R14,R0
2024609c : .??å : e59a9000 : LDR R9,[R10,#0]
202460a0 : ..@Ð : d040000e : SUBLE R0,R0,R14
202460a4 : ..?Ò : d2800003 : ADDLE R0,R0,#3
202460a8 : ..?À : c0800007 : ADDGT R0,R0,R7
Invalid pc address bebeec
For reference, Tinct is loaded at 202416B4.
J.