linux/scripts
Alan Modra c153693d7e powerpc: Simplify module TOC handling
PowerPC64 uses the symbol .TOC. much as other targets use
_GLOBAL_OFFSET_TABLE_. It identifies the value of the GOT pointer (or in
powerpc parlance, the TOC pointer). Global offset tables are generally
local to an executable or shared library, or in the kernel, module. Thus
it does not make sense for a module to resolve a relocation against
.TOC. to the kernel's .TOC. value. A module has its own .TOC., and
indeed the powerpc64 module relocation processing ignores the kernel
value of .TOC. and instead calculates a module-local value.

This patch removes code involved in exporting the kernel .TOC., tweaks
modpost to ignore an undefined .TOC., and the module loader to twiddle
the section symbol so that .TOC. isn't seen as undefined.

Note that if the kernel was compiled with -msingle-pic-base then ELFv2
would not have function global entry code setting up r2. In that case
the module call stubs would need to be modified to set up r2 using the
kernel .TOC. value, requiring some of this code to be reinstated.

mpe: Furthermore a change in binutils master (not yet released) causes
the current way we handle the TOC to no longer work when building with
MODVERSIONS=y and RELOCATABLE=n. The symptom is that modules can not be
loaded due to there being no version found for TOC.

Cc: stable@vger.kernel.org # 3.16+
Signed-off-by: Alan Modra <amodra@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-01-21 14:10:56 +11:00
..
basic fixdep: constify strrcmp arguments 2015-12-07 12:42:55 +01:00
coccinelle coccinelle: tests: unsigned value cannot be lesser than zero 2016-01-12 17:47:47 +01:00
dtc scripts/dtc: Update to upstream version 9d3649bd3be245c9 2015-04-29 17:17:27 -05:00
gdb scripts/gdb: remove useless global instruction 2015-06-30 19:44:58 -07:00
genksyms genksyms: Handle string literals with spaces in reference files 2015-12-09 15:19:23 +01:00
kconfig kconfig: fix qconf segfault by deleting heap objects 2016-01-11 09:45:08 +01:00
ksymoops
mod powerpc: Simplify module TOC handling 2016-01-21 14:10:56 +11:00
package package Makefile: fix perf-tar targets when outdir is set 2015-11-24 17:49:42 +01:00
selinux selinux: explicitly declare the role "base_r" 2015-07-13 13:32:00 -04:00
tracing kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
.gitignore DocBook: Use a fixed encoding for output 2015-09-28 01:31:48 -06:00
Kbuild.include Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2015-09-08 14:12:19 -07:00
Lindent scripts/Lindent: handle missing indent gracefully 2015-09-04 16:54:41 -07:00
Makefile DocBook: Use a fixed encoding for output 2015-09-28 01:31:48 -06:00
Makefile.asm-generic
Makefile.build kbuild: Allow to specify composite modules with modname-m 2015-11-25 11:23:25 +01:00
Makefile.clean Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2015-02-19 10:07:08 -08:00
Makefile.dtbinst kbuild: include $(src)/Makefile rather than $(obj)/Makefile 2015-04-02 16:42:08 +02:00
Makefile.extrawarn kbuild: Demote 'sign-compare' warning to W=2 2016-01-12 16:07:03 +01:00
Makefile.fwinst kbuild: include $(src)/Makefile rather than $(obj)/Makefile 2015-04-02 16:42:08 +02:00
Makefile.headersinst kbuild: collect shorthands into scripts/Kbuild.include 2014-11-26 14:36:52 +01:00
Makefile.help
Makefile.host
Makefile.kasan arm64: add KASAN support 2015-10-12 17:46:36 +01:00
Makefile.lib Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-01-20 09:45:43 -08:00
Makefile.modbuiltin
Makefile.modinst modsign: Abort modules_install when signing fails 2015-08-07 16:26:13 +01:00
Makefile.modpost modpost: Add flag -E for making section mismatches fatal 2015-10-06 10:46:21 +10:30
Makefile.modsign modsign: lookup lines ending in .ko in .mod files 2014-08-27 21:54:11 +09:30
analyze_suspend.py
asn1_compiler.c ASN.1: Copy string names to tokens in ASN.1 compiler 2015-08-07 16:26:13 +01:00
bloat-o-meter scripts/bloat-o-meter: fix python3 syntax error 2016-01-14 16:00:49 -08:00
bootgraph.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
check-lc_ctype.c DocBook: Use a fixed encoding for output 2015-09-28 01:31:48 -06:00
check_extable.sh scripts: add check_extable.sh script. 2015-04-13 21:03:02 +09:30
checkincludes.pl
checkkconfigsymbols.py checkkconfigsymbols.py: find similar symbols 2015-12-14 10:54:23 -08:00
checkpatch.pl checkpatch: add virt barriers 2016-01-12 20:47:08 +02:00
checkstack.pl Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2014-10-07 21:16:26 -04:00
checksyscalls.sh x86/asm/entry: Move the arch/x86/syscalls/ definitions to arch/x86/entry/syscalls/ 2015-06-04 07:37:37 +02:00
checkversion.pl
cleanfile
cleanpatch
coccicheck Coccinelle: fix incorrect -include option transformation 2015-10-26 21:32:09 +01:00
config
conmakehash.c
decode_stacktrace.sh scripts: decode_stacktrace: fix ARM architecture decoding 2015-09-04 16:54:41 -07:00
decodecode
depmod.sh
diffconfig vfs,ext2: remove CONFIG_EXT2_FS_XIP and rename CONFIG_FS_XIP to CONFIG_FS_DAX 2015-02-16 17:56:04 -08:00
docproc.c
export_report.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
extract-cert.c KEYS: Remove unnecessary header #inclusions from extract-cert.c 2015-09-25 16:31:45 +01:00
extract-ikconfig scripts/extract-ikconfig: Support LZ4-compressed images. 2015-04-15 14:01:12 +02:00
extract-module-sig.pl KEYS: Provide a script to extract a module signature 2015-10-21 15:18:36 +01:00
extract-sys-certs.pl KEYS: Provide a script to extract the sys cert list from a vmlinux file 2015-10-21 15:18:36 +01:00
extract-vmlinux
gcc-goto.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
gcc-ld kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
gcc-version.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
gcc-x86_32-has-stack-protector.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
gcc-x86_64-has-stack-protector.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
gen_initramfs_list.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
get_maintainer.pl get_maintainer: add subsystem to reviewer output 2015-11-06 17:50:42 -08:00
gfp-translate
headerdep.pl
headers.sh CRIS: Fix headers_install 2014-12-20 00:01:12 +01:00
headers_check.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
headers_install.sh Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2014-10-14 09:22:26 +02:00
kallsyms.c Kbuild: kallsyms: drop special handling of pre-3.0 GCC symbols 2015-04-07 13:04:51 +02:00
kernel-doc A relatively boring cycle in the docs tree. There's a few kernel-doc 2016-01-17 11:55:07 -08:00
kernel-doc-xml-ref scripts/kernel-doc: Adding cross-reference links to html documentation. 2015-08-16 22:11:16 -06:00
ld-version.sh ld-version: Fix it on Fedora 2016-01-08 16:34:27 +01:00
link-vmlinux.sh um: link with -lpthread 2016-01-10 21:49:48 +01:00
makelst
markup_oops.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
mkcompile_h
mkmakefile kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
mksysmap mksysmap: Add h8300 local symbol pattern 2015-06-23 13:35:47 +09:00
mkuboot.sh
mkversion
module-common.lds kernel: add support for .init_array.* constructors 2015-02-13 21:21:42 -08:00
namespace.pl
objdiff
patch-kernel
pnmtologo.c
profile2linkerlist.pl kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00
recordmcount.c ftrace/scripts: Fix incorrect use of sprintf in recordmcount 2016-01-04 11:13:16 -05:00
recordmcount.h recordmcount: Fix endianness handling bug for nop_mcount 2015-11-03 10:45:26 -05:00
recordmcount.pl scripts/recordmcount.pl: support data in text section on powerpc 2016-01-13 12:35:41 +11:00
setlocalversion
show_delta
sign-file.c MODSIGN: Change from CMS to PKCS#7 signing if the openssl is too old 2015-09-25 16:31:46 +01:00
sortextable.c ARCv2: extable: Enable sorting at build time 2015-06-22 14:06:56 +05:30
sortextable.h scripts/sortextable: suppress warning: `relocs_size' may be used uninitialized 2014-10-14 02:18:23 +02:00
spelling.txt scripts/spelling.txt: add some typo-words 2015-09-04 16:54:41 -07:00
stackdelta scripts: add stackdelta script 2015-08-28 17:04:40 +02:00
stackusage scripts: add stackusage script 2015-08-28 17:04:40 +02:00
tags.sh Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-01-20 10:10:23 -08:00
unifdef.c
ver_linux ver_linux: proc/modules, limit text processing to 'sed' 2015-10-17 21:55:26 -07:00
xen-hypercalls.sh xen: build infrastructure for generating hypercall depending symbols 2015-03-16 14:49:13 +00:00
xz_wrap.sh kbuild: Make scripts executable 2014-08-20 16:03:45 +02:00