Re: Working frv toolchain?

David Howells
2007-11-06T21:47:20Z

Jan Dittmer <jdi@l4x.org> wrote:

> > Can you try the attached patch?
>
> Thanks, that fixes the error in question.

Excellent. I'll post it on upstream.

> Are there any chances to get a patch for frv support against
> some upstream gcc 4.x version?

Do you mean a patch to gcc? Apparently gcc 4.3 should be fine, but I haven't
been able to build a toolchain that includes it. I'm currently stuck on
trying to get through the glibc build phase.

> Now I have only a couple of scary looking warnings (see below, sorry for the
> word-wrap).
> ...
> frv-linux-gnu-ld: Warning: size of symbol `sys_set_robust_list' changed from 8
> in kernel/sys_ni.o to 32 in kernel/futex.o

Yeah. Dunno what to do about that. I suspect I need to do something about
cond_syscall(), but I'm not sure what.

> WARNING: vmlinux.o(.text+0x40): Section mismatch: reference to
> .init.text:free_initmem (between 'init_post' and 'try_name')

It's entirely possible that free_initmem() should not itself be marked __init.

> WARNING: vmlinux.o(.text+0x54fc): Section mismatch: reference to
> .init.text:start_kernel (between 'debug_stub' and 'debug_stub_exit')
> WARNING: vmlinux.o(.text+0x5500): Section mismatch: reference to
> .init.text:start_kernel (between 'debug_stub' and 'debug_stub_exit')

debug_stub() needs to arrange for start_kernel() to be invoked on its first
entry, but can't itself be __init because it gets invoked on every debugging
event (single step, h/w breakpoints, break instruction, etc). However, its
first call is right at the end of head.S, so it isn't actually a problem.

Note that it isn't possible to jump directly into the debugger. You have to
take an debug-level exception to enter CPU debug mode - which is a level higher
than kernel mode.

> WARNING: vmlinux.o(.text+0xf7b48): Section mismatch: reference to
> .init.text:pcibios_fixup_bus (between 'pci_scan_child_bus' and
> 'pci_scan_bridge')

Hmmm... pci_scan_child_bus() is not __*init, but it calls pcibios_fixup_bus()
which is. That smells a trifle fishy.

David