Re: Build regressions/improvements in v3.10

From: Marc Gauthier
Date: Sat Jul 06 2013 - 02:40:43 EST


Geert, Bjorn,

Geert Uytterhoeven wrote:
> On Tue, Jul 2, 2013 at 8:34 PM, Bjorn Helgaas
> <bhelgaas@xxxxxxxxxx> wrote:
> >> + warning: vmlinux.o(.text+0x1ad7a4): Section mismatch
> in reference from the function pwmchip_add() to the function
> .init.text:pcibios_fixup_bus(): => N/A
> >> + warning: vmlinux.o(.text+0x1b18d8): Section mismatch
> in reference from the function pci_scan_child_bus() to the
> function .init.text:pcibios_fixup_bus(): => N/A
> >
> > I understand the second warning, but not the first (reference from
> > pwmchip_add() to pcibios_fixup_bus()). I don't think pwmchip_add()
> > calls pcibios_fixup_bus(). Is the pwmchip_chip() function name
> > inexact, or is there some other problem here?
>
> Indeed, that's weird.
>
> This happened with xtensa-allmodconfig.
> I compiled my own xtensa-allmodconfig kernel, and it happens
> there, too.
>
> If I'm not mistaken, the hex address between parentheses should match
> the "from" function, right?
> After disassembly ("xtensa-linux-objdump -D vmlinux"), the addresses
> didn't seem to match the function names at all.
> So it may be an issue with the toolchain?


The Xtensa linker, by default, does some code shrinkage
(some of the "relaxations") after applying relocations,
causing code to move around. This can sometimes cause
error/warning messages to use incorrect addresses.
(Not trivial to fix in the linker.)

There's a config option LD_NO_RELAX to disable linker
relaxation. If using this option fixes the names, it
may be this issue.

-Marc
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/