• S
    kbuild: fix sh64 section mismatch problems · 2648a53a
    Sam Ravnborg 提交于
    There's a special .cranges section that is almost always generated,
    with data being moved to the appropriate section by the linker at a later
    stage.
    
    To give a bit of background, sh64 has both a native SHmedia instruction
    set (32-bit instructions) and SHcompact (which is compatability with
    normal SH -- 16-bit, a massively reduced register set, etc.). code ranges
    are emitted when we're using the 32-bit ABI, but not the 64-bit one.
    
    It is a special staging section used solely by binutils where code with
    different flags get placed (more specifically differing flags for input
    and output sections), before being lazily merged by the linker.
    
    The closest I've been able to find to documentation is:
      http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/ld/emultempl/sh64elf.em?rev=1.10&content-type=text/x-cvsweb-markup&cvsroot=src
    
    It's an array of 8-byte Elf32_CRange structure given in
      http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/elf32-sh64.h?rev=1.4&content-type=text/x-cvsweb-markup&cvsroot=src
    that describes for which ISA a range is used.
    
    Silence the warnings by allowing references from .init.text to .cranges.
    
    The following warnings are fixed:
    
    WARNING: init/built-in.o(.cranges+0x0): Section mismatch: reference to .init.text:
    WARNING: init/built-in.o(.cranges+0xa): Section mismatch: reference to .init.text:
    WARNING: init/built-in.o(.cranges+0x14): Section mismatch: reference to .init.text:
    WARNING: init/built-in.o(.cranges+0x1e): Section mismatch: reference to .init.text:
    WARNING: init/built-in.o(.cranges+0x28): Section mismatch: reference to .init.text:
    WARNING: init/built-in.o(.cranges+0x32): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x50): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x5a): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x64): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0xfa): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x104): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x10e): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x14a): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x154): Section mismatch: reference to .init.text:
    WARNING: kernel/built-in.o(.cranges+0x15e): Section mismatch: reference to .init.text:
    WARNING: mm/built-in.o(.cranges+0x6e): Section mismatch: reference to .init.text:
    WARNING: mm/built-in.o(.cranges+0x78): Section mismatch: reference to .init.text:
    WARNING: mm/built-in.o(.cranges+0x82): Section mismatch: reference to .init.text:
    WARNING: mm/built-in.o(.cranges+0xaa): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x136): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x140): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x14a): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x168): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x1f4): Section mismatch: reference to .init.text:
    WARNING: fs/built-in.o(.cranges+0x1fe): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x302): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x30c): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x316): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x3a2): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x3ac): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x4ce): Section mismatch: reference to .init.text:
    WARNING: net/built-in.o(.cranges+0x4d8): Section mismatch: reference to .init.text:
    Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
    Cc: Kaz Kojima <kkojima@rr.iij4u.or.jp>
    Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
    2648a53a
modpost.c 40.6 KB