diff options
| author | Ingo Molnar <mingo@elte.hu> | 2011-01-19 04:09:42 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2011-01-19 04:09:42 -0500 |
| commit | 6b35eb9ddcddde7b510726de03fae071178f1ec4 (patch) | |
| tree | f4fd04cf535c8f93b25c3b9fbcae7cd3ab6562db | |
| parent | c56eb8fb6dccb83d9fe62fd4dc00c834de9bc470 (diff) | |
Revert "x86: Make relocatable kernel work with new binutils"
This reverts commit 86b1e8dd83cb ("x86: Make relocatable kernel work with
new binutils").
Markus Trippelsdorf reported a boot failure caused by this patch.
The real solution to the original patch will likely involve an
arch-generic solution to define an overlaid jiffies_64 and jiffies
variables.
Until that's done and tested on all architectures revert this commit to
solve the regression.
Reported-and-bisected-by: Markus Trippelsdorf <markus@trippelsdorf.de>
Acked-by: "H. Peter Anvin" <hpa@zytor.com>
Cc: Shaohua Li <shaohua.li@intel.com>
Cc: "Lu, Hongjiu" <hongjiu.lu@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Cc: Sam Ravnborg <sam@ravnborg.org>
LKML-Reference: <4D36A759.60704@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
| -rw-r--r-- | arch/x86/kernel/vmlinux.lds.S | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S index b34ab80fddd5..bf4700755184 100644 --- a/arch/x86/kernel/vmlinux.lds.S +++ b/arch/x86/kernel/vmlinux.lds.S | |||
| @@ -34,9 +34,11 @@ OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | |||
| 34 | #ifdef CONFIG_X86_32 | 34 | #ifdef CONFIG_X86_32 |
| 35 | OUTPUT_ARCH(i386) | 35 | OUTPUT_ARCH(i386) |
| 36 | ENTRY(phys_startup_32) | 36 | ENTRY(phys_startup_32) |
| 37 | jiffies = jiffies_64; | ||
| 37 | #else | 38 | #else |
| 38 | OUTPUT_ARCH(i386:x86-64) | 39 | OUTPUT_ARCH(i386:x86-64) |
| 39 | ENTRY(phys_startup_64) | 40 | ENTRY(phys_startup_64) |
| 41 | jiffies_64 = jiffies; | ||
| 40 | #endif | 42 | #endif |
| 41 | 43 | ||
| 42 | #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) | 44 | #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) |
| @@ -140,15 +142,6 @@ SECTIONS | |||
| 140 | CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) | 142 | CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) |
| 141 | 143 | ||
| 142 | DATA_DATA | 144 | DATA_DATA |
| 143 | /* | ||
| 144 | * Workaround a binutils (2.20.51.0.12 to 2.21.51.0.3) bug. | ||
| 145 | * This makes jiffies relocatable in such binutils | ||
| 146 | */ | ||
| 147 | #ifdef CONFIG_X86_32 | ||
| 148 | jiffies = jiffies_64; | ||
| 149 | #else | ||
| 150 | jiffies_64 = jiffies; | ||
| 151 | #endif | ||
| 152 | CONSTRUCTORS | 145 | CONSTRUCTORS |
| 153 | 146 | ||
| 154 | /* rarely changed data like cpu maps */ | 147 | /* rarely changed data like cpu maps */ |
