linux/scripts
Sam Ravnborg 2648a53acf kbuild: fix sh64 section mismatch problems
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: Paul Mundt <lethal@linux-sh.org>
Cc: Kaz Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
2007-06-11 21:52:04 +02:00
..
basic Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
genksyms blackfin architecture 2007-05-07 12:12:58 -07:00
kconfig kconfig: search harder for curses library in check-lxdialog.sh 2007-05-19 09:11:15 +02:00
ksymoops
mod kbuild: fix sh64 section mismatch problems 2007-06-11 21:52:04 +02:00
package x86_64: Support x86_64 in make buildtar 2007-05-21 09:56:56 -07:00
rt-tester
.gitignore
bin2c.c
binoffset.c
bloat-o-meter
checkincludes.pl
checkpatch.pl update checkpatch.pl to version 0.04 2007-06-08 17:23:34 -07:00
checkstack.pl
checksyscalls.sh kbuild: complain about missing system calls 2007-05-02 20:58:09 +02:00
checkversion.pl
cleanfile cleanfile: a script to clean up stealth whitespace 2007-05-02 20:58:08 +02:00
cleanpatch cleanpatch: a script to clean up stealth whitespace added by a patch 2007-05-02 20:58:08 +02:00
conmakehash.c
export_report.pl
extract-ikconfig
gcc-version.sh
gcc-x86_64-has-stack-protector.sh
gen_initramfs_list.sh kbuild: propagate errors from find in scripts/gen_initramfs_list.sh 2007-05-02 20:58:11 +02:00
hdrcheck.sh
kallsyms.c
Kbuild.include
kernel-doc kernel-doc: small kernel-doc optimization 2007-05-09 12:30:50 -07:00
Lindent
Makefile
Makefile.build kbuild: enable use of code from a different dir 2007-05-06 09:23:45 +02:00
Makefile.clean
Makefile.headersinst Make 'headerscheck' stop immediately on an error 2007-05-21 21:47:27 -07:00
Makefile.host kbuild: enable use of code from a different dir 2007-05-06 09:23:45 +02:00
Makefile.lib
Makefile.modinst
Makefile.modpost kbuild: fix section mismatch check for vmlinux 2007-05-02 20:58:07 +02:00
makelst
mkcompile_h kbuild: override build timestamp & version 2007-05-02 20:58:09 +02:00
mkmakefile
mksysmap
mkuboot.sh kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE 2007-05-02 20:58:10 +02:00
mkversion
namespace.pl
patch-kernel
pnmtologo.c
profile2linkerlist.pl
setlocalversion
show_delta
unifdef.c
ver_linux