The code in type_byte() is wrong: type_byte: cmp r0, #7 bhi .L22 tbb [pc, r0] .L31: .byte (.L23-.L31)/2 .byte (.L24-.L31)/2 .byte (.L25-.L31)/2 .byte (.L26-.L31)/2 .byte (.L32-.L31)/2 .byte (.L28-.L31)/2 .byte (.L29-.L31)/2 .byte (.L30-.L31)/2 .L30: movs r0, #112 bx lr .L22: push {r4, lr} movw r0, #:lower16:.LC1 sub sp, sp, #8 movw r1, #:lower16:.LC2 movw r3, #:lower16:.LANCHOR0 movt r0, #:upper16:.LC1 movt r1, #:upper16:.LC2 movw r2, #1758 movt r3, #:upper16:.LANCHOR0 movs r4, #0 str r4, [sp, #0] bl g_assertion_message movs r0, #118 bx lr .L24: movs r0, #115 bx lr .L25: movs r0, #105 bx lr .L26: movs r0, #102 bx lr ...
Most of the branches are fine, except the one that has the assertion. The prologue pushes and adjusts the stack by 8 but doesn't fix it in the epilogue. ** Attachment added: "Preprocessed source" https://bugs.launchpad.net/ubuntu/+source/gconf/+bug/757427/+attachment/2038170/+files/gconf-internals.i.gz ** Tags added: shrinkwrap ** Changed in: gcc-linaro Status: New => Triaged ** Changed in: gcc-linaro Importance: Undecided => High -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/757427 Title: gconftool-2 segfaults on arm -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs