Hi Andrew. I uploaded the wrong preprocessed source to the GCC bugzilla entry. It included the __attribute__((noinline)) workaround which hides the problem.
I've fixed that and re-attached the correct version. The assembly version contains the following:
.size wm8974_pcm_hw_params, .-wm8974_pcm_hw_params .global __aeabi_uidiv .global __aeabi_uidivmod .global __aeabi_uldivmod .align 2 .thumb .thumb_func .type wm8974_set_dai_pll, %function wm8974_set_dai_pll: @ args = 4, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r3, r4, r5, r6, r7, r8, r9, lr} ...
-- Michael
On Wed, Apr 27, 2011 at 9:33 PM, Andrew Stubbs andrew.stubbs@linaro.org wrote:
On 27/04/11 10:22, Barry Song wrote:
__aeabi_u*l*divmod has never existed in asm codes after objdump the target ko. __aeabi_u*l*divmod only exists in refrence list. the list means what symbols are depent by this module. So we got a link error. but in fact, the module doesn't need link this symbol since it never call __aeabi_u*l*divmod in asm level.
Can you compile with --save-temps and look in the .s file.
If it's never mentioned in there then it's not a compiler bug (at least, not with this testcase) - the reference is coming from elsewhere.
We should be able to narrow things down, at least.
Andrew