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 [PATCH] rtmutex: Modify rtmutex-tester to test the setscheduler propagation 2006-06-27 17:32:47 -07:00
.gitignore [PATCH] Add unifdef to gitignore 2006-10-02 19:46:55 -07:00
bin2c.c
binoffset.c
bloat-o-meter [PATCH] bloat-o-meter: gcc-4 fix 2006-06-25 10:01:00 -07:00
checkincludes.pl
checkpatch.pl update checkpatch.pl to version 0.04 2007-06-08 17:23:34 -07:00
checkstack.pl [POWERPC] make checkstack work with ARCH=powerpc 2006-08-25 13:30:27 +10:00
checksyscalls.sh kbuild: complain about missing system calls 2007-05-02 20:58:09 +02:00
checkversion.pl kbuild: introduce utsrelease.h 2006-07-03 23:30:54 +02:00
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 kbuild: export-symbol usage report generator 2006-06-24 23:14:02 +02:00
extract-ikconfig
gcc-version.sh
gcc-x86_64-has-stack-protector.sh [PATCH] Add the -fstack-protector option to the CFLAGS 2006-09-26 10:52:39 +02:00
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 Use dependencies for 'make headers_install'. 2006-09-24 22:15:14 +01:00
kallsyms.c [PATCH] move kallsyms data to .rodata 2006-12-08 08:28:37 -08:00
Kbuild.include [PATCH] kbuild: more Makefile cleanups 2007-02-09 10:12:20 -08:00
kernel-doc kernel-doc: small kernel-doc optimization 2007-05-09 12:30:50 -07:00
Lindent
Makefile [PATCH] allow /proc/config.gz to be built as a module 2006-10-01 00:39:20 -07:00
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 kbuild: fix ia64 breakage after introducing make -rR 2006-07-01 09:58:02 +02:00
Makefile.modinst kbuild: add option for stripping modules while installing them 2006-06-24 23:16:45 +02:00
Makefile.modpost kbuild: fix section mismatch check for vmlinux 2007-05-02 20:58:07 +02:00
makelst [PATCH] kbuild scripts: replace gawk, head, bc with shell, update 2007-02-06 14:30:49 -08:00
mkcompile_h kbuild: override build timestamp & version 2007-05-02 20:58:09 +02:00
mkmakefile kbuild: Do not overwrite makefile as anohter user 2006-05-08 06:55:32 +02:00
mksysmap
mkuboot.sh kbuild/mkuboot.sh: allow spaces in CROSS_COMPILE 2007-05-02 20:58:10 +02:00
mkversion
namespace.pl kbuild: fix mode of checkstack.pl and other files. 2006-04-11 13:37:07 +02:00
patch-kernel
pnmtologo.c
profile2linkerlist.pl [PATCH] x86_64: Basic reorder infrastructure 2006-03-25 09:10:56 -08:00
setlocalversion kbuild: append -dirty for updated but uncommited changes 2006-06-17 00:08:17 +02:00
show_delta kbuild: fix mode of checkstack.pl and other files. 2006-04-11 13:37:07 +02:00
unifdef.c kbuild: replace use of strlcpy with a dedicated implmentation in unifdef 2006-09-25 09:00:00 +02:00
ver_linux [PATCH] ver_linux additions 2006-12-07 08:39:38 -08:00