summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/vmlinux.lds.S
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-18 14:29:21 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-18 14:29:21 -0800
commit404cbbd52f10d1d5719ad82ce8ba903890779255 (patch)
treeb589594e2891f3dbdccdea87233c917d338001df /arch/x86/kernel/vmlinux.lds.S
parent5d7e8af3c5727626b9e7f909c778b9ac9b4a1809 (diff)
parent7b698ea377e10b074ceef0d79218e6622d618421 (diff)
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86: Clear irqstack thread_info x86: Make relocatable kernel work with new binutils
Diffstat (limited to 'arch/x86/kernel/vmlinux.lds.S')
-rw-r--r--arch/x86/kernel/vmlinux.lds.S11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index bf470075518..b34ab80fddd 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -34,11 +34,9 @@ OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT)
#ifdef CONFIG_X86_32
OUTPUT_ARCH(i386)
ENTRY(phys_startup_32)
-jiffies = jiffies_64;
#else
OUTPUT_ARCH(i386:x86-64)
ENTRY(phys_startup_64)
-jiffies_64 = jiffies;
#endif
#if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
@@ -142,6 +140,15 @@ SECTIONS
CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
DATA_DATA
+ /*
+ * Workaround a binutils (2.20.51.0.12 to 2.21.51.0.3) bug.
+ * This makes jiffies relocatable in such binutils
+ */
+#ifdef CONFIG_X86_32
+ jiffies = jiffies_64;
+#else
+ jiffies_64 = jiffies;
+#endif
CONSTRUCTORS
/* rarely changed data like cpu maps */