On 06/01/2012 10:13 PM, Andrew Wiley wrote:
On Fri, Jun 1, 2012 at 3:24 PM, Alex Rønne Petersen <a...@lycus.org
<mailto:a...@lycus.org>> wrote:
    Please try building libphobos and libdruntime with -fno-section-anchors.


You certainly need to do this, but -O0 means that section-anchors
optimization is turned off anyway, so that isn't actually your problem.

Judging by:

https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm

(specifically https://bitbucket.org/goshawk/gdc/issue/120/fsection-anchors-broken-on-arm#comment-686378), I thought that was fixed.

I guess not. I'll build it with no-section-anchors from now on.

Can you run `disassemble` in gdb to see what the faulting instruction is?


(gdb) disassemble
Dump of assembler code for function _D2gc3gcx3Gcx16fullcollectshellMFZk:
0x00045358 <_D2gc3gcx3Gcx16fullcollectshellMFZk+0>: push {r4, r5, r6, r7, r8, r9, r10, r11, lr} 0x0004535c <_D2gc3gcx3Gcx16fullcollectshellMFZk+4>: vstmdb sp!, {d8-d15} 0x00045360 <_D2gc3gcx3Gcx16fullcollectshellMFZk+8>: add r11, sp, #96 ; 0x60 0x00045364 <_D2gc3gcx3Gcx16fullcollectshellMFZk+12>: sub sp, sp, #68 ; 0x44 0x00045368 <_D2gc3gcx3Gcx16fullcollectshellMFZk+16>: str r0, [r11, #-152] 0x0004536c <_D2gc3gcx3Gcx16fullcollectshellMFZk+20>: ldr r3, [r11, #-152] 0x00045370 <_D2gc3gcx3Gcx16fullcollectshellMFZk+24>: str r3, [r11, #-140] 0x00045374 <_D2gc3gcx3Gcx16fullcollectshellMFZk+28>: ldr r3, [r11, #-140] 0x00045378 <_D2gc3gcx3Gcx16fullcollectshellMFZk+32>: cmp r3, #0 ; 0x0 0x0004537c <_D2gc3gcx3Gcx16fullcollectshellMFZk+36>: beq 0x45390 <_D2gc3gcx3Gcx16fullcollectshellMFZk+56> 0x00045380 <_D2gc3gcx3Gcx16fullcollectshellMFZk+40>: ldr r3, [r11, #-140]
0x00045384 <_D2gc3gcx3Gcx16fullcollectshellMFZk+44>:    mov     r0, r3
0x00045388 <_D2gc3gcx3Gcx16fullcollectshellMFZk+48>: bl 0x4241c <_D2gc3g---Type <return> to continue, or q <return> to quit---
cx3Gcx11__invariantMFZv>
0x0004538c <_D2gc3gcx3Gcx16fullcollectshellMFZk+52>: b 0x453cc <_D2gc3gcx3Gcx16fullcollectshellMFZk+116> 0x00045390 <_D2gc3gcx3Gcx16fullcollectshellMFZk+56>: mov r3, #9 ; 0x9 0x00045394 <_D2gc3gcx3Gcx16fullcollectshellMFZk+60>: str r3, [r11, #-132] 0x00045398 <_D2gc3gcx3Gcx16fullcollectshellMFZk+64>: ldr r3, [pc, #184] ; 0x45458 <_D2gc3gcx3Gcx16fullcollectshellMFZk+256> 0x0004539c <_D2gc3gcx3Gcx16fullcollectshellMFZk+68>: str r3, [r11, #-128] 0x000453a0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+72>: mov r3, #72 ; 0x48 0x000453a4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+76>: str r3, [r11, #-124] 0x000453a8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+80>: ldr r3, [pc, #172] ; 0x4545c <_D2gc3gcx3Gcx16fullcollectshellMFZk+260> 0x000453ac <_D2gc3gcx3Gcx16fullcollectshellMFZk+84>: str r3, [r11, #-120] 0x000453b0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+88>: ldr r3, [pc, #168] ; 0x45460 <_D2gc3gcx3Gcx16fullcollectshellMFZk+264>
0x000453b4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+92>:    str     r3, [sp]
0x000453b8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+96>: sub r3, r11, #132 ; 0x84
0x000453bc <_D2gc3gcx3Gcx16fullcollectshellMFZk+100>:   ldm     r3, {r0, r1}
---Type <return> to continue, or q <return> to quit---
0x000453c0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+104>: sub r3, r11, #124 ; 0x7c
0x000453c4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+108>:   ldm     r3, {r2, r3}
0x000453c8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+112>: bl 0x21fd8 <_d_assert_msg> 0x000453cc <_D2gc3gcx3Gcx16fullcollectshellMFZk+116>: mov r3, #0 ; 0x0 0x000453d0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+120>: str r3, [r11, #-136] 0x000453d4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+124>: mov r3, #0 ; 0x0 0x000453d8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+128>: str r3, [r11, #-104] 0x000453dc <_D2gc3gcx3Gcx16fullcollectshellMFZk+132>: sub r3, r11, #136 ; 0x88 0x000453e0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+136>: str r3, [r11, #-136] 0x000453e4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+140>: ldr r2, [r11, #-140] 0x000453e8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+144>: ldr r3, [r11, #-136]
0x000453ec <_D2gc3gcx3Gcx16fullcollectshellMFZk+148>:   mov     r0, r2
0x000453f0 <_D2gc3gcx3Gcx16fullcollectshellMFZk+152>:   mov     r1, r3
0x000453f4 <_D2gc3gcx3Gcx16fullcollectshellMFZk+156>: bl 0x45468 <_D2gc3gcx3Gcx11fullcollectMFPvZk>
---Type <return> to continue, or q <return> to quit---
---Type <return> to continue, or q <return> to quit---
0x000453f8 <_D2gc3gcx3Gcx16fullcollectshellMFZk+160>:   mov     r3, r0
0x000453fc <_D2gc3gcx3Gcx16fullcollectshellMFZk+164>: str r3, [r11, #-104] 0x00045400 <_D2gc3gcx3Gcx16fullcollectshellMFZk+168>: ldr r3, [r11, #-104] 0x00045404 <_D2gc3gcx3Gcx16fullcollectshellMFZk+172>: str r3, [r11, #-108] 0x00045408 <_D2gc3gcx3Gcx16fullcollectshellMFZk+176>: ldr r3, [r11, #-140] 0x0004540c <_D2gc3gcx3Gcx16fullcollectshellMFZk+180>: cmp r3, #0 ; 0x0 0x00045410 <_D2gc3gcx3Gcx16fullcollectshellMFZk+184>: beq 0x45424 <_D2gc3gcx3Gcx16fullcollectshellMFZk+204> 0x00045414 <_D2gc3gcx3Gcx16fullcollectshellMFZk+188>: ldr r3, [r11, #-140]
0x00045418 <_D2gc3gcx3Gcx16fullcollectshellMFZk+192>:   mov     r0, r3
0x0004541c <_D2gc3gcx3Gcx16fullcollectshellMFZk+196>: bl 0x4241c <_D2gc3gcx3Gcx11__invariantMFZv> 0x00045420 <_D2gc3gcx3Gcx16fullcollectshellMFZk+200>: b 0x45444 <_D2gc3gcx3Gcx16fullcollectshellMFZk+236> 0x00045424 <_D2gc3gcx3Gcx16fullcollectshellMFZk+204>: mov r3, #0 ; 0x0 0x00045428 <_D2gc3gcx3Gcx16fullcollectshellMFZk+208>: str r3, [r11, #-116] 0x0004542c <_D2gc3gcx3Gcx16fullcollectshellMFZk+212>: ldr r3, [pc, #48] ---Type <return> to continue, or q <return> to quit---
; 0x45464 <_D2gc3gcx3Gcx16fullcollectshellMFZk+268>
0x00045430 <_D2gc3gcx3Gcx16fullcollectshellMFZk+216>: str r3, [r11, #-112] 0x00045434 <_D2gc3gcx3Gcx16fullcollectshellMFZk+220>: sub r3, r11, #116 ; 0x74
0x00045438 <_D2gc3gcx3Gcx16fullcollectshellMFZk+224>:   ldm     r3, {r0, r1}
0x0004543c <_D2gc3gcx3Gcx16fullcollectshellMFZk+228>: mov r2, #0 ; 0x0 0x00045440 <_D2gc3gcx3Gcx16fullcollectshellMFZk+232>: bl 0x22018 <_d_assert> 0x00045444 <_D2gc3gcx3Gcx16fullcollectshellMFZk+236>: ldr r3, [r11, #-108]
0x00045448 <_D2gc3gcx3Gcx16fullcollectshellMFZk+240>:   mov     r0, r3
0x0004544c <_D2gc3gcx3Gcx16fullcollectshellMFZk+244>: sub sp, r11, #96 ; 0x60 0x00045450 <_D2gc3gcx3Gcx16fullcollectshellMFZk+248>: vldmia sp!, {d8-d15} 0x00045454 <_D2gc3gcx3Gcx16fullcollectshellMFZk+252>: pop {r4, r5, r6, r7, r8, r9, r10, r11, pc} 0x00045458 <_D2gc3gcx3Gcx16fullcollectshellMFZk+256>: andeq r12, r11, r0, asr r8 0x0004545c <_D2gc3gcx3Gcx16fullcollectshellMFZk+260>: andeq r12, r11, r12, asr r8 0x00045460 <_D2gc3gcx3Gcx16fullcollectshellMFZk+264>: andeq r0, r0, r9, lsr r9
---Type <return> to continue, or q <return> to quit---
0x00045464 <_D2gc3gcx3Gcx16fullcollectshellMFZk+268>: andeq r12, r11, r8, lsr #17


--
Matthew Caron, Build Engineer
Sixnet, a Red Lion business | www.sixnet.com
+1 (518) 877-5173 x138 office

Reply via email to