Commit 79929fd1 authored by Vivek Goyal's avatar Vivek Goyal Committed by Andi Kleen

[PATCH] i386: Convert more absolute symbols to section relative

o Convert more absolute symbols to section relative to keep the theme in
  vmlinux.lds.S file and to avoid problem if kernel is relocated.

o Also put a message so that in future people can be aware of it and
  avoid introducing absolute symbols.
Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
parent 2c22d8ba
...@@ -8,6 +8,12 @@ ...@@ -8,6 +8,12 @@
* put it inside the section definition. * put it inside the section definition.
*/ */
/* Don't define absolute symbols until and unless you know that symbol
* value is should remain constant even if kernel image is relocated
* at run time. Absolute symbols are not relocated. If symbol value should
* change if kernel is relocated, make the symbol section relative and
* put it inside the section definition.
*/
#define LOAD_OFFSET __PAGE_OFFSET #define LOAD_OFFSET __PAGE_OFFSET
#include <asm-generic/vmlinux.lds.h> #include <asm-generic/vmlinux.lds.h>
...@@ -65,11 +71,11 @@ SECTIONS ...@@ -65,11 +71,11 @@ SECTIONS
CONSTRUCTORS CONSTRUCTORS
} :data } :data
__start_paravirtprobe = .;
.paravirtprobe : AT(ADDR(.paravirtprobe) - LOAD_OFFSET) { .paravirtprobe : AT(ADDR(.paravirtprobe) - LOAD_OFFSET) {
__start_paravirtprobe = .;
*(.paravirtprobe) *(.paravirtprobe)
__stop_paravirtprobe = .;
} }
__stop_paravirtprobe = .;
. = ALIGN(4096); . = ALIGN(4096);
.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
...@@ -172,11 +178,11 @@ SECTIONS ...@@ -172,11 +178,11 @@ SECTIONS
*(.altinstr_replacement) *(.altinstr_replacement)
} }
. = ALIGN(4); . = ALIGN(4);
__start_parainstructions = .;
.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
__start_parainstructions = .;
*(.parainstructions) *(.parainstructions)
__stop_parainstructions = .;
} }
__stop_parainstructions = .;
/* .exit.text is discard at runtime, not link time, to deal with references /* .exit.text is discard at runtime, not link time, to deal with references
from .altinstructions and .eh_frame */ from .altinstructions and .eh_frame */
.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { *(.exit.text) } .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { *(.exit.text) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment