Hi Linus,

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.

Greg: these builds are tagged for stable v3.4, but if the relocs.c
changes are backported then you will need these patches for the
backports as well.

The following changes since commit b2d668da9307c4c163dd603d2bb3cadb10f9fd37:

  x86, relocs: Build clean fix (2012-05-21 12:19:37 -0700)

are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus

The head of this tree is ea17e7414bc62e8d3bde8d08e3df1d921c518c17.

H. Peter Anvin (2):
      x86-32, relocs: Whitelist more symbols for ld bug workaround
      x86, relocs: Add jiffies and jiffies_64 to the relative whitelist

 arch/x86/tools/relocs.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

 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)$"
 };
 
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to