Rockbox.org home
release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Rockbox mail archive

Subject: Re: Segfault with Faster MDCT patch and -fPIC

Re: Segfault with Faster MDCT patch and -fPIC

From: Dave Hooper <dave_at_beermex.com>
Date: Mon, 20 Sep 2010 11:22:11 +0100

Meant to type r10 not t10
> That looks weird to me! R10 still holds one side of the previous butterfly
> calculation but looks like gcc is assuming it still holds some address (I
> don't know how pic is supposed to work however). So it's either a gcc bug,
> or we need to explicitly put t10 in clobbers in asm (even though gcc
should
> see its clobbered from the output constraints) or the output constraints
are
> wrong, or we should just write the asm ourselves..
>> 2010/9/20 Rafaël Carré <rafael.carre_at_gmail.com>:
>>>
>>> Try disass $pc-32,$pc+32
>>
>> Thanks!
>>>
>>>
>>> ... is not shown here, can you run the commands on the same crash?
>>>
>>> --
>>> Rafaël Carré
>>>
>>
>> I'm sorry. My fault.
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x0003b3a0 in pass (z_arg=<value optimized out>, STEP_arg=<value
>> optimized out>, n_arg=<value optimized out>) at fft-ffmpeg.c:243
>> warning: Source file is more recent than executable.
>> 243 w += STEP;
>> (gdb) bt
>> #0 0x0003b3a0 in pass (z_arg=<value optimized out>, STEP_arg=<value
>> optimized out>, n_arg=<value optimized out>) at fft-ffmpeg.c:243
>> #1 0x0003c080 in fft64 (z=0x1b10190) at fft-ffmpeg.c:355
>> #2 0x0003c0b0 in fft128 (z=0x1b10190) at fft-ffmpeg.c:356
>> #3 0x0003c0e0 in fft256 (z=0x1b10190) at fft-ffmpeg.c:357
>> #4 0x0003b924 in ff_fft_calc_c (nbits=<value optimized out>,
>> z=0x1ae2dc0) at fft-ffmpeg.c:370
>> #5 0x0003ad78 in ff_imdct_half (nbits=28199880, output=0x1b100c8,
>> input=<value optimized out>) at mdct-ffmpeg.c:112
>> #6 0x0003b178 in ff_imdct_calc (nbits=28377488, output=0x1afa5c8,
>> input=0x0) at mdct-ffmpeg.c:348
>> #7 0x0003a5ac in mapping0_inverse (vb=0xbef68670, l=0x1b0b538) at
>> mapping0.c:290
>> #8 0x00033270 in vorbis_synthesis (vb=0xbef68670, op=<value optimized
>> out>, decodep=1) at synthesis.c:75
>> ...
>> (gdb) disass $pc-64,$pc+64
>> Dump of assembler code from 0x3b360 to 0x3b3e0:
>> 0x0003b360 <pass+296>: sub r4, r9, r2, lsl #1
>> 0x0003b364 <pass+300>: sub r6, r10, r6, lsl #1
>> 0x0003b368 <pass+304>: stm r0, {r9, r10}
>> 0x0003b36c <pass+308>: add r0, r11, r0
>> 0x0003b370 <pass+312>: ldm r0, {r9, r10}
>> 0x0003b374 <pass+316>: add r9, r7, r9
>> 0x0003b378 <pass+320>: add r10, r8, r10
>> 0x0003b37c <pass+324>: sub r7, r9, r7, lsl #1
>> 0x0003b380 <pass+328>: sub r8, r10, r8, lsl #1
>> 0x0003b384 <pass+332>: stm r0, {r9, r10}
>> 0x0003b388 <pass+336>: add r0, r11, r0
>> 0x0003b38c <pass+340>: stm r0, {r4, r6}
>> 0x0003b390 <pass+344>: add r0, r11, r0
>> 0x0003b394 <pass+348>: stm r0, {r7, r8}
>> 0x0003b398 <pass+352>: ldr r3, [pc, #916] ; 0x3b734 <pass+1276>
>> 0x0003b39c <pass+356>: ldr r12, [sp, #16]
>> => 0x0003b3a0 <pass+360>: ldr r3, [r10, r3]
>> 0x0003b3a4 <pass+364>: add lr, r12, r1
>> 0x0003b3a8 <pass+368>: add r2, r12, lr
>> 0x0003b3ac <pass+372>: ldr r1, [sp, #24]
>> 0x0003b3b0 <pass+376>: str r3, [sp, #12]
>> 0x0003b3b4 <pass+380>: mov r5, r2
>> 0x0003b3b8 <pass+384>: lsl r3, r12, #1
>> 0x0003b3bc <pass+388>: add r2, r12, r2
>> 0x0003b3c0 <pass+392>: rsb r0, r1, r0
>> 0x0003b3c4 <pass+396>: str r3, [sp, #36] ; 0x24
>> 0x0003b3c8 <pass+400>: str r2, [sp, #32]
>> 0x0003b3cc <pass+404>: add r3, r0, #8
>> 0x0003b3d0 <pass+408>: ldm lr, {r4, r12}
>> 0x0003b3d4 <pass+412>: ldr r0, [sp, #20]
>> 0x0003b3d8 <pass+416>: add r3, r0, r3
>> 0x0003b3dc <pass+420>: ldm r3, {r9, r10}
>> End of assembler dump.
>> (gdb) info all-registers
>> r0 0x1b10190 28377488
>> r1 0x1ae2dc0 28192192
>> r2 0x0 0
>> r3 0x100 256
>> r4 0x0 0
>> r5 0x0 0
>> r6 0x0 0
>> r7 0x0 0
>> r8 0x0 0
>> r9 0x0 0
>> r10 0x0 0
>> r11 0x40 64
>> r12 0x400 1024
>> sp 0xbef68450 0xbef68450
>> lr 0x0 0
>> pc 0x3b3a0 0x3b3a0 <pass+360>
>> f0 0 (raw 0x0003f8cc0000000000000000)
>> f1 0 (raw 0x0003f8cc0000000000000000)
>> f2 0 (raw 0x0003f8cc0000000000000000)
>> f3 0 (raw 0x0003f8cc0000000000000000)
>> f4 0 (raw 0x0003f8cc0000000000000000)
>> f5 0 (raw 0x0003f8cc0000000000000000)
>> f6 0 (raw 0x0003f8cc0000000000000000)
>> f7 0 (raw 0x0003f8cc0000000000000000)
>> fps 0x0 0
>> cpsr 0x60000010 1610612752
>>
>> --
>> regards,
>> Slawomir Testowy
Received on 2010-09-20


Page was last modified "Jan 10 2012" The Rockbox Crew
aaa