diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-24 21:09:47 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-24 21:09:47 (GMT) |
commit | abe81e25f08abbac493754a043f7a91a1b3e0f93 (patch) | |
tree | e4b185c3964869620345ed346eb8643f92a7ab39 /arch | |
parent | b1bf7d4d1b3911352cf1ec63c1de06214288ccd0 (diff) | |
parent | ea17e7414bc62e8d3bde8d08e3df1d921c518c17 (diff) | |
download | linux-abe81e25f08abbac493754a043f7a91a1b3e0f93.tar.xz |
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull more relocation fixes from Peter Anvin:
"These are additional symbols that have been found to either be
absolute or look like they might end up being absolute on one version
of GNU ld or another. Unfortunately we have since that a different
GNU ld version, 2.21, can generate bogus absolute symbols; again, this
would have caused a malfunctioning kernel on x86-32 if relocated.
The relocs.c changes changed silent corruption to a build time error.
It is worth noting that if the various barrier symbols we use were
more consistent in the namespace used this probably could be reduced
to a single regexp; if nothing else it looks like there is migration
toward a common __(start|stop)___.* namespace."
* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
x86, relocs: Add jiffies and jiffies_64 to the relative whitelist
x86-32, relocs: Whitelist more symbols for ld bug workaround
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/tools/relocs.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c index b43cfcd..b685296 100644 --- a/arch/x86/tools/relocs.c +++ b/arch/x86/tools/relocs.c @@ -60,6 +60,18 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = { "__x86_cpu_dev_(start|end)|" "(__parainstructions|__alt_instructions)(|_end)|" "(__iommu_table|__apicdrivers|__smp_locks)(|_end)|" + "__(start|end)_pci_.*|" + "__(start|end)_builtin_fw|" + "__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl|_gpl_future)|" + "__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl|_gpl_future)|" + "__(start|stop)___param|" + "__(start|stop)___modver|" + "__(start|stop)___bug_table|" + "__tracedata_(start|end)|" + "__(start|stop)_notes|" + "__end_rodata|" + "__initramfs_start|" + "(jiffies|jiffies_64)|" "_end)$" }; |